From 092ed37ed992bfba5d03e919e444f9181e8e6bbf Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 11:07:05 -0800 Subject: [PATCH 01/39] Remove unused core.hideGitIgnoredFiles config setting --- docs/customizing-atom.md | 3 +-- src/workspace-view.coffee | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/customizing-atom.md b/docs/customizing-atom.md index 1ac25fa77..c9a8e161e 100644 --- a/docs/customizing-atom.md +++ b/docs/customizing-atom.md @@ -66,7 +66,7 @@ directory, which contains CoffeeScript-style JSON: ```coffeescript core: - hideGitIgnoredFiles: true + excludeVcsIgnoredPaths: true editor: fontSize: 18 ``` @@ -79,7 +79,6 @@ namespaces: `core` and `editor`. - `core` - `disabledPackages`: An array of package names to disable - `excludeVcsIgnoredPaths`: Don't search within files specified by _.gitignore_ - - `hideGitIgnoredFiles`: Whether files in the _.gitignore_ should be hidden - `ignoredNames`: File names to ignore across all of Atom - `projectHome`: The directory where projects are assumed to be located - `themes`: An array of theme names to load, in cascading order diff --git a/src/workspace-view.coffee b/src/workspace-view.coffee index 22f260b22..c43d54e3f 100644 --- a/src/workspace-view.coffee +++ b/src/workspace-view.coffee @@ -118,8 +118,6 @@ class WorkspaceView extends View @command 'window:save-all', => @saveAll() @command 'window:toggle-invisibles', => atom.config.toggle("editor.showInvisibles") - @command 'window:toggle-ignored-files', => - atom.config.toggle("core.hideGitIgnoredFiles") @command 'window:toggle-auto-indent', => atom.config.toggle("editor.autoIndent") From 43bf47fa26f859922f0c8ec3caf249b9aa83a194 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 11:44:46 -0800 Subject: [PATCH 02/39] Upgrade to underscore-plus@0.4.0 --- package.json | 2 +- spec/space-pen-extensions-spec.coffee | 16 ++++++------ src/space-pen-extensions.coffee | 35 +++------------------------ 3 files changed, 13 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index ca3f54c1b..4dd147f07 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "space-pen": "2.0.1", "telepath": "0.65.0", "temp": "0.5.0", - "underscore-plus": "0.3.0" + "underscore-plus": "0.4.0" }, "devDependencies": { "biscotto": "0.0.17", diff --git a/spec/space-pen-extensions-spec.coffee b/spec/space-pen-extensions-spec.coffee index 7c6192d6c..54a64873e 100644 --- a/spec/space-pen-extensions-spec.coffee +++ b/spec/space-pen-extensions-spec.coffee @@ -53,15 +53,15 @@ describe "SpacePen extensions", -> expect(eventHandler).toHaveBeenCalled() describe "tooltips", -> - describe "replaceModifiers", -> - replaceModifiers = $.fn.setTooltip.replaceModifiers + describe "humanizeKeystrokes", -> + humanizeKeystrokes = $.fn.setTooltip.humanizeKeystrokes it "replaces single keystroke", -> - expect(replaceModifiers('cmd-O')).toEqual '⌘⇧O' - expect(replaceModifiers('cmd-shift-up')).toEqual '⌘⇧↑' - expect(replaceModifiers('cmd-option-down')).toEqual '⌘⌥↓' - expect(replaceModifiers('cmd-option-left')).toEqual '⌘⌥←' - expect(replaceModifiers('cmd-option-right')).toEqual '⌘⌥→' + expect(humanizeKeystrokes('cmd-O')).toEqual '⌘⇧O' + expect(humanizeKeystrokes('cmd-shift-up')).toEqual '⌘⇧↑' + expect(humanizeKeystrokes('cmd-option-down')).toEqual '⌘⌥↓' + expect(humanizeKeystrokes('cmd-option-left')).toEqual '⌘⌥←' + expect(humanizeKeystrokes('cmd-option-right')).toEqual '⌘⌥→' it "replaces multiple keystroke", -> - expect(replaceModifiers('cmd-o ctrl-2')).toEqual '⌘O ⌃2' + expect(humanizeKeystrokes('cmd-o ctrl-2')).toEqual '⌘O ⌃2' diff --git a/src/space-pen-extensions.coffee b/src/space-pen-extensions.coffee index 1efb9e809..d7504ebe2 100644 --- a/src/space-pen-extensions.coffee +++ b/src/space-pen-extensions.coffee @@ -24,41 +24,14 @@ tooltipDefaults = placement: 'auto top' viewportPadding: 2 -modifiers = - cmd: '⌘' - ctrl: '⌃' - alt: '⌥' - option: '⌥' - shift: '⇧' - enter: '⏎' - left: '←' - right: '→' - up: '↑' - down: '↓' - -replaceKey = (key) -> - if modifiers[key] - modifiers[key] - else if key.length == 1 and key == key.toUpperCase() and key.toUpperCase() != key.toLowerCase() - [modifiers.shift, key.toUpperCase()] - else if key.length == 1 - key.toUpperCase() - else - key - -replaceModifiersInSingleKeystroke = (keystroke) -> - keys = keystroke.split('-') - keys = _.flatten(replaceKey(key) for key in keys) - keys.join('') - -replaceModifiers = (keystroke) -> +humanizeKeystrokes = (keystroke) -> keystrokes = keystroke.split(' ') - keystrokes = (replaceModifiersInSingleKeystroke(stroke) for stroke in keystrokes) + keystrokes = (_.humanizeKeystroke(stroke) for stroke in keystrokes) keystrokes.join(' ') getKeystroke = (bindings) -> if bindings?.length - "#{replaceModifiers(bindings[0].keystroke)}" + "#{humanizeKeystrokes(bindings[0].keystroke)}" else '' # options from http://getbootstrap.com/javascript/#tooltips @@ -87,6 +60,6 @@ jQuery.fn.destroyTooltip = -> @tooltip('destroy') jQuery.fn.setTooltip.getKeystroke = getKeystroke -jQuery.fn.setTooltip.replaceModifiers = replaceModifiers +jQuery.fn.setTooltip.humanizeKeystrokes = humanizeKeystrokes module.exports = spacePen From 3f69197a087da1ccf2cf06a7f6da6cc970eef2e2 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 12:31:25 -0800 Subject: [PATCH 03/39] Update command palette to better handle keybindings. Fixes #1233 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4dd147f07..aeaa9bcde 100644 --- a/package.json +++ b/package.json @@ -73,9 +73,9 @@ }, "packageDependencies": { "atom-dark-syntax": "0.8.0", - "atom-dark-ui": "0.13.0", + "atom-dark-ui": "0.14.0", "atom-light-syntax": "0.9.0", - "atom-light-ui": "0.13.0", + "atom-light-ui": "0.14.0", "base16-tomorrow-dark-theme": "0.7.0", "solarized-dark-syntax": "0.5.0", "archive-view": "0.16.0", @@ -85,7 +85,7 @@ "bookmarks": "0.15.0", "bracket-matcher": "0.15.0", "command-logger": "0.8.0", - "command-palette": "0.11.0", + "command-palette": "0.12.0", "dev-live-reload": "0.18.0", "editor-stats": "0.8.0", "exception-reporting": "0.8.0", @@ -108,7 +108,7 @@ "snippets": "0.17.0", "spell-check": "0.17.0", "status-bar": "0.24.0", - "styleguide": "0.17.0", + "styleguide": "0.18.0", "symbols-view": "0.27.0", "tabs": "0.15.0", "terminal": "0.23.0", From d638fe9ca010c28dc5a67fd92924a9fecf967377 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 12:40:25 -0800 Subject: [PATCH 04/39] Upgrade to command-palette@0.13.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aeaa9bcde..6cb01ec6c 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "bookmarks": "0.15.0", "bracket-matcher": "0.15.0", "command-logger": "0.8.0", - "command-palette": "0.12.0", + "command-palette": "0.13.0", "dev-live-reload": "0.18.0", "editor-stats": "0.8.0", "exception-reporting": "0.8.0", From 11f8eba2c33d98638d710c34f221c027b7970939 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:12:19 -0800 Subject: [PATCH 05/39] Add initial upload-release script --- package.json | 3 +- script/cibuild | 1 + script/upload-release | 80 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100755 script/upload-release diff --git a/package.json b/package.json index 6cb01ec6c..8fa7ea9e7 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,8 @@ "request": "~2.27.0", "unzip": "~0.1.9", "rcedit": "~0.1.2", - "rimraf": "~2.2.2" + "rimraf": "~2.2.2", + "github-releases": "~0.2.0" }, "packageDependencies": { "atom-dark-syntax": "0.8.0", diff --git a/script/cibuild b/script/cibuild index c83d01c45..24474722d 100755 --- a/script/cibuild +++ b/script/cibuild @@ -33,6 +33,7 @@ cp.safeExec.bind(global, 'node script/bootstrap', function(error) { require('rimraf').bind(global, path.join(homeDir, '.atom')), cp.safeExec.bind(global, 'git clean -dff'), cp.safeExec.bind(global, 'node node_modules/grunt-cli/bin/grunt ci --stack --no-color'), + cp.safeExec.bind(global, 'node script/upload-release') ], function(error) { process.exit(error ? 1 : 0); }); diff --git a/script/upload-release b/script/upload-release new file mode 100755 index 000000000..5a46e0363 --- /dev/null +++ b/script/upload-release @@ -0,0 +1,80 @@ +#!/usr/bin/env node + +console.log(process.env); + +return + +var child_process = require('child_process'); +var fs = require('fs'); +var path = require ('path'); + +var GitHub = require('github-releases'); +var request = require('request'); + +var assetPath = '/tmp/atom-build/atom-mac-prerelease.zip'; +var token = process.env.ATOM_ACCESS_TOKEN; + +var zipApp = function(callback) { + if (fs.existsSync(assetPath)) + fs.unlinkSync(assetPath) + + var options = { + cwd: path.dirname(assetPath), + maxBuffer: Infinity + }; + child_process.exec('zip -r --symlinks atom-mac.zip Atom.app', options, function(error, stdout, stderr) { + if (error) { + console.error('Zipping Atom.app failed', error, stderr); + process.exit(1); + } else + callback(); + }); +}; + +var getDraftRelease = function(callback) { + var github = new GitHub({repo: 'atom/atom', token: token}); + github.getReleases(function(error, releases) { + if (error) { + console.error('Fetching releases failed', error.message, error.stack); + process.exit(1); + } + + if (!releases || releases.length === 0) { + console.error('No releases found in atom/atom repo'); + process.exit(1); + } + + var release = null; + for (var i = 0; i < releases.length; i++) { + release = releases[i]; + if (release.draft) { + callback(release); + return; + } + } + + console.error('No draft release found in atom/atom repo'); + process.exit(1); + }) +}; + +var uploadAsset = function() { + getDraftRelease(function(release) { + var options = { + uri: "https://uploads.github.com/repos/atom/atom/releases/" + release.id + "/assets?name=" + path.basename(assetPath), + method: 'POST', + headers: { + Authorization: 'token ' + token, + 'Content-Type': 'application/zip', + 'Content-Length': fs.statSync(assetPath).size + } + }; + var upload = request(options, function(error, response, body) { + if (error || response.statusCode >= 400) + console.error('Upload release asset failed', error, body); + }); + fs.createReadStream(assetPath).pipe(upload); + }); +} + +zipApp(uploadAsset); From 4705e382bfd3443db59ebef06fd5e84b414f657f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:22:06 -0800 Subject: [PATCH 06/39] Convert script/upload-release to CoffeeScript --- script/cibuild | 2 +- script/upload-release | 114 +++++++++++++++++------------------------- 2 files changed, 48 insertions(+), 68 deletions(-) diff --git a/script/cibuild b/script/cibuild index 24474722d..ff7a154b9 100755 --- a/script/cibuild +++ b/script/cibuild @@ -33,7 +33,7 @@ cp.safeExec.bind(global, 'node script/bootstrap', function(error) { require('rimraf').bind(global, path.join(homeDir, '.atom')), cp.safeExec.bind(global, 'git clean -dff'), cp.safeExec.bind(global, 'node node_modules/grunt-cli/bin/grunt ci --stack --no-color'), - cp.safeExec.bind(global, 'node script/upload-release') + cp.safeExec.bind(global, 'node_modules/.bin/coffee script/upload-release') ], function(error) { process.exit(error ? 1 : 0); }); diff --git a/script/upload-release b/script/upload-release index 5a46e0363..048ae254b 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,80 +1,60 @@ -#!/usr/bin/env node +#!/usr/bin/env coffee -console.log(process.env); +if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release' + return -return +child_process = require 'child_process' +fs = require 'fs' +path = require 'path' -var child_process = require('child_process'); -var fs = require('fs'); -var path = require ('path'); +GitHub = require 'github-releases' +request = require 'request' -var GitHub = require('github-releases'); -var request = require('request'); +assetPath = '/tmp/atom-build/atom-mac-prerelease.zip' +token = process.env.ATOM_ACCESS_TOKEN -var assetPath = '/tmp/atom-build/atom-mac-prerelease.zip'; -var token = process.env.ATOM_ACCESS_TOKEN; +zipApp = (callback) -> + fs.unlinkSync(assetPath) if fs.existsSync(assetPath) -var zipApp = function(callback) { - if (fs.existsSync(assetPath)) - fs.unlinkSync(assetPath) + options = {cwd: path.dirname(assetPath), maxBuffer: Infinity} + child_process.exec 'zip -r --symlinks atom-mac.zip Atom.app', options, (error, stdout, stderr) -> + if error? + console.error('Zipping Atom.app failed', error, stderr) + process.exit(1) + else + callback() - var options = { - cwd: path.dirname(assetPath), - maxBuffer: Infinity - }; - child_process.exec('zip -r --symlinks atom-mac.zip Atom.app', options, function(error, stdout, stderr) { - if (error) { - console.error('Zipping Atom.app failed', error, stderr); - process.exit(1); - } else - callback(); - }); -}; +getDraftRelease = (callback) -> + github = new GitHub({repo: 'atom/atom', token: token}) + github.getReleases (error, releases=[]) -> + if error? + console.error('Fetching releases failed', error.message, error.stack) + process.exit(1) -var getDraftRelease = function(callback) { - var github = new GitHub({repo: 'atom/atom', token: token}); - github.getReleases(function(error, releases) { - if (error) { - console.error('Fetching releases failed', error.message, error.stack); - process.exit(1); - } + if releases.length is 0 + console.error('No releases found in atom/atom repo') + process.exit(1) - if (!releases || releases.length === 0) { - console.error('No releases found in atom/atom repo'); - process.exit(1); - } + for release in releases when release.draft + callback(release) + return - var release = null; - for (var i = 0; i < releases.length; i++) { - release = releases[i]; - if (release.draft) { - callback(release); - return; - } - } + console.error('No draft release found in atom/atom repo') + process.exit(1) - console.error('No draft release found in atom/atom repo'); - process.exit(1); - }) -}; - -var uploadAsset = function() { - getDraftRelease(function(release) { - var options = { - uri: "https://uploads.github.com/repos/atom/atom/releases/" + release.id + "/assets?name=" + path.basename(assetPath), - method: 'POST', - headers: { - Authorization: 'token ' + token, - 'Content-Type': 'application/zip', +uploadAsset = -> + getDraftRelease (release) -> + options = + uri: "https://uploads.github.com/repos/atom/atom/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" + method: 'POST' + headers: + Authorization: "token #{token}" + 'Content-Type': 'application/zip' 'Content-Length': fs.statSync(assetPath).size - } - }; - var upload = request(options, function(error, response, body) { - if (error || response.statusCode >= 400) - console.error('Upload release asset failed', error, body); - }); - fs.createReadStream(assetPath).pipe(upload); - }); -} -zipApp(uploadAsset); + upload = request options, (error, response, body) -> + if error or response.statusCode >= 400 + console.error('Upload release asset failed', error, body) + fs.createReadStream(assetPath).pipe(upload) + +zipApp(uploadAsset) From 96d38d725287a9a351208b9f021ff74f2f12899d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:22:59 -0800 Subject: [PATCH 07/39] :lipstick: Use return unless --- script/upload-release | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/script/upload-release b/script/upload-release index 048ae254b..3ec5f8653 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,7 +1,6 @@ #!/usr/bin/env coffee -if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release' - return +return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' child_process = require 'child_process' fs = require 'fs' From 2a51eb76144af473a21a872216dbb8224f5be008 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:24:03 -0800 Subject: [PATCH 08/39] Remove unneeded key name --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index 3ec5f8653..9e2e6135a 100755 --- a/script/upload-release +++ b/script/upload-release @@ -24,7 +24,7 @@ zipApp = (callback) -> callback() getDraftRelease = (callback) -> - github = new GitHub({repo: 'atom/atom', token: token}) + github = new GitHub({repo: 'atom/atom', token}) github.getReleases (error, releases=[]) -> if error? console.error('Fetching releases failed', error.message, error.stack) From a9d1afdf65c6bc285fdf5df54ad71adb2c6a2959 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:24:42 -0800 Subject: [PATCH 09/39] Rename upload variable to assetRequest --- script/upload-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/upload-release b/script/upload-release index 9e2e6135a..e174b2af8 100755 --- a/script/upload-release +++ b/script/upload-release @@ -51,9 +51,9 @@ uploadAsset = -> 'Content-Type': 'application/zip' 'Content-Length': fs.statSync(assetPath).size - upload = request options, (error, response, body) -> + assetRequest = request options, (error, response, body) -> if error or response.statusCode >= 400 console.error('Upload release asset failed', error, body) - fs.createReadStream(assetPath).pipe(upload) + fs.createReadStream(assetPath).pipe(assetRequest) zipApp(uploadAsset) From 90802e372588562921e36977f73de7d75dd9a6f2 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:25:10 -0800 Subject: [PATCH 10/39] Check for error being null and default body to empty string --- script/upload-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/upload-release b/script/upload-release index e174b2af8..a02537069 100755 --- a/script/upload-release +++ b/script/upload-release @@ -51,8 +51,8 @@ uploadAsset = -> 'Content-Type': 'application/zip' 'Content-Length': fs.statSync(assetPath).size - assetRequest = request options, (error, response, body) -> - if error or response.statusCode >= 400 + assetRequest = request options, (error, response, body='') -> + if error? or response.statusCode >= 400 console.error('Upload release asset failed', error, body) fs.createReadStream(assetPath).pipe(assetRequest) From 4af71391a60101108cdac2354006e8a18deb2bf7 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:31:22 -0800 Subject: [PATCH 11/39] Use basename of assetPath in zip command --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index a02537069..964b6167f 100755 --- a/script/upload-release +++ b/script/upload-release @@ -16,7 +16,7 @@ zipApp = (callback) -> fs.unlinkSync(assetPath) if fs.existsSync(assetPath) options = {cwd: path.dirname(assetPath), maxBuffer: Infinity} - child_process.exec 'zip -r --symlinks atom-mac.zip Atom.app', options, (error, stdout, stderr) -> + child_process.exec "zip -r --symlinks #{path.basename(assetPath)} Atom.app", options, (error, stdout, stderr) -> if error? console.error('Zipping Atom.app failed', error, stderr) process.exit(1) From 8c1d49c703d09020c176c95d5c75b9aed989cca5 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:38:44 -0800 Subject: [PATCH 12/39] Exit with 1 when upload fails --- script/upload-release | 1 + 1 file changed, 1 insertion(+) diff --git a/script/upload-release b/script/upload-release index 964b6167f..00187280d 100755 --- a/script/upload-release +++ b/script/upload-release @@ -54,6 +54,7 @@ uploadAsset = -> assetRequest = request options, (error, response, body='') -> if error? or response.statusCode >= 400 console.error('Upload release asset failed', error, body) + process.exit(1) fs.createReadStream(assetPath).pipe(assetRequest) zipApp(uploadAsset) From be0ebab841c35635b57210ff5c5f7bc963a734cf Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:51:30 -0800 Subject: [PATCH 13/39] Delete existing before uploading new one --- script/upload-release | 50 +++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/script/upload-release b/script/upload-release index 00187280d..5b2829441 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,11 +1,11 @@ #!/usr/bin/env coffee -return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' +# return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' child_process = require 'child_process' -fs = require 'fs' path = require 'path' +fs = require 'fs-plus' GitHub = require 'github-releases' request = require 'request' @@ -13,7 +13,7 @@ assetPath = '/tmp/atom-build/atom-mac-prerelease.zip' token = process.env.ATOM_ACCESS_TOKEN zipApp = (callback) -> - fs.unlinkSync(assetPath) if fs.existsSync(assetPath) + fs.removeSync(assetPath) options = {cwd: path.dirname(assetPath), maxBuffer: Infinity} child_process.exec "zip -r --symlinks #{path.basename(assetPath)} Atom.app", options, (error, stdout, stderr) -> @@ -41,20 +41,42 @@ getDraftRelease = (callback) -> console.error('No draft release found in atom/atom repo') process.exit(1) -uploadAsset = -> - getDraftRelease (release) -> +deleteExistingAsset = (release, callback) -> + for asset in release.assets when asset.name is path.basename(assetPath) options = - uri: "https://uploads.github.com/repos/atom/atom/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" - method: 'POST' + uri: asset.url + method: 'DELETE' headers: Authorization: "token #{token}" - 'Content-Type': 'application/zip' - 'Content-Length': fs.statSync(assetPath).size - - assetRequest = request options, (error, response, body='') -> + 'User-Agent': 'Atom' + request options, (error, response, body='') -> if error? or response.statusCode >= 400 - console.error('Upload release asset failed', error, body) + console.error('Deleting existing release asset failed', error, body) process.exit(1) - fs.createReadStream(assetPath).pipe(assetRequest) + else + callback() -zipApp(uploadAsset) + return + + callback() + +uploadAsset = (release) -> + options = + uri: "https://uploads.github.com/repos/atom/atom/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" + method: 'POST' + headers: + Authorization: "token #{token}" + 'Content-Type': 'application/zip' + 'Content-Length': fs.getSizeSync(assetPath) + 'User-Agent': 'Atom' + + assetRequest = request options, (error, response, body='') -> + if error? or response.statusCode >= 400 + console.error('Upload release asset failed', error, body) + process.exit(1) + fs.createReadStream(assetPath).pipe(assetRequest) + +getDraftRelease (release) -> + zipApp -> + deleteExistingAsset release, -> + uploadAsset(release) From 2d0ba3e1f98b54df386c50f27d75c528b20d234f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:51:55 -0800 Subject: [PATCH 14/39] Uncomment branch check --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index 5b2829441..afcefc44c 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,6 +1,6 @@ #!/usr/bin/env coffee -# return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' +return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' child_process = require 'child_process' path = require 'path' From 3d8e304b1cb720aaeaf641b3d266b72d4c2ced59 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 08:54:40 -0800 Subject: [PATCH 15/39] Allow script/upload-release to be called directly --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index afcefc44c..d744bc39b 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,6 +1,6 @@ #!/usr/bin/env coffee -return unless process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'ks-upload-release' +return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release' child_process = require 'child_process' path = require 'path' From f3f94a2af0d3ca71dea24df0541adb6d61eb40dc Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 12:59:32 -0800 Subject: [PATCH 16/39] Drop prerelease from asset name --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index d744bc39b..bb2fb9147 100755 --- a/script/upload-release +++ b/script/upload-release @@ -9,7 +9,7 @@ fs = require 'fs-plus' GitHub = require 'github-releases' request = require 'request' -assetPath = '/tmp/atom-build/atom-mac-prerelease.zip' +assetPath = '/tmp/atom-build/atom-mac.zip' token = process.env.ATOM_ACCESS_TOKEN zipApp = (callback) -> From e1a1a7efc9f26c93df82bd346bf8b253bcee3ac2 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 13:24:02 -0800 Subject: [PATCH 17/39] Log what release is being uploaded to --- script/upload-release | 2 ++ 1 file changed, 2 insertions(+) diff --git a/script/upload-release b/script/upload-release index bb2fb9147..635da1c4d 100755 --- a/script/upload-release +++ b/script/upload-release @@ -2,6 +2,7 @@ return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release' + child_process = require 'child_process' path = require 'path' @@ -77,6 +78,7 @@ uploadAsset = (release) -> fs.createReadStream(assetPath).pipe(assetRequest) getDraftRelease (release) -> + console.log("Uploading #{path.basename(assetPath)} asset to #{release.name} release") zipApp -> deleteExistingAsset release, -> uploadAsset(release) From 2141d06f6149d863da5921380962fbcb50826aee Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 13:33:31 -0800 Subject: [PATCH 18/39] Upload master builds only --- script/upload-release | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/script/upload-release b/script/upload-release index 635da1c4d..9401cfc45 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,7 +1,6 @@ #!/usr/bin/env coffee -return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release' - +return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' child_process = require 'child_process' path = require 'path' From 163994340d90acdbc1d748471a1196780abc2534 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 13:51:09 -0800 Subject: [PATCH 19/39] Log Atom release tag name --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index 9401cfc45..5fea1c12a 100755 --- a/script/upload-release +++ b/script/upload-release @@ -77,7 +77,7 @@ uploadAsset = (release) -> fs.createReadStream(assetPath).pipe(assetRequest) getDraftRelease (release) -> - console.log("Uploading #{path.basename(assetPath)} asset to #{release.name} release") + console.log("Uploading #{path.basename(assetPath)} asset to #{release.tag_name} (#{release.name}) release") zipApp -> deleteExistingAsset release, -> uploadAsset(release) From 2136fdaa60dad0510126f26b75fe97cb391d7800 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 14:11:01 -0800 Subject: [PATCH 20/39] Set cwd to vendor/apm instead of cd'ing --- script/bootstrap | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/script/bootstrap b/script/bootstrap index a23426da1..6cf10099c 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -22,17 +22,11 @@ function executeCommands(commands, done, index) { done(null); } -// Join multiple commands into one line. -function joinCommands() { - var commandSeparator = process.platform == 'win32' ? '&' : ';'; - return Array.prototype.slice.call(arguments, 0).join(commandSeparator); -} - var echoNewLine = process.platform == 'win32' ? 'echo.' : 'echo'; var commands = [ 'git submodule --quiet sync', 'git submodule --quiet update --recursive --init', - {command: joinCommands('cd vendor/apm', 'npm install --silent .'), options: {ignoreStdout: true}}, + {command: 'npm install --silent .', options: {cwd: path.resolve(__dirname, '..', 'vendor', 'apm'), ignoreStdout: true}}, {command: 'npm install --silent vendor/apm', options: {ignoreStdout: true}}, echoNewLine, 'node node_modules/atom-package-manager/bin/apm clean', From 1674f16a0e881616c2af1233ebdee2d7819a6a56 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 15:10:01 -0800 Subject: [PATCH 21/39] Add line-jumper package to default install --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 8fa7ea9e7..afd6f055c 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "grammar-selector": "0.13.0", "image-view": "0.10.0", "keybinding-resolver": "0.6.0", + "line-jumper": "0.7.0", "link": "0.11.0", "markdown-preview": "0.22.0", "metrics": "0.14.0", From b3b2be2430ed9e3e9f46d514c2663047f01771c8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 15:20:26 -0800 Subject: [PATCH 22/39] :memo: Add setting up travis doc --- docs/setting-up-travis.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 docs/setting-up-travis.md diff --git a/docs/setting-up-travis.md b/docs/setting-up-travis.md new file mode 100644 index 000000000..e85af32ef --- /dev/null +++ b/docs/setting-up-travis.md @@ -0,0 +1,28 @@ +# Setting up Travis CI + +Packages under the [atom org][atom-org] should use [Travis CI][travis-ci] for +builds. + +Currently we have a [Travis Pro][travis-pro] account since the repositories +are private. This process will be simpler and have fewer steps once the +package repos are made public. + +## Configuring a package + +* Run `cd ~/github/my-package` to navigate to the package repo. +* Run `apm test` to verify that the package currently builds via [apm][apm] +* Add the package repo to the [Travis CI team][travis-ci-team] +* Run `gem install travis` to install the [travis gem][travis-gem] +* Run `travis login --pro` and log in using the [atom-build][atom-build] user + and the password from the *Shared-Developers* folder in LastPass +* Run `apm ci` to add a `.travis.yml` file to the repo and to configure Travis +* Log into [Travis][travis-ci] as the `atom-build` user and you should now see + the package listed and building + +[apm]: https://github.com/atom/apm +[atom-build]: https://github.com/atom-build +[atom-org]: https://github.com/atom +[travis-ci]: https://magnum.travis-ci.com +[travis-ci-team]: https://github.com/organizations/atom/teams/596636 +[travis-gem]: https://rubygems.org/gems/travis +[travis-pro]: http://about.travis-ci.org/docs/user/travis-pro From 7cc61c5252d78fbc5b1bb5dfeea08fcc48997a94 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 15:22:21 -0800 Subject: [PATCH 23/39] :memo: Add locally --- docs/setting-up-travis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setting-up-travis.md b/docs/setting-up-travis.md index e85af32ef..64138edee 100644 --- a/docs/setting-up-travis.md +++ b/docs/setting-up-travis.md @@ -9,7 +9,7 @@ package repos are made public. ## Configuring a package -* Run `cd ~/github/my-package` to navigate to the package repo. +* Run `cd ~/github/my-package` to navigate to the package repo locally * Run `apm test` to verify that the package currently builds via [apm][apm] * Add the package repo to the [Travis CI team][travis-ci-team] * Run `gem install travis` to install the [travis gem][travis-gem] From b2ab9d32460de688fcd49d971ec69af8faed09b5 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 16:10:56 -0800 Subject: [PATCH 24/39] Upgrade the themes to fix text hover colors --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index afd6f055c..958384a02 100644 --- a/package.json +++ b/package.json @@ -74,9 +74,9 @@ }, "packageDependencies": { "atom-dark-syntax": "0.8.0", - "atom-dark-ui": "0.14.0", + "atom-dark-ui": "0.15.0", "atom-light-syntax": "0.9.0", - "atom-light-ui": "0.14.0", + "atom-light-ui": "0.15.0", "base16-tomorrow-dark-theme": "0.7.0", "solarized-dark-syntax": "0.5.0", "archive-view": "0.16.0", From 2ae7775caff8ee643c2c58d3b808faa99b5933dc Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 16:27:29 -0800 Subject: [PATCH 25/39] Upgrade to underscore-plus@0.5.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 958384a02..2696ed128 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "space-pen": "2.0.1", "telepath": "0.65.0", "temp": "0.5.0", - "underscore-plus": "0.4.0" + "underscore-plus": "0.5.0" }, "devDependencies": { "biscotto": "0.0.17", From ba681023daa9af5096bb69127d8caa2b1d442de3 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 16:46:20 -0800 Subject: [PATCH 26/39] Upgrade to language-javascript@0.4.0 for log snippet --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2696ed128..ef272d720 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "language-html": "0.2.0", "language-hyperlink": "0.3.0", "language-java": "0.2.0", - "language-javascript": "0.3.0", + "language-javascript": "0.4.0", "language-json": "0.2.0", "language-less": "0.1.0", "language-make": "0.1.0", From 3e83364e38e3e1ff1d13ef5fcc849834f0e9f10d Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 10 Dec 2013 16:52:28 -0800 Subject: [PATCH 27/39] Update line-jumper --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ef272d720..01eabf4b4 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "grammar-selector": "0.13.0", "image-view": "0.10.0", "keybinding-resolver": "0.6.0", - "line-jumper": "0.7.0", + "line-jumper": "0.7.1", "link": "0.11.0", "markdown-preview": "0.22.0", "metrics": "0.14.0", From c1f3499359978bfd4f77c7e3733ca0b3346a3eb6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:06:31 -0800 Subject: [PATCH 28/39] Upgrade to metrics@0.15.0 for window load time reporting --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 01eabf4b4..10efeee5f 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "line-jumper": "0.7.1", "link": "0.11.0", "markdown-preview": "0.22.0", - "metrics": "0.14.0", + "metrics": "0.15.0", "package-generator": "0.23.0", "release-notes": "0.15.0", "settings-view": "0.50.0", From 6c8db8ee4979d4b0406135ce9ddbf82d0f4bfff6 Mon Sep 17 00:00:00 2001 From: Matt Colyer Date: Tue, 10 Dec 2013 17:18:52 -0800 Subject: [PATCH 29/39] Upgrade grunt-download-atom-shell@0.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 10efeee5f..ff96d1573 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "language-toml": "0.7.0", "language-xml": "0.2.0", "language-yaml": "0.1.0", - "grunt-download-atom-shell": "0.1.3" + "grunt-download-atom-shell": "0.2.0" }, "private": true, "scripts": { From 527aa61fa1c4c7d18cdac82b78569f5e74c05312 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:23:59 -0800 Subject: [PATCH 30/39] Remove line-jumper until atom.io issue is resolved --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 10efeee5f..d391d4085 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,6 @@ "grammar-selector": "0.13.0", "image-view": "0.10.0", "keybinding-resolver": "0.6.0", - "line-jumper": "0.7.1", "link": "0.11.0", "markdown-preview": "0.22.0", "metrics": "0.15.0", From 3e359e3c4e6c81864e19eff7d37d923b04a4ed26 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 16:34:26 -0800 Subject: [PATCH 31/39] Upload releases to atom/atom-master-builds repo --- script/upload-release | 98 ++++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 29 deletions(-) diff --git a/script/upload-release b/script/upload-release index 5fea1c12a..b01dbdaae 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,16 +1,21 @@ #!/usr/bin/env coffee -return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' +return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-builds-repo' child_process = require 'child_process' path = require 'path' +_ = require 'underscore-plus' fs = require 'fs-plus' GitHub = require 'github-releases' request = require 'request' assetPath = '/tmp/atom-build/atom-mac.zip' +commitSha = process.env.JANKY_SHA1 token = process.env.ATOM_ACCESS_TOKEN +defaultHeaders = + Authorization: "token #{token}" + 'User-Agent': 'Atom' zipApp = (callback) -> fs.removeSync(assetPath) @@ -23,32 +28,28 @@ zipApp = (callback) -> else callback() -getDraftRelease = (callback) -> - github = new GitHub({repo: 'atom/atom', token}) - github.getReleases (error, releases=[]) -> - if error? - console.error('Fetching releases failed', error.message, error.stack) +getRelease = (callback) -> + options = + uri: 'https://api.github.com/repos/atom/atom-master-builds/releases' + method: 'GET' + headers: defaultHeaders + json: true + request options, (error, response, releases=[]) -> + if error? or response.statusCode isnt 200 + console.error('Fetching releases failed', error, releases) process.exit(1) - - if releases.length is 0 - console.error('No releases found in atom/atom repo') - process.exit(1) - - for release in releases when release.draft - callback(release) - return - - console.error('No draft release found in atom/atom repo') - process.exit(1) + else + for release in releases when release.name is commitSha + callback(release) + return + callback() deleteExistingAsset = (release, callback) -> for asset in release.assets when asset.name is path.basename(assetPath) options = uri: asset.url method: 'DELETE' - headers: - Authorization: "token #{token}" - 'User-Agent': 'Atom' + headers: defaultHeaders request options, (error, response, body='') -> if error? or response.statusCode >= 400 console.error('Deleting existing release asset failed', error, body) @@ -60,24 +61,63 @@ deleteExistingAsset = (release, callback) -> callback() -uploadAsset = (release) -> +createRelease = (callback) -> + getRelease (release) -> + if release? + deleteExistingAsset release, -> + callback(release) + return + + options = + uri: 'https://api.github.com/repos/atom/atom-master-builds/releases' + method: 'POST' + headers: defaultHeaders + json: + tag_name: "v#{commitSha}" + target_commitish: 'master' + name: commitSha + body: "Build of [atom@#{commitSha.substring(0, 7)}](https://github.com/atom/atom/commit/#{process.env.commitSha})" + draft: true + request options, (error, response, release={}) -> + if error? or response.statusCode isnt 201 + console.error('Creating release failed', error, release) + process.exit(1) + else + callback(release) + +uploadAsset = (release, callback) -> options = - uri: "https://uploads.github.com/repos/atom/atom/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" + uri: "https://uploads.github.com/repos/atom/atom-master-builds/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" method: 'POST' - headers: - Authorization: "token #{token}" + headers: _.extend({ 'Content-Type': 'application/zip' 'Content-Length': fs.getSizeSync(assetPath) - 'User-Agent': 'Atom' + }, defaultHeaders) assetRequest = request options, (error, response, body='') -> if error? or response.statusCode >= 400 console.error('Upload release asset failed', error, body) process.exit(1) + else + callback(release) + fs.createReadStream(assetPath).pipe(assetRequest) -getDraftRelease (release) -> - console.log("Uploading #{path.basename(assetPath)} asset to #{release.tag_name} (#{release.name}) release") +publishRelease = (release) -> + options = + uri: release.url + method: 'POST' + headers: + Authorization: "token #{token}" + 'User-Agent': 'Atom' + json: + draft: false + request options, (error, response, body={}) -> + if error? or response.statusCode isnt 200 + console.error('Creating release failed', error, body) + process.exit(1) + +createRelease (release) -> zipApp -> - deleteExistingAsset release, -> - uploadAsset(release) + uploadAsset release, -> + publishRelease release From fbd8f7a1a7c0b04da4f357c80b923b8a827ef58d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 16:49:18 -0800 Subject: [PATCH 32/39] Use commitSha variable --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index b01dbdaae..9f0caefd2 100755 --- a/script/upload-release +++ b/script/upload-release @@ -76,7 +76,7 @@ createRelease = (callback) -> tag_name: "v#{commitSha}" target_commitish: 'master' name: commitSha - body: "Build of [atom@#{commitSha.substring(0, 7)}](https://github.com/atom/atom/commit/#{process.env.commitSha})" + body: "Build of [atom@#{commitSha.substring(0, 7)}](https://github.com/atom/atom/commit/#{commitSha})" draft: true request options, (error, response, release={}) -> if error? or response.statusCode isnt 201 From 086f0a068440d940a4d3aabd637a245f60998505 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:14:21 -0800 Subject: [PATCH 33/39] :memo: Mention build-package script and atom-master-builds --- docs/setting-up-travis.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/setting-up-travis.md b/docs/setting-up-travis.md index 64138edee..51df0ee86 100644 --- a/docs/setting-up-travis.md +++ b/docs/setting-up-travis.md @@ -7,6 +7,14 @@ Currently we have a [Travis Pro][travis-pro] account since the repositories are private. This process will be simpler and have fewer steps once the package repos are made public. +Each package builds using the [build-package][build-package] script, any +changes to the build should be made in that script and will affect all +package builds immediately. + +Each package builds against the latest successful build of atom@master. The +master builds are stored in the [atom-master-builds][atom-master-builds] repo +as releases named by the SHA-1 built. + ## Configuring a package * Run `cd ~/github/my-package` to navigate to the package repo locally @@ -18,9 +26,12 @@ package repos are made public. * Run `apm ci` to add a `.travis.yml` file to the repo and to configure Travis * Log into [Travis][travis-ci] as the `atom-build` user and you should now see the package listed and building + [apm]: https://github.com/atom/apm +[build-package]: https://github.com/atom/apm/blob/master/script/build-package [atom-build]: https://github.com/atom-build +[atom-master-builds]: https://github.com/atom/atom-master-builds/releases [atom-org]: https://github.com/atom [travis-ci]: https://magnum.travis-ci.com [travis-ci-team]: https://github.com/organizations/atom/teams/596636 From f1ed51a82314b790669fbe3780b7c17579506f7a Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:19:44 -0800 Subject: [PATCH 34/39] Only publish master builds --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index 9f0caefd2..13a61ba6a 100755 --- a/script/upload-release +++ b/script/upload-release @@ -1,6 +1,6 @@ #!/usr/bin/env coffee -return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-builds-repo' +return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' child_process = require 'child_process' path = require 'path' From 938c85e616312c74e4c54a78d2d1818f95f78475 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:46:34 -0800 Subject: [PATCH 35/39] Use default headers in publish release API call --- script/upload-release | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/script/upload-release b/script/upload-release index 13a61ba6a..fde447d94 100755 --- a/script/upload-release +++ b/script/upload-release @@ -107,9 +107,7 @@ publishRelease = (release) -> options = uri: release.url method: 'POST' - headers: - Authorization: "token #{token}" - 'User-Agent': 'Atom' + headers: defaultHeaders json: draft: false request options, (error, response, body={}) -> From 1851c81e6063ccc8855509e569ba8a9acf2173b2 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:47:43 -0800 Subject: [PATCH 36/39] Log when delete response is non-204 --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index fde447d94..bf42d7e66 100755 --- a/script/upload-release +++ b/script/upload-release @@ -51,7 +51,7 @@ deleteExistingAsset = (release, callback) -> method: 'DELETE' headers: defaultHeaders request options, (error, response, body='') -> - if error? or response.statusCode >= 400 + if error? or response.statusCode isnt 204 console.error('Deleting existing release asset failed', error, body) process.exit(1) else From 897bf2f8e093318ffb15600d71caf1f2508131e0 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 17:49:53 -0800 Subject: [PATCH 37/39] :lipstick: Add assetName variable --- script/upload-release | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/script/upload-release b/script/upload-release index bf42d7e66..36bc1e974 100755 --- a/script/upload-release +++ b/script/upload-release @@ -10,7 +10,8 @@ fs = require 'fs-plus' GitHub = require 'github-releases' request = require 'request' -assetPath = '/tmp/atom-build/atom-mac.zip' +assetName = 'atom-mac-zip' +assetPath = "/tmp/atom-build/#{assetName}" commitSha = process.env.JANKY_SHA1 token = process.env.ATOM_ACCESS_TOKEN defaultHeaders = @@ -21,7 +22,7 @@ zipApp = (callback) -> fs.removeSync(assetPath) options = {cwd: path.dirname(assetPath), maxBuffer: Infinity} - child_process.exec "zip -r --symlinks #{path.basename(assetPath)} Atom.app", options, (error, stdout, stderr) -> + child_process.exec "zip -r --symlinks #{assetName} Atom.app", options, (error, stdout, stderr) -> if error? console.error('Zipping Atom.app failed', error, stderr) process.exit(1) @@ -45,7 +46,7 @@ getRelease = (callback) -> callback() deleteExistingAsset = (release, callback) -> - for asset in release.assets when asset.name is path.basename(assetPath) + for asset in release.assets when asset.name is assetName options = uri: asset.url method: 'DELETE' @@ -87,7 +88,7 @@ createRelease = (callback) -> uploadAsset = (release, callback) -> options = - uri: "https://uploads.github.com/repos/atom/atom-master-builds/releases/#{release.id}/assets?name=#{path.basename(assetPath)}" + uri: "https://uploads.github.com/repos/atom/atom-master-builds/releases/#{release.id}/assets?name=#{assetName}" method: 'POST' headers: _.extend({ 'Content-Type': 'application/zip' From 1737df6ff973c6caeb1cc251873ad82eeab19c6d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 18:03:18 -0800 Subject: [PATCH 38/39] Use .zip extension --- script/upload-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/upload-release b/script/upload-release index 36bc1e974..2c53751c3 100755 --- a/script/upload-release +++ b/script/upload-release @@ -10,7 +10,7 @@ fs = require 'fs-plus' GitHub = require 'github-releases' request = require 'request' -assetName = 'atom-mac-zip' +assetName = 'atom-mac.zip' assetPath = "/tmp/atom-build/#{assetName}" commitSha = process.env.JANKY_SHA1 token = process.env.ATOM_ACCESS_TOKEN From 68e7c209bd77dc6b4cb3b0f43edeb694cb419949 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Dec 2013 18:22:52 -0800 Subject: [PATCH 39/39] Update apm for ci changes --- vendor/apm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/apm b/vendor/apm index 007cf2643..82f647511 160000 --- a/vendor/apm +++ b/vendor/apm @@ -1 +1 @@ -Subproject commit 007cf2643366f4e4aa5e38083bc69da9dc363098 +Subproject commit 82f6475111553faa6f8f32b992010358064744ad