diff --git a/.travis.yml b/.travis.yml index 7b6113aa0..b17253332 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,18 +9,18 @@ env: global: - ATOM_ACCESS_TOKEN=da809a6077bb1b0aa7c5623f7b2d5f1fec2faae4 +osx_image: xcode7.3 + compiler: clang matrix: include: - - os: linux - env: NODE_VERSION=0.12 - os: linux env: NODE_VERSION=4 - os: osx - env: ATOM_SPECS_TASK=core NODE_VERSION=0.12 + env: ATOM_SPECS_TASK=core NODE_VERSION=4 - os: osx - env: ATOM_SPECS_TASK=packages NODE_VERSION=0.12 + env: ATOM_SPECS_TASK=packages NODE_VERSION=4 sudo: false @@ -28,16 +28,15 @@ install: - git clone https://github.com/creationix/nvm.git /tmp/.nvm - source /tmp/.nvm/nvm.sh - nvm install $NODE_VERSION - - nvm use $NODE_VERSION + - nvm use --delete-prefix $NODE_VERSION script: script/cibuild cache: directories: - node_modules - - build/node_modules - apm/node_modules - - $HOME/.atom/compile-cache + - build/node_modules notifications: email: @@ -46,8 +45,11 @@ notifications: addons: apt: + sources: + - ubuntu-toolchain-r-test packages: - build-essential - git - libgnome-keyring-dev - fakeroot + - gcc-multilib diff --git a/Dockerfile b/Dockerfile index d792c30c5..22a101743 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # DESCRIPTION: Image to build Atom and create a .rpm file # Base docker image -FROM fedora:21 +FROM nodesource/fedora21:4.2.6 # Install dependencies RUN yum install -y \ @@ -12,11 +12,9 @@ RUN yum install -y \ glibc-devel \ git-core \ libgnome-keyring-devel \ - rpmdevtools \ - nodejs \ - npm + rpmdevtools -RUN npm install -g npm@1.4.28 --loglevel error +RUN npm install -g npm --loglevel error ADD . /atom WORKDIR /atom diff --git a/apm/package.json b/apm/package.json index d4fcc851a..31162dcaf 100644 --- a/apm/package.json +++ b/apm/package.json @@ -6,6 +6,6 @@ "url": "https://github.com/atom/atom.git" }, "dependencies": { - "atom-package-manager": "1.10.0" + "atom-package-manager": "1.12.5" } } diff --git a/appveyor.yml b/appveyor.yml index 6248db85e..316701aae 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,9 +12,10 @@ environment: ATOM_DEV_RESOURCE_PATH: c:\projects\atom ATOM_ACCESS_TOKEN: secure: Q7vxmSq0bVCLTTRPzXw5ZhPTe7XYhWxX0tQV6neEkddTH6pZkOYNmSCG6VnMX2f+ + ATOM_NOISY_BUILD: 1 matrix: - - NODE_VERSION: 0.10.35 + - NODE_VERSION: 4.4.5 install: - SET PATH=C:\Program Files\Atom\resources\cli;%PATH% diff --git a/build/package.json b/build/package.json index 2f8d88d8a..533f49417 100644 --- a/build/package.json +++ b/build/package.json @@ -32,7 +32,7 @@ "grunt-standard": "^2.0.0", "legal-eagle": "~0.13.0", "minidump": "~0.9", - "npm": "2.13.3", + "npm": "3.10.5", "rcedit": "~0.3.0", "request": "~2.27.0", "rimraf": "~2.2.2", diff --git a/build/tasks/compile-packages-slug-task.coffee b/build/tasks/compile-packages-slug-task.coffee index 7317f158a..f6f297bec 100644 --- a/build/tasks/compile-packages-slug-task.coffee +++ b/build/tasks/compile-packages-slug-task.coffee @@ -40,6 +40,8 @@ module.exports = (grunt) -> continue if path.basename(moduleDirectory) is '.bin' metadataPath = path.join(moduleDirectory, 'package.json') + continue unless fs.existsSync(metadataPath) + metadata = grunt.file.readJSON(metadataPath) continue unless metadata?.engines?.atom? diff --git a/script/bootstrap b/script/bootstrap index 3b9a35735..6fcf8fef0 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -75,7 +75,7 @@ function bootstrap() { var buildInstallCommand = initialNpmCommand + npmFlags + 'install'; var buildInstallOptions = {cwd: path.resolve(__dirname, '..', 'build')}; - var apmInstallCommand = npmPath + npmFlags + '--target=0.10.40 ' + 'install'; + var apmInstallCommand = npmPath + npmFlags + '--target=4.4.5 --global-style ' + 'install'; var apmInstallOptions = {cwd: apmInstallPath}; var moduleInstallCommand = apmPath + ' install' + apmFlags; var dedupeApmCommand = apmPath + ' dedupe' + apmFlags; @@ -97,7 +97,7 @@ function bootstrap() { } var moduleInstallOptions = {env: moduleInstallEnv}; - if (process.argv.indexOf('--no-quiet') === -1) { + if (process.argv.indexOf('--no-quiet') === -1 || process.env.ATOM_NOISY_BUILD) { buildInstallCommand += ' --loglevel error'; apmInstallCommand += ' --loglevel error'; moduleInstallCommand += ' --loglevel error'; @@ -122,11 +122,6 @@ function bootstrap() { message: 'Installing apm...', options: apmInstallOptions }, - { - command: apmPath + ' clean' + apmFlags, - message: 'Deleting old packages...', - options: moduleInstallOptions - }, { command: moduleInstallCommand, options: moduleInstallOptions diff --git a/script/cibuild-atom-linux b/script/cibuild-atom-linux index 2c3395608..fe79c19fe 100755 --- a/script/cibuild-atom-linux +++ b/script/cibuild-atom-linux @@ -7,10 +7,11 @@ export BUILD_ATOM_RELEASES_S3_KEY=$BUILD_ATOM_LINUX_RELEASES_S3_KEY export BUILD_ATOM_RELEASES_S3_SECRET=$BUILD_ATOM_LINUX_RELEASES_S3_SECRET export BUILD_ATOM_RELEASES_S3_BUCKET=$BUILD_ATOM_LINUX_RELEASES_S3_BUCKET -if [ -d /usr/local/share/nodenv ]; then - export NODENV_ROOT=/usr/local/share/nodenv - export PATH=/usr/local/share/nodenv/bin:/usr/local/share/nodenv/shims:$PATH - export NODENV_VERSION="v0.10.21" -fi +rm -rf /tmp/.atom-nvm +git clone https://github.com/creationix/nvm.git /tmp/.atom-nvm +source /tmp/.atom-nvm/nvm.sh +nvm install 4.4.7 +nvm use 4.4.7 +npm install -g npm script/cibuild diff --git a/script/utils/fingerprint.js b/script/utils/fingerprint.js index c419ba4fd..e1f6276d2 100644 --- a/script/utils/fingerprint.js +++ b/script/utils/fingerprint.js @@ -6,12 +6,14 @@ var fingerprintPath = path.resolve(__dirname, '..', '..', 'node_modules', '.atom module.exports = { fingerprint: function () { - var packageJson = fs.readFileSync(path.resolve(__dirname, '..', '..', 'package.json')) + var atomPackageJson = fs.readFileSync(path.resolve(__dirname, '..', '..', 'package.json')) + var apmPackageJson = fs.readFileSync(path.resolve(__dirname, '..', '..', 'apm', 'package.json')) //Include the electron minor version in the fingerprint since that changing requires a re-install - var electronVersion = JSON.parse(packageJson).electronVersion.replace(/\.\d+$/, '') + var electronVersion = JSON.parse(atomPackageJson).electronVersion.replace(/\.\d+$/, '') + var apmVersion = JSON.parse(apmPackageJson).dependencies['atom-package-manager'] - var body = electronVersion + process.platform + process.version + var body = electronVersion + apmVersion + process.platform + process.version return crypto.createHash('sha1').update(body).digest('hex') },