From 775c4b0f2f97c918a7d0c542a1a284220c6801de Mon Sep 17 00:00:00 2001 From: Alex Brausewetter Date: Tue, 18 Aug 2015 18:19:04 -0700 Subject: [PATCH 01/24] Install managed packages to ~/.c9/managed/plugins --- plugins/c9.ide.plugins/updater-npm.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/c9.ide.plugins/updater-npm.js b/plugins/c9.ide.plugins/updater-npm.js index 670695a4..2f46dd23 100644 --- a/plugins/c9.ide.plugins/updater-npm.js +++ b/plugins/c9.ide.plugins/updater-npm.js @@ -23,7 +23,6 @@ define(function(require, exports, module) { /***** Initialization *****/ var npmBin = options.npmBin || "/home/ubuntu/.nvm/nvm-exec"; - var pluginsPath = options.pluginsPath || "/home/ubuntu/.c9/plugins"; var managedPath = options.managedPath || "/home/ubuntu/.c9/managed"; var managedNpmPath = [managedPath, "npm"].join("/"); @@ -45,7 +44,7 @@ define(function(require, exports, module) { // TODO: DRY error handling - fsMkdirs([ managedPath, managedEtcPath, managedModulesPath, pluginsPath ], function(err) { + fsMkdirs([ managedPath, managedEtcPath, managedModulesPath, managedPluginsPath ], function(err) { if (err) { console.error("[plugin.updater.npm]", err); showErrorDialog(err); @@ -269,16 +268,16 @@ define(function(require, exports, module) { } /** - * Removes symbolic links from the `~/.c9/plugins` folder. + * Removes symbolic links from the `~/.c9/managed/plugins` folder. */ function fsRmLinks(callback) { - debug("find", { args: [ pluginsPath, "-maxdepth", "1", "-type", "l", "-exec", "rm", "{}", ";" ] }); + debug("find", { args: [ managedPluginsPath, "-maxdepth", "1", "-type", "l", "-exec", "rm", "{}", ";" ] }); // find . -maxdepth 1 -type l -exec rm {} \; proc.execFile("find", { args: [ - pluginsPath, + managedPluginsPath, "-maxdepth", "1", "-type", "l", "-exec", "rm", "{}", ";" @@ -296,13 +295,13 @@ define(function(require, exports, module) { * @param {String} pkgPath Path to the source package folder */ function fsLink(pkgPath, callback) { - debug("ls", { args: [ "-s", "-f", pkgPath, [ pluginsPath, "." ].join("/") ]}); + debug("ls", { args: [ "-s", "-f", pkgPath, [ managedPluginsPath, "." ].join("/") ]}); proc.execFile("ln", { args: [ "-s", "-f", pkgPath, - [ pluginsPath, "." ].join("/"), + [ managedPluginsPath, "." ].join("/"), ], }, function(err, stdout, stderr) { debug([err, stdout, stderr]); @@ -324,7 +323,7 @@ define(function(require, exports, module) { args: [ "-rf", basename, ], - cwd: pluginsPath, + cwd: managedPluginsPath, }, function(err, stdout, stderr) { debug([err, stdout, stderr]); From 21d26d94fde2e7fa4ccb9a1e101b2aef4e3d6ceb Mon Sep 17 00:00:00 2001 From: Alex Brausewetter Date: Tue, 18 Aug 2015 18:20:05 -0700 Subject: [PATCH 02/24] Refactor plugin loader to scan multiple folders Look into ~/.c9/{,managed,dev}/plugins and load ordered by priority --- plugins/c9.ide.plugins/loader.js | 345 +++++++++++++++++++++++-------- 1 file changed, 256 insertions(+), 89 deletions(-) diff --git a/plugins/c9.ide.plugins/loader.js b/plugins/c9.ide.plugins/loader.js index 6f51dbef..e891c837 100644 --- a/plugins/c9.ide.plugins/loader.js +++ b/plugins/c9.ide.plugins/loader.js @@ -16,6 +16,9 @@ define(function(require, exports, module) { var dirname = require("path").dirname; var join = require("path").join; + var async = require("async"); + var _ = require("lodash"); + var architect; /***** Initialization *****/ @@ -23,18 +26,15 @@ define(function(require, exports, module) { var plugin = new Plugin("Ajax.org", main.consumes); // var emit = plugin.getEmitter(); - var ENABLED = c9.location.indexOf("plugins=0") == -1; - var HASSDK = c9.location.indexOf("sdk=0") === -1; + var ENABLED = (c9.location.indexOf("plugins=0") === -1); + var HASSDK = (c9.location.indexOf("sdk=0") === -1); var plugins = options.plugins; var loadFromDisk = options.loadFromDisk + var names = []; - var loaded = false; function load() { - if (loaded) return false; - loaded = true; - if (!HASSDK) return; if (!ENABLED) return; @@ -42,96 +42,263 @@ define(function(require, exports, module) { } /***** Methods *****/ - - function loadPlugins(config){ + + /** + * List all packages on disk by scanning `~/.c9` and resolve the + * detected packages by order of override priority: + * + * - Developer plugins in `~/.c9/dev/plugins` have the highest + * priority to allow local development of new functionality without + * the risk of having your changes overwritten by any update + * mechanism. + * + * - Managed plugins in `~/.c9/managed/plugins` are pre-installed and + * updated by the Cloud9 system and have a higher priority that + * possibly outdated or unknown packages installed by the user. + * + * - User-installed in `~/.c9/plugins` plugins installed plugins are + * the default priority have the lowest priority. + * + * @param {Function} callback + * @param {Error=} callback.err + */ + function listAllPackages(callback) { + async.parallel({ + "plugins" : async.apply(listPackages, "~/.c9/plugins"), + "managed" : async.apply(listPackages, "~/.c9/managed/plugins"), + "dev" : async.apply(listPackages, "~/.c9/dev/plugins"), + }, function(err, packages) { + if (err && err.code === "EDISCONNECT") { + c9.once("connect", function() { + loadPluginsFromDisk(callback); + }); + return; + } + + if (err) return callback(err); + + var resolved = {}; + + // default: ~/.c9/plugins + packages.plugins.forEach(function(config) { + if (!config) return; + resolved[config.name] = config; + }); + + // high: ~/.c9/managed/plugins + packages.managed.forEach(function(config) { + if (!config) return; + resolved[config.name] = config; + }); + + // higher: ~/.c9/dev/plugins + packages.dev.forEach(function(config) { + if (!config) return; + resolved[config.name] = config; + }); + + callback(null, _.values(resolved)); + }); + } + + /** + * List packages in the given directory + * + * @param {String} dirPath Path to the directory to scan + * + * @param {Function} callback + * @param {Error=} callback.err + * @param {Object[]} callback.packages + */ + function listPackages(dirPath, callback) { + fs.readdir(dirPath, function(err, stats) { + if (err && err.code === "ENOENT") + return callback(null, []); + + if (err) + return callback(err); + + async.map(stats, function(stat, done) { + // check for folder or symlink with folder target + + if (stat.mime !== "inode/directory" + && (stat.mime === "inode/symlink" && stat.linkStat.mime !== "inode/directory") + ) { + return done(); + } + + // check folers not prefixed with [._] + + if (stat.name[0] === "." || stat.name[0] === "_") { + return done(); + } + + // check and load package.json + + var config = { + name: stat.name, + path: absolutePath([ dirPath, stat.name ].join("/")), + packagePath: [ "plugins", stat.name ].join("/"), + staticPrefix: stat.href.replace(/\/$/, ""), + }; + + loadPackageMetadata(config, function(err, metadata) { + if (err) return done(err); + config.metadata = metadata; + done(null, config); + }); + }, callback); + }); + } + + /** + * Load a the `package.json` metadata of the given package + * + * @param {Object} config The package configuration + * + * @param {Function} callback + * @param {Error=} callback.err + * @param {Object} callback.metadata + */ + function loadPackageMetadata(config, callback) { + var paths = {}; + paths[config.packagePath] = config.staticPrefix; + + requirejs.config({ paths: paths }); + requirejs.undef([config.packagePath, "package.json"].join("/")); + + require([("text!" + [config.packagePath, "package.json" ].join("/"))], function(metadataStr) { + var metadata; + + try { + metadata = JSON.parse(metadataStr); + } catch (e) { + return callback(e); + } + + callback(null, metadata); + }, function(err) { + callback(err); + }); + } + + /** + * Load a the `__installed__.js` definition of the given package + * + * @param {Object} config The package configuration + * + * @param {Function} callback + * @param {Error=} callback.err + * @param {Array} callback.installed + */ + function loadPackageInstalledJs(config, callback) { + var paths = {}; + paths[config.packagePath] = config.staticPrefix; + + requirejs.config({ paths: paths }); + requirejs.undef([config.packagePath, "__installed__.js"].join("/")); + + require([[config.packagePath, "__installed__" ].join("/")], function(installed) { + callback(null, installed); + }, function(err) { + callback(err); + }); + } + + /** + * Load the given package by checking its `__installed__.js` file or + * its `package.json#plugins`, then call `Architect#loadAdditionalPlugins()`. + * + * @param {Object} config The package configuration + * + * @param {Function} callback + * @param {Error=} callback.err + */ + function loadPackage(config, callback) { + loadPackageInstalledJs(config, function(err, installed) { + var plugins; + + if (err) { + plugins = _.map(config.metadata.plugins, function(value, key) { + return [ "plugins", config.name, key ].join("/"); + }); + } else { + plugins = installed; + } + + var architectConfig = installed.map(function(plugin) { + if (typeof plugin == "string") + plugin = { packagePath: plugin }; + + plugin.staticPrefix = config.staticPrefix; + + plugin.packageName = config.name; + plugin.packageMetadata = config.metadata; + plugin.packageDir = config.path; + + plugin.apiKey = null; // FIXME + + return plugin; + }); + + architect.loadAdditionalPlugins(architectConfig, function(err) { + callback(err); + }); + }); + } + + function loadPlugins(loaderConfig){ if (!vfs.connected) { - vfs.once("connect", loadPlugins.bind(this, config)); + vfs.once("connect", loadPlugins.bind(this, loaderConfig)); return; } - - var wait = 0; - var host = vfs.baseUrl + "/"; - var base = join(String(c9.projectId), "plugins", auth.accessToken); - var install = []; - - if (loadFromDisk) { - fs.readdir("~/.c9/plugins", function handle(err, files){ - if (err) { - if (err.code == "EDISCONNECT") { - c9.once("connect", function(){ - fs.readdir("~/.c9/plugins", handle); - }); + + listAllPackages(function(err, resolved) { + if (!loadFromDisk) { + // filter packages by config instead of loading + // everything from disk + + resolved = resolved.filter(function(config) { + var extraConfig = _.find(loaderConfig, { packagePath: config.packagePath }); + + if (!extraConfig) { + console.warn("[c9.ide.loader] Not loading package " + + config.path + " because it is not installed, " + + "according to the database"); + + return false; } - console.error(err); - return; - } - - files.forEach(function(f) { - if (!/^[_.]/.test(f.name)) { - fs.exists("~/.c9/plugins/" + f.name + "/__installed__.js", function(exists) { - if (exists) loadOne({packageName: f.name}, false); - }); - } - }); - }); - } - - var packages = {}; - config.forEach(function(options){ - var name = options.packagePath.replace(/^plugins\/([^\/]*?)\/.*$/, "$1"); - if (!packages[name]) { - packages[name] = { - packageName: name, - apiKey: options.apiKey - }; - } - names.push(name); - }); - - Object.keys(packages).forEach(function(key) { - loadOne(packages[key], false); - }); - - function loadOne(packageConfig, forceInstall) { - wait++; - - var packageName = packageConfig.packageName; - var root = "plugins/" + packageName; - var paths = {}; - paths[root] = host + base + "/" + packageName; - requirejs.config({paths: paths}); - requirejs.undef(root + "/__installed__.js"); - require([root + "/__installed__"], function(plugins) { - var config = plugins.map(function(p) { - if (typeof p == "string") - p = { packagePath: p }; - p.staticPrefix = paths[root]; - return p; - }); - - architect.loadAdditionalPlugins(config, function(err){ - if (err) console.error(err); - }); - - done(); - }, function(err) { - if (err && forceInstall) { - install.push(packageName); - } - done(); - }); - } - - function done(){ - if (!--wait) return; - if (install.length) { - installer.installPlugins(install, function(err){ - if (err) console.error(err); + + config.apiKey = extraConfig.apiKey; + + return true; }); } - } + + loaderConfig.forEach(function(extraConfig) { + // warn about missing packages which are supposed to be installed + + if (!_.find(resolved, { packagePath: extraConfig.packagePath })) { + console.warn("[c9.ide.loader] Package " + + extraConfig.packagePath + " should be installed, according " + + "to the database, but was not found on the filesystem. " + + "Try reinstalling it."); + } + }); + + names = _.pluck(resolved, "name"); + + async.each(resolved, loadPackage, function(err) { + if (err) console.error(err); + }); + }); } - + + function absolutePath(fromPath) { + var toPath = fromPath.replace(/^~/, c9.home); + return toPath; + } + /***** Lifecycle *****/ plugin.on("load", function() { From 5ef6b758681164a0634a34a1bff361fa5cfe5f98 Mon Sep 17 00:00:00 2001 From: c9bot Date: Fri, 21 Aug 2015 16:56:04 +0200 Subject: [PATCH 03/24] c9-auto-bump 3.0.2446 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f77f0443..ae5b5766 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2445", + "version": "3.0.2446", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 7af5ae765d0535e849ff89abcfe30eb2cba6818b Mon Sep 17 00:00:00 2001 From: c9bot Date: Fri, 21 Aug 2015 22:24:35 +0200 Subject: [PATCH 04/24] c9-auto-bump 3.0.2447 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae5b5766..c3e1c738 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2446", + "version": "3.0.2447", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 0a8ce16654868e210c74afb3cccf7ebef845ac4f Mon Sep 17 00:00:00 2001 From: c9bot Date: Sat, 22 Aug 2015 09:56:34 +0200 Subject: [PATCH 05/24] c9-auto-bump 3.0.2448 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e70c0dd..6ff6484f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2447", + "version": "3.0.2448", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 4c638ee2094b725026d4a90ff213caba6b8db04a Mon Sep 17 00:00:00 2001 From: c9bot Date: Sat, 22 Aug 2015 13:02:05 +0200 Subject: [PATCH 06/24] c9-auto-bump 3.0.2449 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ff6484f..5f383db6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2448", + "version": "3.0.2449", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 9fc8e12df2de175b81de56adc7d9da792e17d312 Mon Sep 17 00:00:00 2001 From: c9bot Date: Sat, 22 Aug 2015 15:29:50 +0200 Subject: [PATCH 07/24] c9-auto-bump 3.0.2450 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f383db6..77ddbadc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2449", + "version": "3.0.2450", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 22f6fa18095c8761814b964d68a54996428c22cb Mon Sep 17 00:00:00 2001 From: c9bot Date: Sun, 23 Aug 2015 10:39:57 +0200 Subject: [PATCH 08/24] c9-auto-bump 3.0.2451 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 77ddbadc..f4eed3ae 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2450", + "version": "3.0.2451", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 450472bfb88d96e87ab1d6c6b19992f4cd824097 Mon Sep 17 00:00:00 2001 From: c9bot Date: Sun, 23 Aug 2015 21:14:38 +0200 Subject: [PATCH 09/24] c9-auto-bump 3.0.2452 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f4eed3ae..f96e26a1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2451", + "version": "3.0.2452", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 4bf2390376c31f7b72dfb200592ecdd8082f4dab Mon Sep 17 00:00:00 2001 From: nightwing Date: Mon, 24 Aug 2015 04:01:02 +0400 Subject: [PATCH 10/24] analyze must allways call the callback --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f96e26a1..0012085c 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "c9.ide.language.javascript": "#8479d0a9c1", "c9.ide.language.javascript.immediate": "#0535804ada", "c9.ide.language.javascript.eslint": "#08e0af061f", - "c9.ide.language.javascript.tern": "#34d635cb93", + "c9.ide.language.javascript.tern": "#da9db9ea65", "c9.ide.language.javascript.infer": "#4c9a4282ff", "c9.ide.language.jsonalyzer": "#0717d1510f", "c9.ide.collab": "#b49eda3791", From 60c1a663f23b3262b07012db60340f0186a99760 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 10:38:23 +0200 Subject: [PATCH 11/24] c9-auto-bump 3.0.2453 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0012085c..363663b8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2452", + "version": "3.0.2453", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From d819a51a5641b48684fda0bf5ab832a4ff615a47 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 11:47:47 +0200 Subject: [PATCH 12/24] c9-auto-bump 3.0.2454 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 363663b8..8c2debed 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2453", + "version": "3.0.2454", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 0dbe73c82ce9da4662b07857ed1c2f5dc80385b3 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 14:14:41 +0200 Subject: [PATCH 13/24] c9-auto-bump 3.0.2455 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8c2debed..5b2cc2e7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2454", + "version": "3.0.2455", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 96484c80038052f4c09a0b3f75826b93a3718df2 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 14:28:31 +0200 Subject: [PATCH 14/24] c9-auto-bump 3.0.2456 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b2cc2e7..430bdc06 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2455", + "version": "3.0.2456", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 2a9bd9b2610c2341bff4f205d1f54b734545c454 Mon Sep 17 00:00:00 2001 From: Mutahhir Date: Mon, 24 Aug 2015 14:08:32 +0000 Subject: [PATCH 15/24] Fixes +8869 Adding bash to RoR runner command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 430bdc06..5688aa07 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "c9.ide.recentfiles": "#7c099abf40", "c9.ide.remote": "#301d2ab519", "c9.ide.processlist": "#bc11818bb5", - "c9.ide.run": "#acc8f1aa81", + "c9.ide.run": "#dc74ede441", "c9.ide.run.build": "#ad45874c88", "c9.ide.run.debug.xdebug": "#3b1520f83d", "c9.ide.save": "#cc613b6ead", From 32cc7539e224860372f28cd402f0352ebe628fff Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 16:20:18 +0200 Subject: [PATCH 16/24] c9-auto-bump 3.0.2457 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5688aa07..a234497b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2456", + "version": "3.0.2457", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From b850cfa79b2621bc64f58b7f32bdcd65557caca6 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 16:24:27 +0200 Subject: [PATCH 17/24] c9-auto-bump 3.0.2458 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a234497b..f5f3f796 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2457", + "version": "3.0.2458", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From e8111bf544dd0e55eed135c0dd1e2b4c25777652 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 24 Aug 2015 17:35:17 +0200 Subject: [PATCH 18/24] c9-auto-bump 3.0.2459 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f5f3f796..5cfbad96 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2458", + "version": "3.0.2459", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 8e459dc1d2eb9a041ad6f2deb60360302a776efc Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 10:09:42 +0200 Subject: [PATCH 19/24] c9-auto-bump 3.0.2460 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5cfbad96..37d1d886 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2459", + "version": "3.0.2460", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 89abc3042c0300b587ef24426032e00e3a00152e Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 11:07:45 +0200 Subject: [PATCH 20/24] c9-auto-bump 3.0.2461 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 37d1d886..1d4bca69 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2460", + "version": "3.0.2461", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 61f4731aa9569942a5c8708edde09bf35c53a0a5 Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 11:08:08 +0200 Subject: [PATCH 21/24] c9-auto-bump 3.0.2462 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1d4bca69..d30c8a6f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2461", + "version": "3.0.2462", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 80b533381e4010a611bc6f9e5a03a951bcd0c5ab Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 13:17:27 +0200 Subject: [PATCH 22/24] c9-auto-bump 3.0.2463 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d30c8a6f..e5422888 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2462", + "version": "3.0.2463", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From d950d27781f3d2462636a42900df869bca0a33d9 Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 13:45:08 +0200 Subject: [PATCH 23/24] c9-auto-bump 3.0.2464 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e5422888..01a7d6d9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2463", + "version": "3.0.2464", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 17d8be4f5cdb7591a342e87a117bf9d6691e1c87 Mon Sep 17 00:00:00 2001 From: c9bot Date: Tue, 25 Aug 2015 14:06:38 +0200 Subject: [PATCH 24/24] c9-auto-bump 3.0.2465 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 01a7d6d9..c19a1fee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2464", + "version": "3.0.2465", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9",