diff --git "a/database/tawos/tfidf/DAEMON_tfidf-se.csv" "b/database/tawos/tfidf/DAEMON_tfidf-se.csv" new file mode 100644--- /dev/null +++ "b/database/tawos/tfidf/DAEMON_tfidf-se.csv" @@ -0,0 +1,206 @@ +"issuekey","created","storypoint","context","codesnippet","t_New.Feature","t_Story","t_Improvement","t_Bug","c_appcd.core","c_appcd.plugin.amplify","c_jdklib","c_appcd","c_ioslib","c_node.appc","c_androidlib","c_Tooling","c_appcd.response","c_General","c_appcd.http","c_appcd.nodejs","c_appcd.dispatcher","c_appcd.config","c_appcd.config.service","c_appcd.subprocess","c_appcd.agent","c_appcd.fswatcher","c_appcd.request","c_appcd.logger","c_appcd.telemetry","c_appcd.plugin.system.info","c_appcd.detect","c_appcd.plugin","c_appcd.default.plugins","c_appcd.plugin.windows","c_appcd.plugin.genymotion","c_appcd.plugin.android","c_appcd.plugin.ios","c_appcd.gulp","c_windowslib","c_appcd.plugin.jdk","c_appcd.winreg","c_appcd.plugin.titanium","c_appcd.util","c_winreglib","c_docs","c_Titanium.CLI","c_Appc.CLI" +"DAEMON-5","02/03/2016 23:42:56",13,"appcd: JSON response filtering ""All the ability to filter JSON responses based on criteria from a dispatcher path. For example, requests to `/appcd/status/system` would return only the system information: """," { """"platform"""": """"darwin"""", """"arch"""": """"x64"""", """"cpus"""": 8, """"hostname"""": """"yojimbo.local"""", """"loadavg"""": [ 1.609375, 1.78076171875, 1.80810546875 ], """"memory"""": { """"usage"""": { """"rss"""": 41881600, """"heapTotal"""": 22978592, """"heapUsed"""": 17236152 }, """"free"""": 97452032, """"total"""": 17179869184 } } ",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-1","02/03/2016 23:55:46",13,"appcd: Integrate hook system into appc daemon ""The appc daemon needs to provide a evented hook system for plugins to use services to use and expose functionality to other services. The hook system is based on the concepts of the hook system in the Titanium CLI. The main differences are the new hooks system will be based on ES6 promises. The event names should follow the convention of """"module:foo.bar"""".""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-4","02/04/2016 00:04:55",13,"appcd: Add analytics facilities ""The appc daemon needs to provide a mechanism for services and the daemon itself to generate analytics events. These events are then sent to the Appcelerator cloud so that the products can be improved. Analytics payloads must be anonymous. Analytics payload will include: * Machine ID * Session ID * Timestamp * Operating system * CPU architecture (32/64-bit) * Number of CPUs * Total system memory * Installed appcd plugin info * appcd configuration * Event name * Event type (action, error, etc) * Event metadata All events must be persisted to separate files disk prior to sending to the cloud. Only one process can send an event at any given time. The endpoint will be https://api.appcelerator.net/p/v2/partner-track. As a reference, here's Appc CLI's analytics library: https://github.com/appcelerator/appc-platform-sdk/blob/master/lib/analytics.js. Appc Daemon's guid: * Production: ea327577-858f-4d31-905e-fa670f50ef48 * Preprod: 14c84daf-b01e-486c-96d3-b8f66da44481""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-2","02/04/2016 00:38:42",13,"appcd: Add support for distributable Node executable ""The appc daemon needs the ability to lock down the Node.js version so that native modules can be pre-compiled. It currently has a placeholder for running a specific Node executable. The Node executable will be downloaded from the registry server. Both 32 and 64-bit Node executables will be available. The required Node.js version will be the latest LTS version, currently 4.4.3. This will most likely change to 6.2.0 LTS October 2016.""","",1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-18","02/04/2016 00:45:27",13,"@appcd/plugin-amplify: AMPLIFY platform daemon plugin ""The AMPLIFY Platform appcd plugin (@appcd/plugin-amplify) is responsible for authentication. It contains services authenticating against Axway ID and retrieving, refreshing, and invalidating access tokens. This plugin eventually will also contain the entitlements service.""","",0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-28","02/04/2016 03:36:23",13,"@appcd/plugin-amplify: Authentication service ""The AMPLIFY platform appcd plugin will use the amplify-platform-sdk to perform authentication. This service will also automatically refresh access tokens.""","",1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-10","02/04/2016 07:42:44",5,"jdklib v2 ""jdklib is responsible for detecting the installed Java development environment. jdklib needs to expose the new detect friendly interface, namely separating the search paths from the actual detection code.""","",1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-11","02/04/2016 08:31:14",8,"appcd: Support for --config and --config-file options ""It would be useful if the appcd cli supported a {{\-\-config}} and {{\-\-config\-file}} options for the """"start"""" and """"restart"""" commands.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-13","05/05/2016 08:29:39",3,"appcd: Fix source/user agent support ""For analytics, the daemon records the client's """"user agent"""". This feature is currently implemented, but it's named """"userAgent"""" which was determined to be misleading. We need a better term to describe this feature and a way to describe a client type, description, and version, possibly as a string instead of an object. NPM has a user agent string that looks like {{npm/2.15.1 node/v4.4.3 darwin x64}}.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-3","05/05/2016 08:59:36",8,"node-ios-device: Re-run node-pre-gyp if binding doesn't exist ""node-ios-device v0.9.0 uses node-pre-gyp. When it is npm installed, node-pre-gyp downloads the pre-compiled binary. However, if the system Node.js version is changed, then node-pre-gyp needs to be re-run. In order for this to work, node-pre-gyp must be executed synchronously.""","",0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-6","05/07/2016 07:27:59",13,"appcd: Filesystem watcher ""androidlib, ioslib, jdklib, and windowslib need a filesystem monitoring library that can be notified when a specific path changes. Node has a built-in {{fs.watch()}} function which works fine on Linux and Windows, but doesn't work well on OS X where it doesn't report the correct file path. This can be fixed by using the {{fsevents}} module. The {{chokidar}} module comes close to solving this need, but I discovered two blocking bugs: one with watching paths that do not exist and one with nested paths. It also currently has 39 open issues, some of which are a little scary sounding. Additionally, {{chokidar}} uses {{readdirp}} which apparently has performance issues due to all of the file stating.""","",1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-32","08/30/2016 01:53:30",1,"Windows: jdklib v2 - If you move your JDK while running jdklib.watch(), then ""TypeError: Path must be a string"" error is returned ""*Details:* On Windows, if you move your JDK while running jdklib.watch(), then {{TypeError: Path must be a string}} error is returned. *Notes:* This is not reproducible with JDK on Mac. *Steps to reproduce:* # Make sure you are using Node 4.X.X on Windows # Clone and run {{npm install}} on https://github.com/appcelerator/jdklib # Symlink to the above built jdklib v2 # Run this Node script: # Find your JDK and move it *Actual:* {{TypeError: Path must be a string}} error is returned: *Expected:* No errors should be returned while watching the JDK."""," 'use strict'; const jdklib = require('jdklib'); jdklib .watch() .on('results', results => { console.log(JSON.stringify(results, null, 4)); }); TypeError: Path must be a string. Received null at assertPath (path.js:8:11) at Object.win32.join (path.js:221:5) at Watcher.onChange (C:\Users\qe\Desktop\something\node_modules\jdklib\node_modules\node-appc\dist\fs.js:270:19) at emitTwo (events.js:87:13) at FSWatcher.emit (events.js:172:7) at FSEvent.FSWatcher._handle.onchange (fs.js:1221:12) ",0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-33","08/31/2016 00:47:08",1,"Windows: androidlib v2 - If you call androidlib.detect(), then an empty array is returned for the results ""*Details:* If you make a androidlib.detect(), then an empty array is returned for the results. *Notes:* * This does not appear on Mac. * ANDROID_SDK environment variable is set. * Android SDK tools and platform-tools are set in the PATH. *Steps to reproduce:* # Make sure you are using Node 4.X.X # Clone and run {{npm install}} on https://github.com/appcelerator/androidlib/tree/v2; make sure it's v2 branch # Symlink to the above built androidlib v2 # Run this Node script: *Actual:* An empty array appears for SDK. *Expected:* There should not be an empty array for SDK."""," 'use strict'; // NOTE: currently, symlinked node_modules/androidlib folder to a built local copy of https://github.com/appcelerator/androidlib/tree/v2 const androidlib = require('androidlib').androidlib; androidlib .detect() .then(results => { console.log(JSON.stringify(results, null, 4)); }) .catch('error', err => { console.log(err.stack); }); C:\Users\qe\Desktop\libautomator>node test.js { """"home"""": """"C:\\Users\\qe\\.android\\avd"""", """"sdk"""": [], """"ndk"""": [] } ",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-29","10/21/2016 23:38:00",5,"appcd status: Add support for --json option ""The {{appcd status}} command needs to support outputting the status in a human readable """"report"""" format as well as JSON format. Currently only the JSON output is supported.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-30","10/21/2016 23:47:16",5,"appcd status: Display the correct status if the daemon is not running ""If the Appc Daemon is not running and you run {{appcd status}}, it outputs: It should output a more readable error for both """"report"""" and """"json"""" output modes."""," Error: connect ECONNREFUSED 127.0.0.1:1732 ",0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-31","10/25/2016 22:48:41",5,"Allow for multiple requests over the same WebSocket connection ""Currently the Appc Daemon only allows a single request over a single WebSocket connection. This encourages clients to establish multiple simultaneous connections. This is technically unnecessary. The Appc Daemon should not close the socket when a request ends, but rather send a """"request closed"""" message and let the client determine if it should close the connection. Be sure to update the wiki page under the """"Node.js Client"""" section: https://wiki.appcelerator.org/display/Daemon/Appcd+Client.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-35","10/31/2016 17:23:53",5,"appcd-core: Replace ""pidusage"" with ""process.cpuUsage()"" ""The daemon uses a NPM module called """"pidusage"""" to monitor the CPU usage, but this is no longer necessary since Node 6 includes a built-in {{process.cpuUsage()}} function. https://nodejs.org/dist/latest-v6.x/docs/api/process.html#process_process_cpuusage_previousvalue Aside from removing a dependency, it's going to be more efficient to use Node's built-in {{process.cpuUsage()}} because """"pidusage"""" relies on file I/O and spawning {{ps}} and {{wmic}}.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-36","12/05/2016 20:03:04",13,"node-appc: fs watch doesn't properly handle symlinks ""The filesystem watch function doesn't properly handle symlinks. It doesn't check if a file/directory is a symlink. The problem is when there's a symlinked directory to a parent directory or a directory that is being watched. The fs watcher needs to detect a symlinked directory, then watch the real path, not the symlink. We still need to track the symlink directory, but it needs to make sure that changes to the real path are propagated to the watcher of the original path.""","",0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-39","02/14/2017 04:04:30",13,"appcd: Create 'package' task for top-level gulp file ""The appcd daemon is made up of the bootstrap, core, a bunch of micro packages, and a bunch of plugins. While each of these can be published individually to NPM, it might be better to generate a pseudo """"appcd"""" package that combines all of the appcd-* {{package.json}} files together. This would save hundreds of MB of hard drive space. Furthermore, we may want to take it a step further and declare the bootstrap, core, micro packages, and plugins as """"bundledDependencies"""" and include them in the package. This would allow us to only publish """"appcd"""" to npm instead of dozens of modules every release. This would also make locking down versions much easier.""","",1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-40","02/17/2017 02:02:57",5,"appcd-nodejs: Need to download signed node executable on macOS ""Downloading the node executable in the tarball is not signed and shows a dialog if the firewall is enabled, which is going to be often. Instead, we need to download the pkg installer and manually extract the node executable.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-41","02/17/2017 05:07:43",8,"appcd-nodejs: Add unit tests ""Need to create unit tests for appcd-nodejs.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-42","02/17/2017 05:09:22",2,"appcd-http: Add default served root ""appcd-http needs a default served root just in case one is not specified when a web server is started.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-43","02/17/2017 05:20:13",5,"Create CI script ""The Appc Daemon needs a Jenkinsfile script that: * Installs Node 7.6.0 or newer * Installs NPM * Installs Yarn * Clone appc-daemon repo * Runs: {{yarn}} * Runs: {{gulp check}} * Runs: {{gulp coverage}} * Runs: {{gulp package}} * Generates report from """"check"""" output, """"coverage"""" output, and package output and also includes build information * Stores the report in some cloud-based data store See https://github.com/appcelerator/client-generator/blob/master/Jenkinsfile for an example. Also see https://github.com/appcelerator/jenkins_dsl/blob/master/jobs/appc_cli.groovy. -To build the bundled distribution which includes all NPM dependencies, we will need to kick off a Jenkins job on multiple slave Jenkins machines to bundle platform specific bundles. Each Jenkins slave would run {{gulp package-bundle}} instead of {{gulp-package}}, then upload the resulting tarball to Axway's Artifactory server (and possibly also S3 as a backup). We need 5 Jenkins slaves: OS X (64-bit), 64-bit Windows, 32-bit Windows, 64-bit Linux, and 32-bit Linux.- The platform specific bundling has been moved to DAEMON-77. The report generation has been moved to DAEMON-78.""","",1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-44","02/17/2017 05:26:18",8,"appcd-http: Port implementation from prototype ""Add the webserver and router from prototype to the appcd-http library.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-45","02/17/2017 05:31:28",8,"appcd-http: Add unit tests ""The appcd-http package has some unit tests, but code coverage is lacking.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-46","02/17/2017 05:35:25",2,"appcd-*: Replace use of 'temp' module with 'tmp' ""In an attempt to standardize on a temp directory/file library, ensure we are using the tmp (https://www.npmjs.com/package/tmp) module.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-47","02/17/2017 05:44:43",2,"Remove dependency on 'optional-dev-dependency' ""As a way to deal with dependency management, appcd uses """"optional-dev-dependency"""", specifically when the plan was to publish each micro-package as a separate NPM module. However, with the introduction of the {{gulp package}} task and the use of yarn links, there's no need for the """"optional-dev-dependency"""" module anymore.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-50","02/17/2017 23:37:05",5,"appcd-response: Add i18n system ""The Appc Daemon currently does not have any sort of i18n facilities unlike the Titanium CLI. This should be solvable using a logger middleware and a gulp task to generate the i18n files.""","",1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-51","02/22/2017 00:33:41",5,"appcd-dispatcher: Add Koa middleware function ""Instead of having the daemon patch web requests into the dispatcher, just have the dispatcher return a Koa middleware that allows appcd-dispatcher to just do the routing.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-52","02/22/2017 00:37:23",3,"Start/restart daemon when watching in dev mode ""To speed up development, it would be nice if the gulp watch task would restart the daemon when it detects a file has changed and has rebuilt the packages.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-53","02/22/2017 00:51:14",2,"Root coverage task should not stop on failures ""When running {{gulp coverage}} in the root, we should run each package's coverage tests and continue even if one or more fail, then at the very end do the {{process.exit(1)}}.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-55","02/23/2017 19:43:54",8,"appcd: Add Retire.js to the 'gulp check' task ""The {{gulp check}} currently only checks NSP for security issues. It is also desired to use Retire.js (https://retirejs.github.io/retire.js/). We need to add Retire.js to the {{gulp check}} task and update the JSON results. It is preferred to use Retire.js programmatically instead of subprocessing it, though I'm not sure if that's feasible. Also note that Retire.js and NSP overlap and it would be ideal to unify the results and eliminate duplicates.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-57","02/27/2017 17:05:22",5,"appcd: Add support to config handler to change settings at runtime ""The config handler currently only returns the config. The handler should also support a """"data"""" payload to change the daemon's config at runtime. Note that only a single config setting can be changed per call. Use the path to determine what is being changed. HTTP methods can be used to determine how the key should be changed. The handler returns the new value. Use the status code to determine if successful. The appcd CLI is responsible for persisting the settings to the user's config file {{~/.appcelerator/appcd/config.json}}. The daemon does not modify the config file. The appcd CLI will validate the config change, then persist it to disk. After that, it will check if the daemon is running and attempt to change it at runtime. If the daemon is not running or it is running and the setting is changeable during runtime, then everything succeeds. If the daemon is running and the change is rejected, then the CLI will alert the user that the daemon must be restarted for the setting to take effect. If the CLI as a TTY, it can prompt to restart the daemon. Note that the CLI should also support a {{\-\-no\-prompt}} flag and a {{\-\-auto\-restart}} flag. h4. Examples: h5. Getting a value: h5. Setting a value: h5. Deleting a value: h5. Array examples: Delete will remove the entire value. """," appcd exec /appcd/config/analytics/enabled appcd exec /appcd/config/analytics/enabled '{ """"action"""": """"get"""" }' appcd exec /appcd/config '{ """"action"""": """"get"""", """"key"""": """"/analytics/enabled"""" }' appcd exec /appcd/config '{ """"action"""": """"get"""", """"key"""": """"analytics.enabled"""" }' appcd exec /appcd/config '{ """"action"""": """"set"""", """"key"""": """"analytics.enabled"""", """"value"""": true }' appcd exec /appcd/config/analytics/enabled '{ """"action"""": """"set"""", """"value"""": true }' appcd exec /appcd/config '{ """"action"""": """"delete"""", """"key"""": """"analytics.enabled"""" }' appcd exec /appcd/config/analytics/enabled '{ """"action"""": """"delete"""" }' appcd exec /appcd/config '{ """"action"""": """"set"""", """"key"""": """"foo"""", """"value"""": [""""bar"""", """"baz""""] }' appcd exec /appcd/config '{ """"action"""": """"delete"""", """"key"""": """"foo"""" }' ",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-58","02/27/2017 20:37:02",2,"appcd-core: Bump Node version to 8.x (when it is released) ""We want to bump the Node.js version of appcd-core's {{package.json}} to the latest v8.x LTS release once it ships in October 2017. In addition, the following dependencies must also be updated to take advantage of the new features of Node 8: * appcd-http: koa-bodyparser@4.0.0""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-60","03/10/2017 23:27:33",8,"appcd-dispatcher: Add ServiceDispatcher unit tests ""The {{ServiceDispatcher}} needs some unit test love.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-61","03/18/2017 00:55:06",13,"appcd-response: Create unified message and code library ""With error codes all over the place, we need a central place to store them. We also have a need for i18n. So, appcd-response can fulfill both requirements.""","",1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-62","03/18/2017 00:58:06",13,"appcd-response: Create base error object with messages integration ""There are several errors being thrown around inside the Appc Daemon and we need a unified error object that can pull i18n strings by code or by message.""","",1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-63","03/18/2017 01:02:16",3,"Move dependency-map.json into each package's package.json ""The {{dependency-map.json}} is a file that maps micro-package dependencies together so they can be linked with yarn. The problem is this file is becoming exceedingly large. It's time to break it up and put each package's dependencies in their {{package.json}}. Note that this is not the same as NPM dependencies, so we may need a {{appcd-depenedencies}} property in the {{package.json}}.""","",1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-64","03/18/2017 01:11:18",13,"appcd-http: Need a unified response object ""Right now HTTP responses require a status and body. However we will want to specify a response using a code that looks up the appropriate message and sets the actual response status and body. We also want this response object to handle the content type. This does not apply to requests for data. This only applies to requests like subscribing or registering something where we have a real message that can be internationalized.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-65","03/22/2017 18:47:00",3,"appcd-response: Improve i18n API ""appcd-response handles single strings only. It will probably be handy to create {{\_\_()}} and {{\_\_n()}} functions to expose the i18n engine for single strings and pluralized strings. Strings are stored in a {{messages//strings.json}} file where the key is the English text and the value is the translated text. We should just follow https://github.com/mashpie/i18n-node and allow the value to be an array where the first element is the singular string and the second element is the plural string.""","",0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-67","03/23/2017 06:21:36",5,"appcd: Logcat crashes daemon ""Running {{appcd logcat}} causes the daemon to have a bad day.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-69","03/29/2017 20:25:05",5,"appcd: Implement subscription requests from appcd CLI ""{{appcd exec}} currently only supports dispatching """"call"""" requests. It does not support """"subscribe"""" requests. {{appcd exec}} needs a {{\-\-subscribe}} flag. When the {{\-\-subscribe}} flag is set, it will pass a """"type"""" of """"subscribe"""" with the request, then the {{appcd exec}} command will need to properly not exit until the connection is closed or the {{fin}} event is emitted.""","",1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-70","04/10/2017 20:42:32",2,"appcd-core: Drop priviledges and set uid/gid if root ""In Node, you can only change the user id if Node is launched as root. If the user launching the daemon is root, it would be essential that root privileges be dropped as soon as possible during the daemon initialization. To check if the daemon is being run as root, check if {{process.getuid() === 0}}. If the uid is zero, then get the uid/gid from in the config and call {{process.setuid()}} and/or {{process.setgid()}}. If there is no uid/gid in the config or the uid/gid is invalid, then the daemon should fatal error and exit. Note that this only applies to macOS and Linux.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-72","04/11/2017 22:51:13",5,"appcd-core: Support for user-defined config file ""The daemon needs to support a user-defined config file. This file should live at {{~/.appcelerator/appcd/config.json}}. This user-defined config file overrides the default config defined by the Appc Daemon. This user-defined config file is written whenever a setting is changed via {{appcd config}} or a request to {{/appcd/config}}.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-77","05/04/2017 21:49:47",1,"appcd: Extend CI process to create platform-specific bundles ""The current Jenkinsfile introduced by DAEMON-43 runs check and coverage tasks, then bundles the daemon distribution without NPM dependencies. DAEMON-56 introduces a {{gulp package-bundle}} that will run {{npm install}} and re-package the daemon distribution tgz file. This ticket is to add the {{gulp package-bundle}} to the CI process where it is executed on the following 5 Jenkins slave machines: * macOS * 64-bit Windows * 32-bit Windows * 64-bit Linux * 32-bit Linux The resulting tgz file is to be uploaded as an artifact of the CI job.""","",1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-79","05/08/2017 21:35:23",5,"appcd-subprocess: Add IPC support ""We need the ability to set up an IPC channel with a spawned process. The way this will work starts by passing a {{ipc: true}} in the dispatcher request payload. This will cause the spawn to force the connection use file descriptor 3 as an IPC channel. The caller receives the subprocess descriptor: {{ctx.proc}}. It extends an event emitter, so you can listen for {{""""message""""}} and send using {{ctx.proc.send()}}.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-80","05/09/2017 05:31:06",5,"appcd-agent: Implement processing monitoring ""We need to extract the CPU and memory monitoring from the appcd-core and move it into a new appcd-monitor package. The {{StatusMonitor}} along with the plugin host will be able to use appcd-monitor to retrieve process stats. The goal is to feed these stats into appcd status and telemetry payloads.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-82","05/10/2017 16:36:39",8,"appcd-fswatcher: Add ""depth"" support for recursive watching ""Recursive fs watching works good... perhaps a little too good. When it recursively watches a directory, it has to walk the directory and watch every single descendant. This takes a bunch of resources and slow to initialize. Sometimes the only thing you are interested in is just a couple directories deep. It would best if the FSWatcher could watch only to a certain depth.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-84","05/11/2017 06:34:34",8,"appcd-request: Add http request library ""The daemon core needs an http client service. This will tie directly into the dispatcher and use the appcd config for determining proxy settings.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-85","05/15/2017 14:30:04",8,"appcd-request: Implement request service ""The daemon needs a centralized network library that exposes a service for making HTTP requests and takes into account network settings such as proxy settings.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-86","05/15/2017 14:32:22",3,"appcd-nodejs: Update to use appcd-request for HTTP requests ""When appcd-nodejs downloads Node.js, it needs to take into account proxies and other network settings. Instead of using {{request()}}, it instead should use the provided request service in {{appcd-request}}.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-87","05/15/2017 22:34:57",1,"Generate yarn.lock in distribution tarball ""When the distribution tarball is packaged, it consolidates all NPM dependencies into the top-level package.json and removes devDependencies from ALL appcd package.json files. All of the appcd-* packages are included in the tarball in the {{node_modules}} directory and declared as {{bundledDependencies}}. This ticket is to generate a {{yarn.lock}} file for all non-appcd-* dependencies and their dependencies. There are many ways to do this, but the best for ease and performance is to simply merge the {{yarn.lock}} files from every appcd-* directory.""","",1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-88","05/23/2017 21:32:02",1,"appcd-core: Add heartbeat to WebsocketSession ""Currently there is no mechanism to detect if the Websocket client is borked. This can be accomplished using a ping/pong heartbeat. Clients opt-in by setting the {{x-heartbeat}} HTTP header. When set, the {{WebsocketSession}} will send a {{""""ping""""}} event every 30 seconds to the client. The client has 5 seconds to respond with a {{""""pong""""}}, otherwise the connection is closed by the server.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-89","06/09/2017 16:14:50",8,"Migrate to Lerna.js ""I've been resisting the urge to jump to Lerna.js fearing it won't handle some of the edge cases, but once the daemon is released, managing and coordinating all the package releases is going to become more complicated. Need to understand Lerna's support for Yarn since we depend on {{yarn check}}. npm 5 does not yet support {{node_module}} integrity checks. Need to figure how to use Lerna.js and configure package dependencies. We will also probably ditch {{gulp}} (which isn't a bad thing) in favor of NPM scripts and a {{scripts}} directory. Everything in {{appcd-gulp}} will be moved to the {{scripts}} directory. The hope is this will give us a more manageable repo, faster builds, coordinated publishing, and removes the dependency on a globally installed {{gulp}}.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-92","08/08/2017 19:33:05",5,"appcd-logger: Implement default logger ""The Appc Daemon uses {{snooplogg}} for logging, but {{snooplogg}} contains a pretty large 19MB file. To reduce the amount of disk space needed (around 270MB) and to consolidate default logger config settings, it makes sense to introduce an {{appcd-logger}} package.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-93","08/11/2017 22:57:06",5,"Persist logs to disk ""The daemon needs to persist the log to disk. We can do this pretty easily by introducing a listener to the logger and writing the data to a log file. Every time the daemon is started, a fresh log file is created in {{~/.appcelerator/appcd/log}}. We still need to determine a few things: * Should we rotate old logs? Keep last 5 logs? gzip older logs? * How should we handle log files that could potentially be huge? The log messages should be streamed as objects containing metadata such as timestamps, etc. This structure should be preserved when written to disk.""","",1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-94","08/11/2017 23:00:04",1,"appcd-telemetry: Switch over to appc-platform-sdk analtyics ""The Appc Daemon uses its own analytics code in {{appcd-telemetry}}. {{appc-platform-sdk}} also has an analytics library. It makes sense that there should be a single analytics library, however {{appc-platform-sdk}}'s implementation is not used by any other product (e.g. not battle tested) and is missing a few key features that {{appcd-telemetry}} supports such as sending telemetry at set intervals instead of at the end of the process. So, we need to determine if this ticket should even be worked on in the first place. If yes, then update {{appc-platform-sdk}} to be daemon friendly and update {{appcd-telemetry}} to use {{appc-platform-sdk}}.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-95","08/14/2017 22:14:58",13,"appcd-plugin-jdk: Implement JDK service ""The {{appcd-plugin-jdk}} needs to expose a service that detects the JDK, via {{jdklib}}. The {{jdklib}} specifics are to be implemented by DAEMON-10.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-96","08/21/2017 23:34:24",13,"appcd-detect: Port over detect engine from node-appc v2 ""The amazing detect engine lives in node-appc v2 and needs to be ported over to an appcd-detect package. The major change involves using the {{/appcd/fswatch}} instead of the old (buggy/incomplete) fs watcher.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-97","08/22/2017 22:25:05",8,"appcd-detect: Wire up Windows Registry library ""The {{DetectEngine}} has the necessary plumbing to poll the Windows Registry for paths to watch, however the actual call to query the registry is commented out until a solution is dropped in. We need to select a library that allows us to query the registry. In the past, we've used {{winreg}}, but it requires a bit of abstraction to make it nicer to work with. Need to investigate the offerings in NPM and perhaps find a solution that allows us to listen to registry changes.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-98","10/10/2017 18:50:20",5,"appcd-detect: watch tests do not exit ""h5.Description On Windows running the unit tests they appear to 'hang' in a certain place, namely the appcd-detect unit tests and the {{watch()}} describe and the {{should redetect after initial detection}}. skipping that test allows the suite to run through and the process exit fine""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-99","10/12/2017 16:10:34",5,"appcd-plugin: Plugin host spawns a new console window on Windows ""h5.Description On Windows when calling to a plugin (for example appcd exec /jdk/latest/info) a new node console window is spawned. This window then stays open until it's either killed by a user or the daemon is stopped. This could be problematic as it means that spawned plugins can pretty much die at the whim of a user. I'm not sure whether it's fully possible to suppress the window however, recent PR into node might add that behaviour though https://github.com/nodejs/node/pull/15380""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-100","10/12/2017 17:23:11",8,"appcd-plugin-jdk: JDK 9 is not detected ""h5.Description JDK 9 has changed the registry key of Windows to {{HLKM\Software\JavaSoft\JDK}}. This needs to be added to [here|https://github.com/appcelerator/appc-daemon/blob/7d3c1dcb3766b7c8157fd68bcd07c1e51f658909/plugins/appcd-plugin-jdk/src/jdk-info-service.js#L158-L159] Couple notes - CurrentVersion returns 9, for JDK 8 it was 1.8 - jdklib currently fails to recognise JDK 9, it errors due to a missing JVM library, the jre folder no longer exists it seems. Will file a separate ticket for that - There is no 32-bit JDK distributed https://stackoverflow.com/questions/46356345/can-java-9-run-on-a-32-bit-os but it can be built, we might not need to support detecting 32-bit if it is not distributed officially""","",0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-101","10/17/2017 06:16:30",2,"appcd-plugin: Active request counter not decrementing for reloaded external plugin ""Somehow it's possible to make a request to an external plugin using {{appcd exec /}}, then modify the plugin so that it is stopped, yet the active requests counter is not decremented. It's unlikely, but possible, that the request is actually still active after the plugin is stopped.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-102","10/17/2017 15:49:19",2,"appcd exec --subscribe is not printing data payloads ""When running {{appcd exec /appcd/status --subscribe}}, it doesn't display any of the events despite there being a ton in the daemon log.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-103","10/18/2017 20:23:03",5,"""appcd start"" should not exit until the daemon has actually finished starting ""When running {{appcd start}}, it will spawn the appcd-core, but then exits with a success code. It doesn't wait for the daemon to actually initialize and load the plugins. We need the start functionality to listen for an IPC message signalling the daemon is ready to go.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-105","10/24/2017 14:02:20",5,"config: Able to set a sub-key for keys that should not allow subkeys ""h5.Description Calling something like the below will set a key on the property even though the key is a boolean in the JSDoc, this occurs on master and my appcd config PR branch """," appc config set telemetry.enabled.bar x ws.send(JSON.stringify({ version: '1.0', path: '/appcd/config', id: Date.now(), data: { """"action"""": """"set"""", """"key"""": """"telemetry.enabled.bar"""", """"value"""": """"x"""" } })); ",0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-106","10/26/2017 04:19:41",5,"appcd-dispatcher: Create a DataServiceDispatcher class ""There are several services that have very similar functionality where there's a single observable data store that is exposed via a {{ServiceDispatcher}} that supports filtered results and subscriptions. It would super handy (and ingenious) to introduce a {{DataServiceDispatcher}} that takes care of all this boilerplate.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-109","10/26/2017 13:59:14",2,"appcd-plugin: Calling /latest does not return the expected info ""h5.Description When calling {{appcd exec /jdk/latest}} it returns {{404 [object Object]}} it should print the plugin info to the console. It looks like the call is going through the error handler of the request made in the exec command """," const ws = new WebSocket('ws://127.0.0.1:1732', { headers: { 'User-Agent': __filename } }) .on('message', (msg, flags) => { console.log(msgpack.decode(msg)); console.log(flags); // console.log(util.inspect(flags.binary ? msgpack.decode(msg) : JSON.parse(msg), false, null, true)); // process.exit(0); }) .on('close', () => console.log('CLOSED')) .on('open', () => ws.send(JSON.stringify({ version: '1.0', path: '/jdk/latest/', id: Date.now(), type: 'subscribe' }))); ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-116","10/31/2017 16:22:05",2,"appcd-default-plugins: Create a pseudo package ""We need a package that the appcd-core can look at to load all the default appcd plugins such as the android, ios, jdk, and windows plugins.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-117","11/03/2017 11:59:01",5,"appcd-detect: Improve code coverage ""Since the appcd-detect refactor, code coverage dropped mainly due to the improved error handling and advanced path watching.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-119","11/06/2017 19:14:02",3,"appcd-plugin-windows: Allow time interval for detections to be set by user ""h5.Description Currently the intervals in the Windows plugin are hard-coded, it would be nice to allow a user to specify these themselves if they need to. Something like {{appcd config set appcd-windows-plugin.intervals.devices 5000}} for example. Then the plugin would need to also query the config to see if this is set More context here https://github.com/appcelerator/appc-daemon/pull/111#discussion_r149122916""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-122","11/07/2017 13:37:10",3,"appcd-plugin: Prerelease versions are not loaded by version ranges ""h5.Description *This is expected imo but filing for discussion* If I version my plugin as {{0.1.0-0}} then executing {{appcd exec /myplugin/0.1.X/}} or {{appcd exec /myplugin/^0.1.0/}} will not find my plugin. Executing {appcd exec /myplugin/^0.1.0-0/}} will. This is because semver will never view a prerelease as valid in a non-prerelease version range. /latest will work, and will load the prerelease version This is important as it makes how we version things problematic. If we do prereleases then if consumers decide to call with 0.1.X or similar, then they will never get prereleases plugins, and we don't want them calling latest as that will just lead to problems"""," $node > const semver = require('semver'); > const versions =['1.0.0', '1.1.0-0', '1.1.0-1']; > versions.sort(semver.rcompare); [ '1.1.0-1', '1.1.0-0', '1.0.0' ] ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-123","11/08/2017 13:01:47",2,"appcd-plugin-windows: Only wireup lookups when certain condition are met ""h5.Description As Chris pointed out, it doesn't make much sense to do the detection of devices, emulators etc. if we don't have any visualstudios. We should probably do a VS detection, and then wireup everything else if we find some. We should also probably only do this if we're actually on Windows too""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-124","11/09/2017 05:40:22",8,"""gulp check"" no longer works properly since switching to workspaces ""Since Yarn workspaces have been enabled, {{gulp check}} is no longer working properly. It checks to see what is installed in the package's {{node_modules}} instead of the top-level workspace {{node_modules}}. Since it doesn't find a particular dependency installed, it says every package is not installed. While fixing this, we should also make it more parallel so that it can compute the security and package update checks at the same time. We may also need/want to come up with a more robust way of checking integrity. {{yarn check --integrity}} doesn't work well with Lerna.""","",0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-125","11/10/2017 03:23:52",1,"WebSocketSession: Allow msgpack to be disabled ""We should add the ability per connection to disable msgpack responses.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-126","11/10/2017 12:22:47",5,"appcd-plugin-genymotion: Add support for custom deployed directory path ""h5.Description As it is possible to support changing the deployed genymotion directory we should look into making the lookup of the deployed directory consider this path. On Windows we can query the registry for it (under HCKU\Software\Genymobile\Genymotion), I'm not sure how to find it on OSX and linux. we should also add a config setting called genymotion.deployed just incase it is not possible to find on non-Windows""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-127","11/10/2017 16:55:46",1,"appcd-plugin: Show more plugin system details ""We need to add more information to the plugin system's status object that is returned when we run {{appcd status --json}} such as the plugin scan paths.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-128","11/13/2017 11:55:24",8,"appcd-fswatch: Recursive watching does not appear to work ""In all of my recent testing, recursive filesystem watching does not appear to work regardless of whether a depth is set.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-129","11/13/2017 11:58:46",13,"Android Plugin: Populate emulator target, api level, and sdk using default Android SDK ""To get the Android emulator's target, api level, and sdk name, we need to pass in an SDK for it to pull those bits of info. The problem is there could be more than one SDK. The Android plugin needs to select the best SDK starting with the one in specified in the config, then pass it into {{getEmulators()}}.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-130","11/13/2017 12:32:22",5,"appcd dump: Dump config, status, and log to file or stdout ""It would be helpful to introduce an {{appcd dump}} command that dumps the config, status, and log to a file. This would make bug reporting much, much easier.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-131","11/13/2017 12:34:20",1,"appcd logcat: Add support for --save ""It would useful if the {{appcd logcat}} command supported a {{--save }} option to save the contents of the log buffer to a file.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-132","11/13/2017 12:35:26",8,"appcd logcat: Add support for a filter ""It would be useful to allow a filter to be passed into {{appcd logcat}} that would only display messages where the message namespace matched the specified filter.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-133","11/13/2017 13:03:22",3,"Android Plugin: Sort SDKs and assign default ""Currently the list of detected Android SDKs is not ordered and no default SDK is selected. This is only an issue if you have more than one SDK.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-134","11/13/2017 13:04:18",3,"Android Plugin: Sort NDKs and assign default ""Currently the list of detected Android NDKs is not ordered and no default NDK is selected. This is only an issue if you have more than one NDK.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-135","11/13/2017 23:27:50",8,"appcd-detect: First change rescan emits new event eventhough nothing changed ""When the detect engine is watching a folder where something changes, it triggers a rescan. The first time the rescan is done, the results are merged into the observable model and even though nothing has changed, it will emits an event. It should only emit an event when A) something of interest happens and B) the result has actually changed.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-137","11/14/2017 15:17:52",3,"appcd-gulp: Local directories are baked into source maps ""The build system uses babel to transpile and generate the source maps. One of the args is the {{sourceRoot}} which is set to an absolute path. This absolute path gets baked into the generated files which is undesirable. Need to see if we can do relative paths. If that doesn't work, perhaps we need rewrite all of the generated source maps.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +"DAEMON-138","11/14/2017 17:25:21",3,"appcd-gulp: Coverage tests blow up when --trace-deprecation is set ""When trying to get a bit more info about unhandled rejections, Node.js has a flag that can be passed in called {{\-\-trace\-deprecation}}. The idea would be to add this to the {{gulp test/coverage}} task and then we'd see it in the CI logs. However, when this flag is set, for some reason {{nyc}} blows up because it can't load {{mocha-jenkins-reporter}}. But the rub is {{nyc}} is not supposed to load it. The {{mocha-jenkins-reporter}} is an argument to {{mocha}}, not {{nyc}}. When adding {{\-\-trace\-deprecation}} and running {{gulp coverage}}, we get the following error: We can fix that by applying the following patch: But then we run into a problem where {{mocha-jenkins-reporter}} is expecting a {{mocha}} runner object and {{nyc}} doesn't pass one in. I believe that {{mocha-jenkins-reporter}} should remain an argument to {{mocha}} and not {{nyc}} and that we need to figure out why {{nyc}} is sniping the {{\-\-reporter}} arg to mocha. Maybe it's doing a blind scrap on {{process.argv}}?"""," Error: Cannot find module '/Users/chris/appc/appc-daemon/node_modules/nyc/node_modules/istanbul-reports/lib/Users/chris/appc/appc-daemon/node_modules/mocha-jenkins-reporter' at Function.Module._resolveFilename (module.js:536:15) at Function.Module._load (module.js:466:25) at Module.require (module.js:579:17) at require (internal/module.js:11:18) at Object.create (/Users/chris/appc/appc-daemon/node_modules/nyc/node_modules/istanbul-reports/index.js:10:20) at /Users/chris/appc/appc-daemon/node_modules/nyc/index.js:451:24 at Array.forEach () at NYC.report (/Users/chris/appc/appc-daemon/node_modules/nyc/index.js:450:17) at report (/Users/chris/appc/appc-daemon/node_modules/nyc/bin/nyc.js:89:7) at /Users/chris/appc/appc-daemon/node_modules/nyc/bin/nyc.js:76:25 +++ b/packages/appcd-gulp/src/templates/standard.js @@ -159,6 +159,7 @@ module.exports = (opts) => { function runTests(cover) { const args = []; let { execPath } = process; + let jenkinsReporter = resolveModule('mocha-jenkins-reporter'); // add nyc if (cover) { @@ -178,7 +179,15 @@ module.exports = (opts) => { '--reporter=html', '--reporter=json', '--reporter=text', - '--reporter=text-summary', + '--reporter=text-summary' + ); + if (jenkinsReporter) { + args.push('--reporter=' + path.relative( + resolveModule('istanbul-reports', resolveModule('nyc')), + jenkinsReporter + )); + } + args.push( '--require', path.resolve(__dirname, '../test-transpile.js'), '--show-process-tree', process.execPath // need to specify node here so that spawn-wrap works @@ -188,6 +197,8 @@ module.exports = (opts) => { process.env.APPCD_COVERAGE = 1; } + args.push('--trace-deprecation'); + // add mocha const mocha = resolveModule('mocha'); if (!mocha) { @@ -201,8 +212,7 @@ module.exports = (opts) => { args.push('--inspect-brk'); } - const jenkinsReporter = resolveModule('mocha-jenkins-reporter'); - if (jenkinsReporter) { + if (!cover && jenkinsReporter) { args.push(`--reporter=${jenkinsReporter}`); } @@ -241,13 +251,16 @@ module.exports = (opts) => { } } - function resolveModule(name) { + function resolveModule(name, rel) { let dir = path.join(appcdGulpNodeModulesPath, name); if (fs.existsSync(dir)) { return dir; } try { + if (rel) { + return require.resolve(name, { paths: [ path.join(rel, 'node_modules') ] }); + } return path.dirname(require.resolve(name)); } catch (e) { return null; /Users/chris/appc/appc-daemon/node_modules/mocha-jenkins-reporter/node_modules/mocha/lib/reporters/base.js:252 runner.on('start', function () { ^ TypeError: runner.on is not a function at Jenkins.Base (/Users/chris/appc/appc-daemon/node_modules/mocha-jenkins-reporter/node_modules/mocha/lib/reporters/base.js:252:10) at new Jenkins (/Users/chris/appc/appc-daemon/node_modules/mocha-jenkins-reporter/lib/jenkins.js:40:8) at Object.create (/Users/chris/appc/appc-daemon/node_modules/nyc/node_modules/istanbul-reports/index.js:12:16) at /Users/chris/appc/appc-daemon/node_modules/nyc/index.js:451:24 at Array.forEach () at NYC.report (/Users/chris/appc/appc-daemon/node_modules/nyc/index.js:450:17) at report (/Users/chris/appc/appc-daemon/node_modules/nyc/bin/nyc.js:89:7) at /Users/chris/appc/appc-daemon/node_modules/nyc/bin/nyc.js:76:25 at ChildProcess. (/Users/chris/appc/appc-daemon/node_modules/nyc/node_modules/foreground-child/index.js:52:5) at emitTwo (events.js:126:13) ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +"DAEMON-140","11/14/2017 23:17:45",2,"system-info doesn't return ios information ""Start daemon, load http://localhost:1732/system-info/1.x/info. {{ios}} is {{null}}. Plugin status: appcd exec /ios/latest/info returns {{Cannot read property 'value' of null}} appcd --debug: """," ios 1.0.0-2 external /Users/feonsua/.appcelerator/install/7.0.0-master.11/package/node_modules/appcd-plugin-ios 8.9.1 Cannot read property 'value' of null 0 / 0 2017-11-14T23:21:45.867Z appcd:plugin:external:parent error Failed to activate plugin: ios@1.0.0-2 2017-11-14T23:21:45.869Z appcd:core:websocket-session [0] 127.0.0.1:58202 /ios/latest/info 400 Cannot read property 'value' of null 836ms 2017-11-14T23:21:45.888Z appcd:core:websocket-session error { TypeError: Cannot read property 'value' of null 2017-11-14T23:21:45.888Z appcd:core:websocket-session error at then (/Users/chris/appc/ioslib/src/certs.js:46:9) 2017-11-14T23:21:45.888Z appcd:core:websocket-session error at 2017-11-14T23:21:45.888Z appcd:core:websocket-session error at process._tickCallback (internal/process/next_tick.js:188:7) id: 'cd35e68c-cdb7-45e9-89bf-3e5e3d31bba5' } ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-141","11/15/2017 02:36:24",5,"Appc Daemon is crashing the terminal and studio ""*Problem Description:* MacOS terminal is getting crashed If you start a daemon from a terminal and leave for some time. And, I can't even start a studio due to resource unavailability - it just crashes while launching it. Studio crash log: https://gist.github.com/kolipakakondal/904a50e1031a500e74ee526ec54ea423 """," [forkpty: Resource temporarily unavailable] [Could not create a new process and open a pseudo-tty.] ITEM-AX40113:~ kkolipaka$ ps aux | wc -l 241 ITEM-AX40113:~ kkolipaka$ ps aux | grep appcd | wc -l 5 ITEM-AX40113:~ kkolipaka$ ps aux | grep gulp | wc -l ",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-142","11/15/2017 02:52:43",2,"system-info doesn't show android info ""I'm using appcd 1.0.0-2 and can't see the android info when I execute {{appc exec /system-info/1.x/info}} Please find the attached appcd status and system_info files ""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-143","11/15/2017 03:50:47",1,"iOS simulators are missing in the system-info - intermittent issue ""*Problem Description:* Can't find the simulators in the /system-info/1.x/info. However, it's an intermittent issue. *To reproduce:* # Run sudo npm install appcelerator@4.2.11-2 -g # Run appc use 7.0.0-master.11 # Run appcd appcd start # Run appc appcd exec /system-info/1.x/info *Versions:* Appcelerator Daemon, version 1.0.0-2 CLI 7.0.0-master.11 Please find the attached system-info [^system_info2.txt] and [^appcd_status_1.0.0-2.txt] ""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-145","11/15/2017 23:39:01",1,"Subscribe on /system-info/1.x/info doesn't work ""*Problem Description:* When we subscribe on {{/system-info/1.x/info}} changes - Appcd should publish the changes if any changes in iOS devices, Android devices, Xcode changes, etc. *To Reproduce:* # appc appcd exec /system-info/1.x/info/ --subscribe # Now connect iOS device *Actual:* No changes *Expected:* Return system-info with the iOS device Note: {{appc appcd exec /system-info/1.x/info/ios/devices --subscribe}} is working fine ""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-147","11/16/2017 06:33:14",2,"appc status: Hide windows-Plugin for unix / macOS machines ""When running {{appcd status}}, the following (red) line occurs: It's not an issue because I am not running on Windows, but it would be """"UX friendly"""" to either hide it on the mac or just say """"Not available"""" like Studio does for the Windows SDK."""," windows 1.0.0-6 external /usr/local/lib/node_modules/appcd/node_modules/appcd-plugin-windows 8.9.1 Unsupported platform """"darwin"""" 0 / 0 ",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-148","11/16/2017 08:06:05",1,"Android emulators missing target, api-level and sdk-version information ""*Problem Description:* Android emulators are missing target, api-level and sdk-version information - which is available in the ti info and also used in the studio And also, it doesn't have SDK, NDK and targets information *To reproduce:* # appc use 7.0.0-master.19 # appc appcd exec /system-info/1.x/info/android # Verify android emulator information *Actual:* No api-level,sdk-version and target in the emulator *Expected:* We should have all the information which is provided in the ti info Please find the attached android info file [^android_info.json] ""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-151","11/16/2017 12:03:58",1,"Spawning the ios plugin through appc cli errors with cannot find module plist ""h5.Description ioslib has a missing dependency which causes an error when distributed in the cli due to the legacy bundling style used. h5.Steps to reproduce # {{appc use 7.0.0-master.23}} # {{appc appcd start && appc exec /ios/latest/info}} h5.Actual Error cannot find plist h5.Expected No error, environment info returned""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-153","11/16/2017 15:01:41",2,"appcd: appcd start --debug should respect a --no-colors flag ""h5.Description Writing up a guide on how to provide information when reporting issues. Noticed that appcd start --debug --no-colors still logs in colour, would be nice if the debug logs provided by people didnt have the escape codes. h5.Steps to repro # appcd start --debug --no-colors h5.Actual Colours h5.Expect No colours""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-154","11/16/2017 18:06:14",2,"JSON Strings should be wrapped in double quotes ""json strings are coming in single quotes but it should be in double quotes. *To reproduce* # Run {{appc appcd exec /system-info/1.x/info --json --no-banner}} # Valdiate the output here https://jsonformatter.curiousconcept.com Studio json parser validation is failing due to this. ""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-155","11/16/2017 18:28:01",1,"ios info is null due to ""Failed to load plugin: Cannot find module 'plist' "" ""I can't see ios info in the {{appc appcd exec /system-info/1.x/info --json}} *To reproduce:* # Run appc use 7.0.0-master.22 # appc appcd exec /system-info/1.x/info --json # Verify ios info - it's null Please find the attached appcd dump file. ""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-156","11/16/2017 19:01:16",3,"appcd: Auto import config settings from Titanium CLI ""It would great to be able to import the Titanium CLI config into the appcd user's config in {{~/.appcelerator/appcd/config.json}}. Mappings would be as such: * {{android.adb.port}} (Number) -> {{android.adb.port}} (Number) * {{android.executables.aapt}} (String) -> {{android.executables.aapt}} (String) * {{android.ndkPath}} (String) -> {{android.ndk.searchPaths}} (Array) * {{android.sdkPath}} (String) -> {{android.sdk.searchPaths}} (Array) The list goes on and on... https://wiki.appcelerator.org/display/guides2/Titanium+CLI+Options. Here's the unmaintained list: https://wiki.appcelerator.org/display/CLI/CLI+Config+Settings.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-157","11/16/2017 21:46:18",1,"appcd: Suppress banner when run through appc ""h5.Description It was raised that the double banner when running {{appc appcd}} shouldn't happen, we should suppress this, I think we can use the APPC_ENV environment variable to do so, alternatively we could have the CLI push a {{--no-banner}} flag but I prefer the former""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-158","11/16/2017 22:29:19",1,"Querying iOS devices results with ""Cannot find module 'plist' "" ""*Description* Running the command """"appc appcd exec /ios/latest/info/devices"""" errors out with a message cannot find plist *Steps to reproduce* 1. Install CLI 7.0.0-master.23 2. Start the daemon with """"appc appcd start"""" 3. Connect an iOS devices and check that it's recognized eg. appc ti info 4. Run the command """"appc appcd exec /ios/latest/info/devices"""" *Actual result* This result is seen: Failed to load plugin: Cannot find module 'plist' *Expected Result* An output showing some details about the iOS device that is connected. No errors should be seen.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-159","11/16/2017 22:49:52",3,"appcd-plugin: Can't [force] stop a plugin that's starting ""It's possible for a plugin to be started, but activate() to be hung waiting for an unresolved promise. In this case, you can't stop the plugin until it starts. We should allow plugins to be stopped if the plugin is started, but not activated. We should allow plugins to be force stopped regardless if it's started, starting, or stopping.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-160","11/17/2017 01:10:40",5,"ioslib: Versioning of package on npm is causing issues ""h5.Description *I know this isn't really a proper ticket but I needed somewhere to dump this* Currently the ioslib version being pulled in is ioslib@2.0.0-beta.3 based off the version range of ^2.0.0-8. This (surprisingly to me) is correct in semver land and 2.0.0-beta.3 is considered to be greater than 2.0.0.-10 https://runkit.com/ewanharris/5a0e34d8e7d5da001228faf7 So currently we're borked and need a way out, here's the possible solutions, in no order. # Bump ioslib to become ioslib@2.0.0-beta.4, replacing 2.0.0.-10 # Change the appcd-plugin-ios dependency to next, stay like this # Change the appcd-plugin-ios dependency to next, ask npm nicely to remove ioslib@2.0.0-beta.3 (I dont see why they wouldnt), then eventually move back to ^2.0.0-10 version ranges. # Release ioslib@2.0.1-0, move appcd-plugin-ios to ^2.0.1-0 I vote for 3 or 4 with an added sprinkle of promising to never do -beta.X on npm packages again :)""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-161","11/17/2017 10:23:59",1,"Windows: Visual Studio path is incorrect in the system-info ""Visual studio path is incorrect in the windows system-info path *Actual:* C: /ProgramFiles(x86)/MicrosoftVisualStudio14.0/ *Expected:* C:\Program Files (x86)\Microsoft Visual Studio 14.0 Same goes for the Windows Phone SDK path *Actual:* C: \ProgramFiles(x86)\MicrosoftSDKs\WindowsPhone\v8.1\ *Expected:* C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1 ""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-162","11/17/2017 10:49:36",3,"Windows system-info: 10.0 SDK emulators are not shown ""Windows Phone SDK 10.0 emulators are missing in the windows system-info. ""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0 +"DAEMON-163","11/17/2017 10:54:32",2,"Windows OS: /system-info/1.x/info command is not responding ""/system-info/1.x/info command hangs on the windows machine. It's an intermittant issue. Looks like it's getting into recursive loop on """"Detecting devices info""""""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-166","11/17/2017 18:49:22",8,"appcd-plugin-android: Plugin activation hangs if no Android SDKs are found ""If the system does not have any Android SDKs, the detect engine will return an empty array, however since it is initialized to an empty array, there's no change and thus no notifications and the detection hangs. The fix requires a check if the results are empty, then resolve the SDK detection. However in doing this, it exposed a timing bug with NDK detection.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-167","11/18/2017 03:39:34",13,"Android and Genymotion emulators are empty ""Android and Genymotion emulators are shown empty on the latest daemon 1.0.0-12 Please find the attached files""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-168","11/18/2017 03:59:49",1,"appId is missing in the provisioning profiles ""appId is missing in the provisioning profiles""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-169","11/18/2017 17:25:48",3,"Issues with Xcode info returned ""Couple of issues found in the Xcode information returned when querying """"appc appcd exec /ios/latest/info"""" 1. Any Xcode that is not present in the /Applications is not returned 2. The latest xcode in the system is returned as default even after switching to another xcode for default. Check the attached """"appcd.txt """" for output of running the """"appc appcd exec /ios/latest/info"""" and the """"appcCLI.txt"""" for output running """"appc ti info -t ios"""" The Xcode in downloads folder was made default but daemon output returns the latest code in /Applications as the default and does not list the Xcode in /downalods ""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-170","11/20/2017 05:41:16",13,"Move plugins out of appcd-daemon repo into separate repos ""Once Appc Daemon 1.0.0 ships, we should move the plugins out of the {{appcd-daemon}} repo and into separate repos. This will allow each plugin to be versioned independently of each other and the Appc Daemon core. Also move {{appcd-default-plugins}} into a separate repo so that we can add/remove plugins without having to publish a new appcd.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0 +"DAEMON-171","11/20/2017 05:55:34",2,"appcd: Stop any running daemon instances post npm install ""After installing the Appc Daemon, the post install script should use the just installed Appc Daemon code to stop so that the new code will be run.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-173","11/20/2017 16:51:08",8,"windowslib: EBUSY error on wptool executable ""h5.Description When running appcd exec /system-info/1.x/info/ it seemed to be taking longer than usual to return, checking the logs I saw the below, I think it's possible that two detect processes are attempting to build wptool at the same time. We apparently deal with this inside windowslib but it seems to be flaky, it might be wise to stagger the detects to allow one to build before the other runs I've had trouble reproducing this in an appc cli build fwiw h5.Steps to reproduce # Remove wptool.exe from windowslib/bin folder # Start the daemon {{[appc] appcd start}} # Query system info {{[appc] appcd exec /system-info/1.x/info/}} h5.Actual Plugin hangs, windows error above shown in logs h5.Expected No hang"""," 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error Caught exception: Error: EBUSY: resource busy or locked, open 'C:\Users\ewan\Documents\git\appc-daemon\node_modules\windowslib\bin\wptool.exe' 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at Object.fs.openSync (fs.js:646:18) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at Object.fs.writeFileSync (fs.js:1291:33) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at Object.callback (C:\Users\ewan\Documents\git\appc-daemon\node_modules\windowslib\lib\wptool.js:596:7) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at C:\Users\ewan\Documents\git\appc-daemon\node_modules\windowslib\lib\visualstudio.js:423:9 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at Array.forEach () 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at ChildProcess. (C:\Users\ewan\Documents\git\appc-daemon\node_modules\windowslib\lib\visualstudio.js:415:11) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at emitTwo (events.js:126:13) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at ChildProcess.emit (events.js:214:7) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at maybeClose (internal/child_process.js:925:16) 2017-11-20T16:24:57.446Z appcd:plugin:host:21052 error at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-176","11/21/2017 11:26:20",2,"Plugins: Pickup the imported values from the titanium config ""h5.Description DAEMON-156 implemented importing the ti config, so lets implement it into the plugins. We should also watch the config for these values so we rescan if they get set""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0 +"DAEMON-178","11/22/2017 06:24:41",1,"Sync ""appc ti config"" with the ""appc appcd config"" ""How and when do we sync {{appc ti config}} settings to {{appc appcd config}} - so that when studio is working with Appc Daemon it can only look for {{appc appcd config}} Since everybody is trained to work with {{appc ti config}} and they might configure android.sdkPath, sdk.selected,etc., and expect they will be picked up directly in the studio Any thoughts around it? ""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-179","11/22/2017 10:37:58",8,"Android NDK is blank in system-info ""The android info fetched using """"appc appcd exec /android/latest/info"""" returns Android NDK as blank. Attached is the android output returned by appcd and appc cli""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-181","11/22/2017 20:02:54",8,"appcd-config: Figure out how to set metadata for non-appcd config settings ""We currently do not have plugins define metadata for plugin specific config options. Plugins do not have access to the main config object, thus they cannot directly add metadata. One solution would be for the plugin system to read a plugin specific metadata config and merge it into the main config.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-182","11/22/2017 20:04:58",5,"androidlib: Addons with a manifest.ini not detected ""At some point, Android SDK add-ons moved away from {{source.properties}} files and to a {{manifest.ini}} file. We need to support both.""","",0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-184","11/23/2017 13:30:01",5,"windowslib: Unable to build wptool project on a machine where the username contains spaces ""h5.Description *This isn't a new bug, just exposed by how we decided to expose appcd* One of my machines has a space in the name, this causes an error when building the wptool executable and we're not in the temp dir, we need to escape the project path correctly""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +"DAEMON-185","11/23/2017 13:31:11",1,"Unable to stop the daemon ""Unable to stop the daemon using {{appc appcd stop}}. It's an intermittent issue - doesn't have all the time. However, it doesn't have any impact on the studio for 5.0 release. """," ITEM-AX40113:titanium_studio kkolipaka$ appc appcd stop --debug Appcelerator Command-Line Interface, version 7.0.0-master.44 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Unable to get server pid Error: Not Found ITEM-AX40113:titanium_studio kkolipaka$ appc appcd stop --debug Appcelerator Command-Line Interface, version 7.0.0-master.44 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Unable to get server pid Error: Not Found ITEM-AX40113:titanium_studio kkolipaka$ appc appcd status Appcelerator Command-Line Interface, version 7.0.0-master.44 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Core Version v1.0.0-22 PID 10760 Uptime 91.35 minutes Node Version 8.9.1 Memory RSS 128.35 MB Memory Heap 39.60 MB / 47.08 MB Filesystem Watch System Nodes 156 Node.js FS Watchers 129 Client Watchers 84 ┌ [d] / (35 files, 0 watchers, 0 links, 0 recursion) ├─┬ [d] Applications (77 files, 1 watcher, 0 links, 0 recursion) │ ├── [d] Genymotion.app (1 file, 2 watchers, 0 links, 0 recursion) │ ├─┬ [d] Xcode-beta.app (1 file, 3 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Contents (14 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Developer (8 files, 1 watcher, 1 link, 0 recursion) │ │ └─┬ [d] Platforms (7 files, 0 watchers, 0 links, 0 recursion) │ │ ├─┬ [d] iPhoneOS.platform (8 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Developer (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ ├─┬ [d] Library (5 files, 0 watchers, 0 links, 0 recursion) │ │ │ │ └─┬ [?] CoreSimulator (0 watchers, 0 links, 0 recursion) │ │ │ │ └─┬ [?] Profiles (0 watchers, 0 links, 0 recursion) │ │ │ │ ├── [?] DeviceTypes (1 watcher, 0 links, 0 recursion) │ │ │ │ └── [?] Runtimes (1 watcher, 0 links, 0 recursion) │ │ │ └── [d] SDKs (2 files, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] iPhoneSimulator.platform (5 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Developer (2 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Library (4 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] CoreSimulator (2 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Profiles (2 files, 0 watchers, 0 links, 0 recursion) │ │ │ ├── [d] DeviceTypes (14 files, 1 watcher, 0 links, 0 recursion) │ │ │ └── [d] Runtimes (1 file, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] WatchOS.platform (7 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Developer (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ ├─┬ [d] Library (1 file, 0 watchers, 0 links, 0 recursion) │ │ │ │ └─┬ [?] CoreSimulator (0 watchers, 0 links, 0 recursion) │ │ │ │ └─┬ [?] Profiles (0 watchers, 0 links, 0 recursion) │ │ │ │ ├── [?] DeviceTypes (1 watcher, 0 links, 0 recursion) │ │ │ │ └── [?] Runtimes (1 watcher, 0 links, 0 recursion) │ │ │ └── [d] SDKs (2 files, 1 watcher, 0 links, 0 recursion) │ │ └─┬ [d] WatchSimulator.platform (5 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Developer (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Library (3 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] CoreSimulator (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Profiles (2 files, 0 watchers, 0 links, 0 recursion) │ │ ├── [d] DeviceTypes (2 files, 1 watcher, 0 links, 0 recursion) │ │ └── [d] Runtimes (1 file, 1 watcher, 0 links, 0 recursion) │ └─┬ [d] Xcode.app (1 file, 1 watcher, 0 links, 0 recursion) │ └─┬ [d] Contents (15 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Developer (7 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Platforms (7 files, 0 watchers, 0 links, 0 recursion) │ ├─┬ [d] iPhoneOS.platform (8 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Developer (3 files, 0 watchers, 0 links, 0 recursion) │ │ ├─┬ [d] Library (6 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] CoreSimulator (1 file, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Profiles (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ ├── [d] DeviceTypes (22 files, 1 watcher, 0 links, 0 recursion) │ │ │ └── [d] Runtimes (1 file, 1 watcher, 0 links, 0 recursion) │ │ └── [d] SDKs (2 files, 1 watcher, 0 links, 0 recursion) │ ├─┬ [d] iPhoneSimulator.platform (5 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Developer (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Library (3 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [?] CoreSimulator (0 watchers, 0 links, 0 recursion) │ │ └─┬ [?] Profiles (0 watchers, 0 links, 0 recursion) │ │ ├── [?] DeviceTypes (1 watcher, 0 links, 0 recursion) │ │ └── [?] Runtimes (1 watcher, 0 links, 0 recursion) │ ├─┬ [d] WatchOS.platform (7 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Developer (3 files, 0 watchers, 0 links, 0 recursion) │ │ ├─┬ [d] Library (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] CoreSimulator (1 file, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Profiles (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ ├── [d] DeviceTypes (6 files, 1 watcher, 0 links, 0 recursion) │ │ │ └── [d] Runtimes (1 file, 1 watcher, 0 links, 0 recursion) │ │ └── [d] SDKs (2 files, 1 watcher, 0 links, 0 recursion) │ └─┬ [d] WatchSimulator.platform (5 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Developer (2 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Library (2 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [?] CoreSimulator (0 watchers, 0 links, 0 recursion) │ └─┬ [?] Profiles (0 watchers, 0 links, 0 recursion) │ ├── [?] DeviceTypes (1 watcher, 0 links, 0 recursion) │ └── [?] Runtimes (1 watcher, 0 links, 0 recursion) ├─┬ [d] Library (64 files, 0 watchers, 0 links, 0 recursion) │ ├─┬ [d] Developer (3 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] CoreSimulator (1 file, 0 watchers, 0 links, 0 recursion) │ │ └── [d] Profiles (1 file, 1 watcher, 0 links, 0 recursion) │ ├─┬ [d] Java (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] JavaVirtualMachines (5 files, 1 watcher, 0 links, 0 recursion) │ │ ├── [d] jdk1.7.0_80.jdk (1 file, 1 watcher, 0 links, 0 recursion) │ │ ├── [d] jdk1.8.0_121.jdk (1 file, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] jdk1.8.0_131.jdk (1 file, 1 watcher, 0 links, 0 recursion) │ │ │ └─┬ [d] Contents (3 files, 0 watchers, 0 links, 0 recursion) │ │ │ └─┬ [d] Home (14 files, 1 watcher, 0 links, 0 recursion) │ │ │ └── [d] bin (44 files, 1 watcher, 0 links, 0 recursion) │ │ ├── [d] jdk1.8.0_144.jdk (1 file, 1 watcher, 0 links, 0 recursion) │ │ └── [d] jdk1.8.0_151.jdk (1 file, 1 watcher, 0 links, 0 recursion) │ └─┬ [d] Keychains (6 files, 0 watchers, 0 links, 0 recursion) │ └── [f] System.keychain (1 watcher, 0 links, 0 recursion) ├─┬ [d] opt (1 file, 2 watchers, 0 links, 0 recursion) │ └── [d] local (10 files, 2 watchers, 0 links, 0 recursion) ├─┬ [d] private (4 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] var (24 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] db (91 files, 0 watchers, 0 links, 0 recursion) │ └── [ld] xcode_select_link → /Applications/Xcode-beta.app/Contents/Developer (8 files, 0 watchers, 0 links, 0 recursion) ├─┬ [d] System (2 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Library (97 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] Java (2 files, 0 watchers, 0 links, 0 recursion) │ └── [?] JavaVirtualMachines (1 watcher, 0 links, 0 recursion) ├─┬ [d] Users (5 files, 0 watchers, 0 links, 0 recursion) │ └─┬ [d] kkolipaka (88 files, 2 watchers, 0 links, 0 recursion) │ ├─┬ [d] .android (20 files, 0 watchers, 0 links, 0 recursion) │ │ └── [d] avd (10 files, 1 watcher, 0 links, 1 recursion) │ ├─┬ [d] .appcelerator (10 files, 0 watchers, 0 links, 0 recursion) │ │ ├─┬ [d] appcd (5 files, 0 watchers, 0 links, 0 recursion) │ │ │ └── [?] plugins (1 watcher, 0 links, 0 recursion) │ │ └─┬ [d] install (31 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] 7.0.0-master.44 (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] package (15 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] node_modules (354 files, 0 watchers, 0 links, 0 recursion) │ │ ├─┬ [d] appcd-plugin-android (6 files, 2 watchers, 0 links, 0 recursion) │ │ │ └── [d] dist (3 files, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] appcd-plugin-genymotion (6 files, 2 watchers, 0 links, 0 recursion) │ │ │ └── [d] dist (2 files, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] appcd-plugin-ios (6 files, 2 watchers, 0 links, 0 recursion) │ │ │ └── [d] dist (3 files, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] appcd-plugin-jdk (6 files, 2 watchers, 0 links, 0 recursion) │ │ │ └── [d] dist (3 files, 1 watcher, 0 links, 0 recursion) │ │ ├─┬ [d] appcd-plugin-system-info (6 files, 2 watchers, 0 links, 0 recursion) │ │ │ └── [d] dist (1 file, 1 watcher, 0 links, 0 recursion) │ │ └── [d] appcd-plugin-windows (6 files, 1 watcher, 0 links, 0 recursion) │ ├─┬ [d] .docker (1 file, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] machine (3 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] machines (1 file, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] default (11 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] default (4 files, 0 watchers, 0 links, 0 recursion) │ │ └── [f] default.vbox (1 watcher, 0 links, 0 recursion) │ ├─┬ [d] .Genymobile (4 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Genymotion (6 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] deployed (1 file, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] Google Pixel - 8.0 - API 26 - 1080x1920 (9 files, 0 watchers, 0 links, 0 recursion) │ │ └── [f] Google Pixel - 8.0 - API 26 - 1080x1920.vbox (1 watcher, 0 links, 0 recursion) │ ├── [d] Applications (2 files, 1 watcher, 0 links, 0 recursion) │ ├─┬ [d] Downloads (304 files, 0 watchers, 0 links, 0 recursion) │ │ └── [d] android-ndk-r12b (14 files, 2 watchers, 0 links, 0 recursion) │ └─┬ [d] Library (73 files, 0 watchers, 0 links, 0 recursion) │ ├─┬ [d] Android (1 file, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] sdk (1 file, 1 watcher, 0 links, 0 recursion) │ │ └── [?] ndk-bundle (1 watcher, 0 links, 0 recursion) │ ├── [d] android-sdk-macosx (16 files, 2 watchers, 0 links, 0 recursion) │ ├─┬ [d] Developer (2 files, 0 watchers, 0 links, 0 recursion) │ │ └─┬ [d] CoreSimulator (1 file, 0 watchers, 0 links, 0 recursion) │ │ └── [d] Devices (103 files, 1 watcher, 0 links, 1 recursion) │ ├─┬ [d] Keychains (7 files, 0 watchers, 0 links, 0 recursion) │ │ └── [f] login.keychain-db (1 watcher, 0 links, 0 recursion) │ ├─┬ [d] MobileDevice (2 files, 0 watchers, 0 links, 0 recursion) │ │ └── [d] Provisioning Profiles (8 files, 1 watcher, 0 links, 0 recursion) │ ├─┬ [d] Preferences (284 files, 0 watchers, 0 links, 0 recursion) │ │ └── [?] com.apple.security.plist (1 watcher, 0 links, 0 recursion) │ └─┬ [d] VirtualBox (17 files, 0 watchers, 0 links, 0 recursion) │ └── [f] VirtualBox.xml (1 watcher, 0 links, 0 recursion) └─┬ [d] usr (7 files, 2 watchers, 0 links, 0 recursion) └─┬ [d] local (15 files, 2 watchers, 0 links, 0 recursion) ├── [d] bin (124 files, 2 watchers, 0 links, 0 recursion) └─┬ [d] lib (41 files, 0 watchers, 0 links, 0 recursion) └─┬ [d] node_modules (4 files, 0 watchers, 0 links, 0 recursion) └─┬ [d] npm (23 files, 0 watchers, 0 links, 0 recursion) └── [f] package.json (1 watcher, 0 links, 0 recursion) Plugin Version Type Path Node.js Status Active/Total Requests android 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-android 8.9.1 Active, PID=10778 1 / 1 genymotion 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-genymotion 8.9.1 Active, PID=10779 1 / 1 ios 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-ios 8.9.1 Active, PID=10780 1 / 1 jdk 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-jdk 8.9.1 Active, PID=10781 1 / 1 system-info 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-system-info 8.9.1 Active, PID=10770 7 / 12 windows 1.0.0-22 external /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-windows 8.9.1 Unsupported platform """"darwin"""" 0 / 0 PID Command Started 10770 /Users/kkolipaka/.appcelerator/appcd/node/v8.9.1/darwin/x64/node /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin/bin/appcd-plugin-host /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-system-info 2 hours ago 10778 /Users/kkolipaka/.appcelerator/appcd/node/v8.9.1/darwin/x64/node /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin/bin/appcd-plugin-host /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-android 2 hours ago 10779 /Users/kkolipaka/.appcelerator/appcd/node/v8.9.1/darwin/x64/node /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin/bin/appcd-plugin-host /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-genymotion 2 hours ago 10780 /Users/kkolipaka/.appcelerator/appcd/node/v8.9.1/darwin/x64/node /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin/bin/appcd-plugin-host /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-ios 2 hours ago 10781 /Users/kkolipaka/.appcelerator/appcd/node/v8.9.1/darwin/x64/node /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin/bin/appcd-plugin-host /Users/kkolipaka/.appcelerator/install/7.0.0-master.44/package/node_modules/appcd-plugin-jdk 2 hours ago ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-189","11/26/2017 06:58:43",3,"System-info doesn't have newly created Android AVD ""System-info doesn't have newly created android AVD. I've created a new android AVD from the studio and it appeared in the ti info but not in the appcd system-info. Please find the attached files. [^appcd_dump_master44.json] [^appcd_systeminfo_master44.json] [^appc_tiinfo_master44.json] ""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-190","11/27/2017 13:41:55",1,"Windows: Daemon doesn't start first time when downloading node binary ""h5.Description *This error should have bubbled through to the cli I think* Starting the daemon when the node binaries are not downloaded on Windows doesn't work first time, logs below. Looking at appcd-nodejs it only handles EXTBUSY which I think is unixy, windows is EBUSY h5.Steps to reproduce # Remove ~/.appcelerator/appcd/node # {{set SNOOPLOGG=*}} # {{appcd start --debug}} h5.Actual Daemon doesnt start h5.Expected Daemon should start"""," C:\Users\Archibald Thornburnt>appc appcd start --debug Appcelerator Command-Line Interface, version 7.0.0-master.44 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. 2017-11-27T13:32:58.805Z cli-kit:context Adding command: config 2017-11-27T13:32:58.992Z cli-kit:context Adding command: dump 2017-11-27T13:32:58.992Z cli-kit:context Adding command: exec 2017-11-27T13:32:58.992Z cli-kit:context Adding command: logcat 2017-11-27T13:32:58.992Z cli-kit:context Adding command: restart 2017-11-27T13:32:59.008Z cli-kit:context Adding command: start 2017-11-27T13:32:59.008Z cli-kit:context Adding command: status 2017-11-27T13:32:59.008Z cli-kit:context Adding command: stop 2017-11-27T13:32:59.008Z cli-kit:context Adding command: help 2017-11-27T13:32:59.008Z cli-kit:context Context Lookup: 2017-11-27T13:32:59.008Z cli-kit:context Commands: 2017-11-27T13:32:59.008Z cli-kit:context config => config 2017-11-27T13:32:59.008Z cli-kit:context dump => dump 2017-11-27T13:32:59.008Z cli-kit:context exec => exec 2017-11-27T13:32:59.008Z cli-kit:context logcat => logcat 2017-11-27T13:32:59.008Z cli-kit:context restart => restart 2017-11-27T13:32:59.008Z cli-kit:context start => start 2017-11-27T13:32:59.008Z cli-kit:context status => status 2017-11-27T13:32:59.008Z cli-kit:context stop => stop 2017-11-27T13:32:59.008Z cli-kit:context help => help 2017-11-27T13:32:59.008Z cli-kit:context Options: 2017-11-27T13:32:59.008Z cli-kit:context --config => config 2017-11-27T13:32:59.008Z cli-kit:context --config-file => config-file 2017-11-27T13:32:59.008Z cli-kit:context --colors => colors 2017-11-27T13:32:59.008Z cli-kit:context --help => help 2017-11-27T13:32:59.008Z cli-kit:context --version => version 2017-11-27T13:32:59.008Z cli-kit:context -h => help 2017-11-27T13:32:59.008Z cli-kit:context -v => version 2017-11-27T13:32:59.008Z cli-kit:context Parsing: [ 'start', '--debug' ] 2017-11-27T13:32:59.008Z cli-kit:context Parsing argument: start 2017-11-27T13:32:59.008Z cli-kit:context Found command: start 2017-11-27T13:32:59.008Z cli-kit:context Parsing argument: --debug 2017-11-27T13:32:59.008Z cli-kit:context Descending into next context's parser 2017-11-27T13:32:59.023Z cli-kit:context Context Lookup: 2017-11-27T13:32:59.023Z cli-kit:context Options: 2017-11-27T13:32:59.023Z cli-kit:context --debug => debug 2017-11-27T13:32:59.023Z cli-kit:context Parsing: [ { type: 'command', 2017-11-27T13:32:59.023Z cli-kit:context command: 2017-11-27T13:32:59.023Z cli-kit:context Command { 2017-11-27T13:32:59.023Z cli-kit:context _events: Map {}, 2017-11-27T13:32:59.023Z cli-kit:context _links: [Array], 2017-11-27T13:32:59.023Z cli-kit:context desc: 'starts the Appc Daemon if it\'s not already running', 2017-11-27T13:32:59.023Z cli-kit:context options: [Array], 2017-11-27T13:32:59.023Z cli-kit:context action: [AsyncFunction: action], 2017-11-27T13:32:59.023Z cli-kit:context parent: [Object], 2017-11-27T13:32:59.023Z cli-kit:context title: 'start', 2017-11-27T13:32:59.023Z cli-kit:context args: [], 2017-11-27T13:32:59.023Z cli-kit:context commands: {}, 2017-11-27T13:32:59.023Z cli-kit:context groups: [Object], 2017-11-27T13:32:59.023Z cli-kit:context lookup: [Object], 2017-11-27T13:32:59.023Z cli-kit:context camelCase: true, 2017-11-27T13:32:59.023Z cli-kit:context name: 'start', 2017-11-27T13:32:59.023Z cli-kit:context aliases: {} } }, 2017-11-27T13:32:59.023Z cli-kit:context { type: 'unknown option', orig: '--debug' } ] 2017-11-27T13:32:59.023Z cli-kit:context Parsing argument: --debug 2017-11-27T13:32:59.023Z cli-kit:context Found option: debug 2017-11-27T13:32:59.023Z cli-kit:context Negated? false 2017-11-27T13:32:59.023Z cli-kit:context Finalizing parsing 2017-11-27T13:32:59.023Z cli-kit:context Processing default options and environment variables for 2 contexts 2017-11-27T13:32:59.023Z cli-kit:context Filling argv and _ 2017-11-27T13:32:59.023Z cli-kit:context Mixing in environment variable values 2017-11-27T13:32:59.039Z appcd:config Loading JavaScript config file: C:\Users\Archibald Thornburnt\.appcelerator\install\7.0.0-master.44\package\node_modules\appcd-core\conf\default.js 2017-11-27T13:32:59.117Z appcd:config Parsing AST... 2017-11-27T13:32:59.148Z appcd:config Loading JSON config file: C:\Users\Archibald Thornburnt\.appcelerator\install\7.0.0-master.44\package\node_modules\appcd-core\conf\preprod.json 2017-11-27T13:32:59.148Z appcd:common { 2017-11-27T13:32:59.148Z appcd:common """"core"""": { 2017-11-27T13:32:59.148Z appcd:common """"enforceNodeVersion"""": true, 2017-11-27T13:32:59.148Z appcd:common """"v8"""": { 2017-11-27T13:32:59.148Z appcd:common """"memory"""": """"auto"""" 2017-11-27T13:32:59.148Z appcd:common } 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"home"""": """"~/.appcelerator/appcd"""", 2017-11-27T13:32:59.148Z appcd:common """"network"""": { 2017-11-27T13:32:59.148Z appcd:common """"agentOptions"""": null, 2017-11-27T13:32:59.148Z appcd:common """"caFile"""": null, 2017-11-27T13:32:59.148Z appcd:common """"certFile"""": null, 2017-11-27T13:32:59.148Z appcd:common """"httpProxy"""": null, 2017-11-27T13:32:59.148Z appcd:common """"httpsProxy"""": null, 2017-11-27T13:32:59.148Z appcd:common """"keyFile"""": null, 2017-11-27T13:32:59.148Z appcd:common """"passphrase"""": null, 2017-11-27T13:32:59.148Z appcd:common """"strictSSL"""": true 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"plugins"""": { 2017-11-27T13:32:59.148Z appcd:common """"autoReload"""": true, 2017-11-27T13:32:59.148Z appcd:common """"defaultInactivityTimeout"""": 3600000 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"server"""": { 2017-11-27T13:32:59.148Z appcd:common """"agentPollInterval"""": 1000, 2017-11-27T13:32:59.148Z appcd:common """"daemonize"""": true, 2017-11-27T13:32:59.148Z appcd:common """"group"""": null, 2017-11-27T13:32:59.148Z appcd:common """"hostname"""": """"127.0.0.1"""", 2017-11-27T13:32:59.148Z appcd:common """"pidFile"""": """"~/.appcelerator/appcd/appcd.pid"""", 2017-11-27T13:32:59.148Z appcd:common """"port"""": 1732, 2017-11-27T13:32:59.148Z appcd:common """"user"""": null 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"telemetry"""": { 2017-11-27T13:32:59.148Z appcd:common """"enabled"""": true, 2017-11-27T13:32:59.148Z appcd:common """"eventsDir"""": """"~/.appcelerator/appcd/telemetry"""", 2017-11-27T13:32:59.148Z appcd:common """"sendBatchSize"""": 10, 2017-11-27T13:32:59.148Z appcd:common """"sendInterval"""": 60000, 2017-11-27T13:32:59.148Z appcd:common """"sendTimeout"""": 60000, 2017-11-27T13:32:59.148Z appcd:common """"url"""": """"https://api.appcelerator.com/p/v1/app-track"""" 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"appcd"""": { 2017-11-27T13:32:59.148Z appcd:common """"guid"""": """"14c84daf-b01e-486c-96d3-b8f66da44481"""" 2017-11-27T13:32:59.148Z appcd:common }, 2017-11-27T13:32:59.148Z appcd:common """"environment"""": { 2017-11-27T13:32:59.148Z appcd:common """"name"""": """"preprod"""", 2017-11-27T13:32:59.148Z appcd:common """"title"""": """"Pre-production"""" 2017-11-27T13:32:59.148Z appcd:common } 2017-11-27T13:32:59.148Z appcd:common } 2017-11-27T13:32:59.195Z appcd:nodejs Checking C:\Users\Archibald Thornburnt\.appcelerator\appcd\node\v8.9.1\win32\x64\node.exe 2017-11-27T13:32:59.227Z appcd:nodejs Downloading https://nodejs.org/dist/v8.9.1/node-v8.9.1-win-x64.zip => C:\Users\ARCHIB~1\AppData\Local\Temp\node-v8.9.1-win-x64.zip 2017-11-27T13:32:59.227Z appcd:dispatcher Searching for route handler: /appcd/config/network 2017-11-27T13:32:59.351Z appcd:dispatcher Route not found: /appcd/config/network 2017-11-27T13:33:00.053Z appcd:request GET https://nodejs.org/dist/v8.9.1/node-v8.9.1-win-x64.zip 200 (16.11 MB) 2017-11-27T13:33:01.819Z appcd:nodejs Downloaded 16,892,891 bytes 2017-11-27T13:33:01.819Z appcd:nodejs Creating C:\Users\Archibald Thornburnt\.appcelerator\appcd\node\v8.9.1\win32\x64 2017-11-27T13:33:01.819Z appcd:nodejs Extracting zip file: C:\Users\ARCHIB~1\AppData\Local\Temp\node-v8.9.1-win-x64.zip 2017-11-27T13:33:01.850Z appcd:nodejs Found node executable (23,089,816 bytes) 2017-11-27T13:33:02.116Z appcd:nodejs Spawning: C:\Users\Archibald Thornburnt\.appcelerator\appcd\node\v8.9.1\win32\x64\node.exe --max_old_space_size=3000 --inspect """"C:\Users\Archibald Thornburnt\.appcelerator\install\7.0.0-master.44\package\node_modules\appcd-core\dist\main.js"""" # {""""stdio"""":[""""inherit"""",""""inherit"""",""""inherit"""",""""ipc""""]} ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-192","11/28/2017 04:32:04",1," ""appc appcd exec /system-info/1.x/info"" command doesn't respond with 1.0.0-23 "" """"appc appcd exec /system-info/1.x/info"""" command doesn't respond with version 1.0.0-23 Please find the attached dump file. [^appcd_dump_master48.json] """," $ appc appcd exec /system-info/1.x/info Appcelerator Command-Line Interface, version 7.0.0-master.48 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-193","11/28/2017 04:45:04",8,"Failed to start the Appc Daemon """"""Failed to start the Appc Daemon"""" message shown when I start a daemon. Looks like it's showing a wrong message when the daemon is already running. """," ITEM-AX40113:titanium_studio kkolipaka$ appc appcd start Appcelerator Command-Line Interface, version 7.0.0-master.48 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Failed to start the Appc Daemon ITEM-AX40113:titanium_studio kkolipaka$ appc appcd start --debug Appcelerator Command-Line Interface, version 7.0.0-master.48 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Starting inspector on 127.0.0.1:9229 failed: address already in use Failed to start the Appc Daemon ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-195","11/28/2017 05:26:14",1,""" appc appcd exec start"" not working anymore ""{{appc appcd exec start}} not working anymore. """," $ appc appcd exec start Appcelerator Command-Line Interface, version 7.0.0-master.48 Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved. Not Found ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-196","11/28/2017 10:44:42",3,"appcd-core: Ensure the pid file always exists ""When the daemon is running, it creates a pid file in the appcd home dir. This is critical as it is used to determine if the daemon is running. If this file is deleted while the daemon is running, this can be problematic as the zombie daemon process will need to manually terminated by the user.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-198","11/28/2017 20:23:59",5,"Plugin config changes are not applied automatically ""The Android, Genymotion, iOS, and Windows plugins have config options that are loaded once when the plugins are started. If any plugin specific config options are changed, then do not take effect until the plugin(s) or the daemon is restarted. h4. Default config * plugins.autoReload ** appcd-plugin/src/external-plugin.js * plugins.defaultInactivityTimeout ** appcd-plugin/src/plugin.js * server.agentPollInterval ** appcd-core/src/status-monitor.js ** appcd-plugin/src/external-plugin.js h4. appcd-plugin-android * android.ndk.searchPaths ** appcd-plugin-android/src/android-info-service.js * android.sdk.searchPaths ** appcd-plugin-android/src/android-info-service.js""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0 +"DAEMON-200","12/04/2017 09:33:32",8,"Android device not detected when plugged in after daemon start upon system restart ""Steps to Reproduce: 1. Restart the system and make sure to plug out connected android device 2. Start Daemon 3. Run the command """"/android/1.x/info"""". The devices section is blank as no device connected yet 4. Connect the device. 5. Again run the command """"/android/1.x/info"""". Actual Result: The device section still shows blank and does not show the connected device. The device is shown in """"appc ti info"""". Note: Repeating step 5 continues to give device as blank untill daemon is restarted. Find attached the daemon dump.""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-204","12/06/2017 15:51:17",1,"appcd-winreg: Add support for specifying registry hive architechture ""h5.Description From my research into windowslib v2 we're going to need to query the 32 bit registry hive architecture, this can be achieved by passing an opt.arch value to win-reg. If no value is specified we should default to null. This will also need to be added to appcd-detect""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +"DAEMON-209","12/11/2017 08:39:21",8,"Studio: iOS SDK home not found and NullPointerException ""I updated to Appcelerator Studio 5.0.0.201712081732 (official Release) and now the iOS SDK home is not found anymore. Android works. Can I do something to fix it? -- There's a bug in ioslib when it tries to build the list of teams. If one of the provisioning profiles does not have any teams, then the {{teamIds}} will be {{null}}. The code that builds the unique list of teams expects teams to be an array.""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-205","12/11/2017 15:22:57",3,"ioslib: Failing to parse certs if any cert has invalid unicode sequences ""It's possible for a cert to have a name that cannot be decoded to an unsupported character sequence. We need to wrap each cert parsing in a try/catch so that we just skip the cert and move on.""","",0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-206","12/11/2017 15:42:34",1,"Appcelerator Studio not detecting iOS after upgrading ""After upgrading Xcode, Appcelerator Studio and node, I can't run any application from Appcelerator Studio. The Run/Debug buttons have disappeared, whenever I click on anything concerning iOS, I get the error: !MESSAGE An internal error occurred during: """"Loading Provisioning Profiles..."""". !STACK 0 java.lang.NullPointerException Attached some of the weird things happening + the logs. I already tried uninstalling Appcelerator Studio, it didn't change anything (besides losing all of my configurations) ""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-207","12/11/2017 18:48:53",13,"""appc appcd restart"" does not restart the daemon but keeps on adding appcd-plugin-host processes which keep running & consume memory ""h5.Steps to reproduce: 1. Do a {{appc appcd restart}} in the command prompt. h5.Actual results: 1. The daemon does not restart (Not sure if it does restart internally, but gives wrong message that it didn't in the terminal). 2. It also keeps on adding {{appcd-plugin-host}} processes after each restart command run. These processes stay running & consume memory. (Attached a screenshot for reference). h5. Expected results: 1. Daemon should restart successfully every time command is run & should not keep on adding new appcd-plugin-host processes or kill/stop the old ones. """," ITEM-AX44549:QEUtility-Node lchoudhary$ ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ITEM-AX44549:QEUtility-Node lchoudhary$ appc appcd restart Appc Daemon already started ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-211","12/14/2017 00:20:40",3,"issues reflecting available iOS mobileProvision profiles ""Have downloaded new provisioning profiles as I have a new device to test/run the app in AdHoc mode. I have deleted the existing provisioning files and updated with the new ones (files in command line are the new ones). I have restarted Studio, XCode and the computer for changes to take effect but no success. I am unable to package apps using the new profiles as the certificates are still the old ones. 'Refresh' button doesn't seem to reflect the changes made to certificates and to provisioning Profiles.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-210","12/14/2017 20:11:19",5,"system-info: npm detection fails if unable to get npm prefix ""The system-info plugin is responsible for detecting npm. It does this by first locating the npm executable in the system PATH, then tries to get the """"prefix"""" by running {{npm prefix -g}}. However, if this should fail, then the prefix will be {{undefined}} and an exception is thrown when trying to expand the path.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-214","01/08/2018 16:24:47",13,"Create Appc Daemon plugin template ""We need a template for creating new appcd plugins.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-216","01/09/2018 20:15:34",3,"Plugins not ordered on status output ""The plugins in the output from {{appcd status}} are not ordered.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-217","01/09/2018 22:51:38",13,"appcd-plugin-titanium-sdk: Titanium info service ""Create the {{appcd-plugin-titanium-sdk}} plugin and the """"info"""" service. The """"info"""" service is to detect installed Titanium SDKs and modules.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +"DAEMON-218","01/11/2018 20:51:21",5,"appcd-detect: Subdirectories are not watched for changes that would make them valid ""When detecting things in a directory, if a subdirectory is created, but the criteria in that subdirectory does not exist yet, the subdirectory is never rescanned. This only applies when {{opts.watch=true}}.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-221","01/16/2018 16:40:44",5,"gulp upgrade: Run 'yarn' in top-level after updates and 'yarn upgrade' for each package ""The {{gulp upgrade}} task does a good job of updating all of the npm dependencies in each package's {{package.json}}, but the top-level doesn't actually install the new deps. I think we simply need to remove the call to {{lerna bootstrap}} and call {{yarn}}. Also, we never upgrade the dependencies of dependencies. We need to write temporary {{package.json}} files with no {{appcd-*}} deps, run {{yarn upgrade}}, then restore the original {{package.json}}. This will update the {{yarn.lock}} files.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-223","01/21/2018 20:20:22",5,"Plugin: Noisy warnings in log due to invalid appcd plugins ""The plugin system will check several directories to see if they are a appcd plugin, however if there are several non-appcd plugin modules, the log will be filled with a bunch of bogus warnings. We need to filter out these warnings so that we only error if we find an appcd plugin with invalid appcd settings.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-224","01/23/2018 17:24:47",5,"Subscriptions not terminated if connection is reset ""If a client goes away, the WebSocketServer can emit an error {{ECONNRESET}} instead of emitting an """"end"""" event. We need to add better logging and also listen for errors so that we can end the internal subscription stream.""","",0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-230","02/02/2018 16:42:06",3,"Stream stringified JSON data over IPC and response instead of JSON.stringify() ""When a plugin sends a JS object response over IPC or a service writes a JS object response over the WebSocket or HTTP response, the JS object is serialized using {{JSON.stringify()}}. However, {{JSON.stringify()}} eats up a ton of memory when the JS object is large. It would be much more efficient to stringify while writing to the stream. There are several npm packages that will stringify a stream, but they are geared towards each write being a small object which they just call {{JSON.stringify()}} on it. What we need is transforming stream that does stringifies the JS object on the fly. Stringify is not a complex algorithm, but would need to figure out how to handle Node specific objects like {{Buffer}}.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-232","02/08/2018 17:49:54",13,"FSWatcher: Events relating to permission changes to a folder are dropped on Windows ""h5.Description In DAEMON-222 changed were made to prevent unnecessary change events (a child item changing for example) on a folder bubbling up, which had the side-effect of causing any change events to not fire for a folder on Windows. The current solutions for tracking information through fs.Stats is lightweight on Windows a potential native module (https://github.com/xxoo/node-fswin) was found but the heaviness of using this module wasn't wanted. This is more than likely going to need to be sovled in the future It's probable that issues relating to permissions will be prevalent on unixy systems too h5.Steps to repro TODO""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-237","02/15/2018 15:04:55",8,"Create Appc Daemon 1.1.0 release notes ""Need to go through the appc-daemon repo and all plugins and write up release notes for v1.1.0.""","",0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-238","02/16/2018 04:22:57",3,"appcd-util: Add ability to cancel a debounce ""{{debounce()}} uses a {{setTimeout()}} that has no way to be cancelled. This becomes a problem if you are debouncing events for something that you have shutdown.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +"DAEMON-239","02/16/2018 04:27:01",5,"appcd-plugin: Scheme needs to cancel debounced scheme change events on shutdown ""When the PluginManager shuts down, it unregisters all plugin paths and the scheme associated with the plugin path. If it's shut down while a scheme's debounced change event is pending, things go haywire. The scheme {{destory()}} method needs to call the {{cancel()}} method introduced by DAEMON-238.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-241","03/08/2018 16:36:15",5,"Telemetry: Events are being sent using the incorrect guid ""h5.Description Currently the daemon defaults to preproduction for the telemetry. After some discussions it was decided that we need to not have a concept of preproduction and instead do the following * Remove preprod * Remove prod, put into default.js * Add deploytype to the analytics payloads * In the gulp scripts, we should set the telemetry environment on start * Document the variable * Validate that the analytics being sent are shown on dashboard ""","",0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-242","03/09/2018 04:34:12",5,"appcd: Global options not displayed on command help ""Global options should be displayed on the help screen for individual commands, but it's not. Global options are present above. Global options are not displayed enough. """," $ appcd --help Usage: appcd [options] Commands: config get and set config options dump dumps the config, status, health, and debug logs to a file exec connects to the Appc Daemon and executes the request logcat streams Appc Daemon debug log output restart stops the Appc Daemon if running, then starts it start starts the Appc Daemon if it's not already running status displays the Appc Daemon status stop stops the Appc Daemon if running Global options: --config= serialized JSON string to mix into the appcd config --config-file= path to a appcd JS config file --no-colors disables colors -h, --help displays the help screen -v, --version outputs the appcd version $ appcd start --help Usage: appcd start [options] starts the Appc Daemon if it's not already running start options: --debug don't run as a background daemon ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-244","03/14/2018 16:05:04",8,"appcd-nodejs: Add mechanism for removing old Node.js executables ""We would like to upgrade the Node.js version of the Appc Daemon, but everytime we do, it will download a new Node.js executable. The problem is we do not want to end up with dozens of Node.js executables. We need a way of timestamp when a specific version of Node.js was last run. Then {{appcd-nodejs}} needs a service that uses a {{setTimeout()}} that periodically archives/deletes executables that haven't been used for some period of time.""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-245","03/15/2018 06:23:33",8,"Upgrade to latest babel packages ""Update the daemon's babel dependencies to the latest and greatest.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-246","03/22/2018 15:54:21",5,"appcd-plugin-titanium-sdk: Split info service into sdk and module services ""We need to split the info service into distinct sdk and module services so that it becomes more logical when we add more functionality for sdks and modules.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +"DAEMON-247","03/23/2018 05:50:02",13,"appcd-plugin-titanium-sdk: Add install, uninstall, and search ""Now that the Titanium SDK plugin has a """"sdk"""" service that lists all installed Titanium SDKs, we need the ability: * To search for available SDKs to download (by name or branch) * Download and install an SDK from an Appc server * Download and install an SDK from an arbitrary URL * Install an SDK from a local zip file * Uninstall a SDK""","",1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +"DAEMON-248","03/30/2018 04:12:04",8,"Allow arbitrary metadata to be added to error objects ""As the daemon routes errors from a plugin to the core or from the core over a WebSocket, errors are treated special so that can recreate the error as a real Error object whenever coming for another context. The problem is error properties are whitelisted and some are computed (getters). All error handling needs to be cleaned up so that we can pass along arbitrary values added to the original error object. When {{appcd exec}} is returned an error, the error should be stringified to reveal all properties including the hidden error object properties.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-249","04/09/2018 12:18:58",3,"appcd-plugin-android: Genymotion emulators not reloaded on change ""h5.Description When making changes to genymotion emulators they are not reloaded under the {{/android/latest/info/emulators}} endpoint, however they are reloaded under the {{/genymotion/latest/info/emulators}} endpoint. It looks like we just need to include the vbox config path in the watch paths h5.Steps to reproduce * Start the daemon {{appcd start}} * Call {{appcd exec /android/latest/emulators}} * Either add or remove a genymotion emulator * Call {{appcd exec /android/latest/emulators}} * Call {{appcd exec /genymotion/latest/emulators}} h5.Actual Genymotion emulator not changed in the android endpoint, it is in the genymotion endpoint h5.Expected Should be changed in both""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-250","04/09/2018 15:02:30",3,"@appcd/plugin-ios: New iOS simulator runtimes are not picked up after install ""h5.Description *This is probably an improvement as I can't find any reference to us currently attempting to do this* If I install a new iOS simulator runtime in xcode, then the daemon will not pick it up. Looking through the code, I think we need to set up a watcher on [xcode.globalSimProfilesPath|https://github.com/appcelerator/ioslib/blob/6189855ebc055f85957b93bf4bbe595189607396/src/xcode.js#L29] in ioslib and rescan xcodes and simulators on change. h5.Steps to reproduce * Start the daemon {{appcd start}} * Call the ios info endpoint for xcode info {{appcd exec /ios/latest/info/xcode}}, make note of the simRuntimes property * Install a new sim runtime through Xcode (Xcode->Preferences->Components) * When finished call the ios info endpoint again, noting the simRuntimes property for the xcode you installed the runtime in h5.Actual No new runtime is detected h5.Expected New runtime should be detected""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-251","04/11/2018 21:51:49",5,"appcd-plugin: Plugin info not updated when package.json is changed ""Once the plugin system detects and registers a plugin, it doesn't reload the plugin information when the package.json is changed. If the package.json is modified, the plugin should be stopped. Furthermore, if the package.json is not valid JSON, then it should also be unregistered.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-252","04/12/2018 21:17:21",8,"Android: Daemon does not detect addition/deletion of genymotion emulator's immediately ""Does not appear to be a regression. Seen in 1.0.1 as well. h5.Steps to reproduce: 1. Add a 2-3 genymotion emulator in the genymotion app. 2. Run {{appc appcd exec /android/latest/info/emulators}}. 3. Repeat the steps after deleting 2-3 genymotion emulators. h5.Actual result: 1. Appc daemon does not pick up the changes to genymotion immediately for both addition & deletion scenarios but, does after an {{appc appcd restart}}. h5.Expected results: 1. Appc daemon should pickup the changes immediately.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-253","04/13/2018 23:04:37",5,"Paths of interest should only be watched once ""The quick and dirty {{watch()}} method used in the Android and iOS appcd plugin info service will record all active fs watch subscription ids, re-watch all paths of interest, then unwatch the original subscription ids. This works, but can lead to fs events being lost. This issue was discovered while fixing DAEMON-252.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-255","04/25/2018 15:42:54",5,"Appcelerator Studio not detecting android emulator and emulator doesn't come up on windows 7 ""Hello, We have an Enterprise customer who is facing an issue with Appcelerator Studio. Appcelerator Studio not detecting android emulator and emulator doesn't come up on windows 7. We have attached the screenshot, Studio Diagnostic log and *appc ti setup check* log file. If any others information needed please let us know. Thanks""","",0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-256","05/15/2018 21:50:58",13,"Update appcd to latest cli-kit and export CLI definintion ""cli-kit now allows for extensions and appcd needs to export its CLI definition to be consumable by other cli-kit enabled CLI's.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-258","05/23/2018 16:48:35",3,"appcd-gulp: Replace del.sync() with fs.removeSync() ""Since we already depend on {{fs-extra}}, just use it's {{fs.removeSync()}} function instead of pulling in {{del}}.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +"DAEMON-260","06/26/2018 04:47:14",5,"Android configuration issues with the Studio 5.1.0 ""Hi all. I am having issues with Studio on my Mac. It seems to randomly not know that I have Android SDKs installed. It worked last week. Just this morning, I start up studio and on the dashboard I see that Android is ready to go. Then an few seconds later it changes to grayed out and the button says download. I click download and run the install - when I do it recognizes that I already have some versions of the SDK installed. But once through the install process, the problem still exists. I have been doing this all morning. An interesting point is that one of the times I did this process, it worked and I saw the emulators that I have always had available in Studio. Also note that the preferences pane in Studio sometimes shows that it has found the SDKs and the emulators dropdown is populated, but most of the time it looks like the attached screenshot. Any help would be greatly appreciated as I am unable to do Android mobile demonstrations and I have several in the near future. Thanks in advance.""","",0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-263","09/28/2018 16:02:34",2,"appcd-core: Add AMPLIFY CLI version to telemetry ""Add AMPLIFY_CLI env var to the telemetry payload.""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-265","10/22/2018 16:18:29",3,"appcd-plugin: Expose services in plugin info ""Wouldn't it be cool if plugin info included a list of service endpoints!?""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-266","10/25/2018 14:22:51",8,"appcd exec doesn't properly handle streamed responses ""There is an issue where non-subscription based responses are not being terminated when finished. The problem stems from the {{WebSocketSession}} not properly sending a {{fin: true}} on the last message and the client not handling the last message in the request.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-267","10/25/2018 17:05:11",1,"Investigate possibility of bi-directional websocket requests "".""","",0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-270","01/24/2019 19:45:04",5,"Appcd Deamon not working ""*Steps To Reproduce:* 1.Run appcd command in terminal *Expected:* Daemon should be restarted *Actual:* The daemon refuses to start and throws error An uncaught exception was thrown! Cannot destructure property `filesize` of 'undefined' or 'null'. Cannot destructure property `filesize` of 'undefined' or 'null'. *Note1:* For me when I changed the cli to 7.0.9 ,it worked fine. *Note 2:* For Josh Quick ,this happens with CLI v7.0.9 also and he tried with node v8.9.3 and v10.15.0 ​ It also causes Appc Studio to beach ball forever"""," appc appcd restart ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-271","02/14/2019 21:13:20",5,"Error streaming object responses to HTTP clients ""When a request is made to a service from an HTTP client, such as {{curl}}, that streams an object response, the dispatcher context's response stream is eventually piped into Koa's HTTP server's response stream which expects streamed chunks to be either strings or buffers. When an object is streamed, an error is thrown. The solution is to stringify the object before it gets piped to the server response.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-272","02/14/2019 23:28:36",5,"appcd-subprocess: Remove HTTP source check ""The {{SubprocessManager}} has a false security measure where only requests from internal routes and plugins and requests from WebSockets can spawn commands. Requests from HTTP are forbidden. Since WebSockets requests are essentially HTTP requests, there's no point blocking HTTP requests. The daemon's web server listens on localhost only, so there's no way for an outside actor to spawn a command. To make things worse, the check to see if the source is indeed """"http"""" is broken. It checks if {{ctx.request.source}} is """"http"""" when it should be checking {{ctx.source}}. This restriction is pointless and does not work. It should just be removed.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-273","04/02/2019 08:00:04",8,"appcd-plugin: Tunnel messages missing dispatcher context props ""Plugins run in a child process and communicate with a parent process using an IPC-based tunnel. However the tunnel does not translate over the {{headers}} and {{source}} from a {{DispatcherContext}} instance. Instead of passing the {{DispatcherContext}}'s {{request}} property, the tunnel needs to step up one level and pass the {{headers}}, {{path}}, {{request}} (formerly """"data""""), and {{source}}.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-274","04/03/2019 21:29:42",8,"appcd-config: Added support for config layers to be used by plugins ""Plugin configs are loaded and mixed with the global config, but it's merged at a global level and once merged, remains merged until the daemon is stopped. It also doesn't namespace the plugin configs. To solve this, {{appcd-config}} needs the ability to define config layers. There is a default root layer, but then each registered config file from plugin is a new layer. These plugin config layers are namespaced so that they don't conflict. Note that this does not affect the user-defined config which overlays everything.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-275","04/30/2019 06:15:11",5,"appcd-gulp: Add Node.js 12 babel conf ""Node.js 12 ships with V8 that supports new JavaScript features that do not require transpilation. Among the new features are class fields. Node 12 also has support for modules, though this may be a larger scope than simply removing ES6 module transpilation.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +"DAEMON-276","05/26/2019 13:28:52",5,"Deprecate appcd-winreg ""Now that {{winreglib}} is done, there is no need for {{appcd-winreg}}, so mark the npm package as deprecated and update the following packages to use {{winreglib}} instead: * {{appcd-detect}} * {{appcd-response}} * {{appcd-machine-id}}""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0 +"DAEMON-277","05/28/2019 19:22:22",2,"appcd-plugin: Remove appcd-winreg in appcd-plugin@4.0.0 ""{{appcd-winreg}} is deprecated and plugins should either migrate to {{winreglib}} or explicitly depend on {{appcd-winreg}}.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-278","06/04/2019 17:49:36",1,"windowslib: Add ability to get remote device info ""Microsoft made a handy API we should use: https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-api-core.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +"DAEMON-280","06/05/2019 16:33:42",13,"appcd-default-plugins: Bundle multiple plugin versions ""Now that there are multiple major versions of appcd plugins, we need figure out a way to ship them. Some tools depend on v1, others on v2. We need both. Ideally plugins would be installed via the AMPLIFY Package Manager, but we're not quite there yet. So, it makes sense to use {{appcd-default-plugins}} as the package. The appcd plugin system does support a nested plugin directory scheme, but this is incompatible with {{node_modules}}. So we'll likely need a pre-publish task that organizes the files appropriately and efficiently.""","",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-281","06/07/2019 14:44:35",8,"appcd-plugin@1.4.0 is not compatible with daemon@1.x ""h5.Description appcd-plugin@1.4.0 is causing plugins to error on startup when using appc daemon 1.x (the appc cli). I have not got any useful logs for this yet. I have rolled back the latest tag for appcd-plugin to 1.3.0 to prevent new users having any issues cc [~cb1kenobi]""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-282","08/14/2019 14:25:46",5,"iOS: Daemon fails to detects iOS 13 simulators ""h5.Description When using appcd 1.1.3 the ios plugin fails to detect iOS 13 simulators installed via xcode 11. This is fixed in ioslib 3 (and the upcoming v2 of appcd-plugin-ios) but we need to cherry pick the ioslib changes back to v2 to ensure appcd 1.1.3 works for ios 13/xcode 11 release""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +"DAEMON-283","08/28/2019 16:43:07",2,"Daemon reports iOS Simulator listing as only 9.3 devices with multiple Xcode's, sim versions installed ""I'm trying to test debugger changes within Studio around iOS 13. However, the simulator listing displayed shows the list of 9.3 simulators only. I have Xcode 10.3 and 11 beta 6 installed. 11 beta 6 is selected. The JSON info object returned by the daemon only has the 9.3 iOS simulators listed within it. (though the Xcode listings shows 12.4 and 13.0 in it's sim/sdk version listings) As a result, trying to launch to any of the listed simulators ends up failing (around Xcode 10.3 Eula not being accepted - which is presumably related to Xcode 11 being the selected/used one). Here's the result of running {{ti info}}: """," Xcode 11.0 (build 11M392q) - Xcode default Install Location = /Applications/Xcode-11.Beta.6.app/Contents/Developer iOS SDKs = 13.0 iOS Simulators = 13.0 Watch SDKs = 6.0 Watch Simulators = 6.0 Supported by TiSDK 8.2.0.v20190827073118 = yas EULA Accepted = yas Teams = none 10.3 (build 10G8) Install Location = /Applications/Xcode-10.3.app/Contents/Developer iOS SDKs = 12.4 iOS Simulators = 12.4 Watch SDKs = 5.3 Watch Simulators = 5.3 Supported by TiSDK 8.2.0.v20190827073118 = yas EULA Accepted = no Teams = none iOS Keychains login.keychain-db = /Users/cwilliams/Library/Keychains/login.keychain-db System.keychain = /Library/Keychains/System.keychain iOS Development Certificates /Users/cwilliams/Library/Keychains/login.keychain-db Christopher Williams (8845U7T743) Not valid before = 1/24/2019 10:01 AM Not valid after = 1/24/2020 10:01 AM iOS App Store Distribution Certificates None Apple WWDR Certificate Apple WWDR = installed Development iOS Provisioning Profiles Chris Barber Dev Testapp3 UUID = 9d44fc65-2d11-476b-824c-7e8fa6deef2a App Prefix = WP4952RUHJ App Id = com.appcelerator.testapp3 Date Created = 10/31/2018 12:19 PM Date Expired = 10/31/2019 12:19 PM Managed = No Chris Williams Dev Profile UUID = 23cc7809-fbf5-47d8-a6e2-6a7e865294b6 App Prefix = 6QZBVXG979 App Id = * Date Created = 12/7/2018 2:57 PM Date Expired = 12/7/2019 2:57 PM Managed = No Chris Williams Dev Profile UUID = fb211c43-f6e4-4efc-9ab6-590393ddf15a App Prefix = 6QZBVXG979 App Id = * Date Created = 1/24/2019 10:27 AM Date Expired = 1/24/2020 10:27 AM Managed = No iOS Team Provisioning Profile: com.appcelerator.titanium UUID = ce840fb3-b882-4468-8a97-294b990a3206 App Prefix = B8MTC6CZTL App Id = com.appcelerator.titanium Date Created = 1/24/2019 10:12 AM Date Expired = 1/24/2020 10:12 AM Managed = Yas and is NOT compatible with Titanium vvs dev provisioning UUID = adf28d2a-ab3d-4130-8cfa-742af67c001a App Prefix = WP4952RUHJ App Id = com.appcelerator.vvs Date Created = 11/15/2018 11:56 PM Date Expired = 11/15/2019 11:56 PM Managed = No App Store Distribution iOS Provisioning Profiles None Ad Hoc iOS Provisioning Profiles vvs Adhoc distribution UUID = 68bd0910-dd27-4f99-984b-c61a4ce71062 App Prefix = WP4952RUHJ App Id = com.appcelerator.vvs Date Created = 11/16/2018 4:39 AM Date Expired = 11/16/2019 4:27 AM Managed = No Enterprise Ad Hoc iOS Provisioning Profiles None iOS Simulators 9.3 iPad 2 (ipad) UDID = 7E4B0B67-6FFA-4E35-AEDB-B25C8E1400C6 Supports Watch Apps = no iPad Retina (ipad) UDID = AF4E8716-F8B0-4F5A-8EE1-52595D64597A Supports Watch Apps = no iPad Air (ipad) UDID = E9C9953A-5F50-4ACC-ACC1-05FF6A7C3D7C Supports Watch Apps = no iPad mini 2 (ipad) UDID = CF24D685-20FD-42AC-A19F-D56F954FEED7 Supports Watch Apps = no iPad mini 3 (ipad) UDID = 4B698EF4-4D7E-4D68-B035-6245264C1896 Supports Watch Apps = no iPad mini 4 (ipad) UDID = 235C38DE-00DD-4B6F-A2DF-5E91C5D993F6 Supports Watch Apps = no iPad Air 2 (ipad) UDID = 1FD5F0BC-DA25-4C68-9EBD-053CEBB78854 Supports Watch Apps = no iPad Pro (12.9-inch) (ipad) UDID = 89BCA826-1861-427C-83C4-5315D7356674 Supports Watch Apps = no iPhone 4s (iphone) UDID = 6562C11B-28F8-45FD-A60A-C5C27DB61F7D Supports Watch Apps = no iPhone 5 (iphone) UDID = 78B1AFE3-18D0-468E-BD8F-A1EE9280462C Supports Watch Apps = yas iPhone 5s (iphone) UDID = F4E14045-B317-483F-8669-142C7C62D7A6 Supports Watch Apps = yas iPhone 6 Plus (iphone) UDID = 7354452A-0B5E-4AEF-A604-D72B8C6337D7 Supports Watch Apps = yas iPhone 6 (iphone) UDID = 176863A2-71EA-4260-BF22-5D9AEECAEFAC Supports Watch Apps = yas iPhone 6s (iphone) UDID = 5E14BAD5-B71B-4A5D-8F19-355BD7CB500C Supports Watch Apps = yas iPhone 6s Plus (iphone) UDID = 81817A3A-0DC5-4DCD-BB02-9C9B64D48B19 Supports Watch Apps = yas iPhone SE (iphone) UDID = E4C345E6-F44B-4081-AA53-2B389ECD1834 Supports Watch Apps = yas 13.0 iPad mini (5th generation) (ipad) UDID = 7A5F4D21-6C2A-4833-883C-A1268F0AEAAD Supports Watch Apps = no iPad Air (3rd generation) (ipad) UDID = 55F85749-4C87-4BBF-A0AE-2D7F9634BA88 Supports Watch Apps = no iPad mini 4 (ipad) UDID = 0592AD71-0E03-4D09-9C64-191879B315E4 Supports Watch Apps = no iPad Air 2 (ipad) UDID = 3A0DED6A-131D-47A8-8371-26D872F9DA50 Supports Watch Apps = no iPad (5th generation) (ipad) UDID = 2B29AC6D-8469-4BDA-81F7-EF18AE09123A Supports Watch Apps = no iPad Pro (9.7-inch) (ipad) UDID = 4BFA3613-08B8-46D5-BCAC-78039408EA2A Supports Watch Apps = no iPad Pro (12.9-inch) (ipad) UDID = 868DFF1A-14B3-4777-A869-C224DB03FDB9 Supports Watch Apps = no iPad Pro (12.9-inch) (2nd generation) (ipad) UDID = FB3F1436-F508-4506-935D-DAE52D471F62 Supports Watch Apps = no iPad Pro (10.5-inch) (ipad) UDID = 48E2DACC-8088-498F-AE3A-6AC57765F848 Supports Watch Apps = no iPad (6th generation) (ipad) UDID = 6D93B6DB-0DD7-4B37-B457-0014A26541BC Supports Watch Apps = no iPad Pro (11-inch) (ipad) UDID = 0598FBBD-2E5C-4D84-A740-00F82127606C Supports Watch Apps = no iPad Pro (12.9-inch) (3rd generation) (ipad) UDID = 3CFD35BC-000A-4DDA-8D6F-12EA0E3D65AD Supports Watch Apps = no iPhone 8 (iphone) UDID = 7103E089-D840-4E38-880F-F866F82C11BB Supports Watch Apps = yas iPhone 8 Plus (iphone) UDID = 82158C5A-DF40-4F5B-87B4-D7E1D89B481B Supports Watch Apps = yas iPhone X (iphone) UDID = EB7D2396-3C3E-49F7-855A-A7048F711D85 Supports Watch Apps = yas iPhone Xs (iphone) UDID = DD79AF7C-958B-42DA-AF87-D18DCBBD445F Supports Watch Apps = yas iPhone Xs Max (iphone) UDID = A1CD9662-68BE-41E6-B34C-3A5F5D6A5FB4 Supports Watch Apps = yas iPhone Xʀ (iphone) UDID = C7B6BD99-6789-4612-8876-9C3D46D03C21 Supports Watch Apps = yas iPhone 6s (iphone) UDID = D85DB69F-33C5-400B-A794-751EF4E7AA12 Supports Watch Apps = yas iPhone 6s Plus (iphone) UDID = F34F3DEE-2D3C-438A-AB5A-21D18EB27F74 Supports Watch Apps = yas iPhone SE (iphone) UDID = C9D04CCE-E8DD-4173-955B-E7EFC8C57D20 Supports Watch Apps = yas iPhone 7 (iphone) UDID = 30CE1F77-B0A3-4886-BBA8-6F1AFD7EA3FF Supports Watch Apps = yas iPhone 7 Plus (iphone) UDID = 7279613C-5A28-4766-93FC-4752B305BDB3 Supports Watch Apps = yas WatchOS Simulators 6.0 Apple Watch Series 2 - 38mm (watch) UDID = A7A2BBE8-E649-403B-B54C-0B6CD90F6E38 Apple Watch Series 2 - 42mm (watch) UDID = 5D0D7BA0-14EE-41D7-8E4A-CC1A722DAB96 Apple Watch Series 3 - 38mm (watch) UDID = FD47DD68-833B-43BB-8259-4289D9CB61FC Apple Watch Series 3 - 42mm (watch) UDID = 17301FDF-385A-4450-A23D-51F65A8E2571 Apple Watch Series 4 - 40mm (watch) UDID = F83123F5-681F-4286-8F73-3B700A49DB4E Apple Watch Series 4 - 44mm (watch) UDID = B566DFDB-A2E0-4540-BA0A-B7157E6E75FE Connected iOS Devices None iOS Issues ! Unable to find any valid iOS distribution provisioning profiles. This will prevent you from packaging apps for AppStore distribution. You will need to log in to http://appcelerator.com/ios-dist-certs with your Apple Developer account, then create, download, and install a profile. ! Unable to find any valid iOS production distribution certificates. This will prevent you from packaging apps for distribution. You will need to log in to http://appcelerator.com/ios-dist-certs with your Apple Developer account, then create, download, and install a certificate. ! Multiple Xcode versions have not had their EULA accepted: 10.3 (/Applications/Xcode-10.3.app) Launch each Xcode and accept the license. ",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-284","09/17/2019 17:14:55",8,"Fix offline support ""The daemon doesn't work as expected without an Internet connection. Problems arise with installing default plugins and sending telemetry info. There may be other areas.""","",0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-285","09/24/2019 11:18:38",13,"Unsubscribe in external plugin service dispatcher not called when forcefully closing connection ""Canceling a subscription to a service dispatcher in external plugins won't properly trigger the cleanup logic since the plugin isn't notified about the end of response stream like it is happening in internal plugins. *Steps to reproduce the behavior* # Open a subscription to any internal plugin, e.g. {{appcd exec /appcd/status/system/memory --subscribe}}, and then cancel the subscription by CTRL+C # Notice that the subscription will be properly cleaned up as indicated by the following logs: # Now, do the same for an external plugin, e.g. run {{appcd exec /titanium/latest/sdk --subscribe}} and then cancel the subscription by CTRL+C # No subscription cleanup is done as you can see in the following logs *Actual behavior* Subscriptions in external plugins are not properly cleaned up and a service dispatchers {{onUnsubscribe}} and {{destroySubscription}} are not being called. *Expected behavior* A subscriptions cleanup logic is properly being executed for external plugins."""," 2019-09-24T10:15:47.154Z appcd:http:webserver 127.0.0.1:59795 disconnected 2019-09-24T10:15:47.155Z appcd:http:webserver 127.0.0.1:59795 closed WebSocket 2019-09-24T10:15:47.155Z appcd:service-dispatcher cleanup 2019-09-24T10:15:47.155Z appcd:service-dispatcher Stream ended, cleaning up 2019-09-24T10:15:47.155Z appcd:service-dispatcher [782e2d4a-b194-4f9a-806f-9b3cfc47b2f3] Unsubscribing: system.memory 2019-09-24T10:15:47.155Z appcd:service-dispatcher [782e2d4a-b194-4f9a-806f-9b3cfc47b2f3] No more listeners, removing descriptor: system.memory 2019-09-24T10:15:47.156Z appcd:service-dispatcher [782e2d4a-b194-4f9a-806f-9b3cfc47b2f3] Calling service's destroySubscription(): system.memory 2019-09-24T10:15:47.156Z appcd:data-service-dispatcher Removing gawk watch 2019-09-24T10:15:47.156Z appcd:core:websocket-session stream ended 2019-09-24T10:15:47.157Z appcd:core:websocket-session [0] 127.0.0.1:59795 [finish] /appcd/status/system/memory 200 2874ms 2019-09-24T10:10:04.797Z appcd:http:webserver 127.0.0.1:59613 disconnected 2019-09-24T10:10:04.797Z appcd:http:webserver 127.0.0.1:59613 closed WebSocket 2019-09-24T10:10:04.798Z appcd:core:websocket-session stream ended 2019-09-24T10:10:04.798Z appcd:core:websocket-session [0] 127.0.0.1:59613 [finish] /titanium/latest/sdk 200 7006ms ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-287","10/24/2019 18:22:25",5,"Remove winreglib dependency from appcd-response ""appcd-response is used by several packages such as appcd-subprocess which is used by non-appcd projects. appcd-response needs to detect the locale in order to display the appropriate message. On Windows machines, the locale is retrieved from the Windows Registry. Previously, appcd-response@1.x uses appcd-winreg (now deprecated) which in turned used winreg to simply spawn the {{reg.exe}} command and query the registry. When appcd-winreg was sunset, it was replaced with the new winreglib, a native Node.js addon. Now when a non-appcd project uses something like appcd-subprocess, it will depend on winreglib and that complicates install issues for specific environments such as Atom plugins on Linux. The solution here is to replace appcd-response's winreglib dependency with two simple {{spawnSync()}} calls.""","",0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-288","10/25/2019 20:26:07",8,"SIGINT triggered in core process ""When a process spawns {{appcd start}}, then that process is interrupted via CTRL-C (aka SIGINT), then the core daemon process receives the SIGINT also and shutsdown. The daemon should not be receiving the SIGINT.""","",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-306","11/18/2019 20:05:52",8,"iOS info missing watch info in simRuntimes with the cli 7.1.2-master.6 ""When testing via studio the watch simulators were not shown when using Appc CLI 7.1.2-master.6. It works fine with older appc cli builds. Running the command """"appc appcd exec /ios/latest/info"""" noticed that the simRumtimes are missing the info related to watch.""","",0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-307","12/06/2019 19:31:38",5,"Plugins not installed if access denied to yarn links directory ""If the yarn links directory exists, but access is denied, it blows up and the daemon does not properly install any plugins. Reading the yarn links directory is an optional check and thus we simply need to gracefully handle access and continue to install the plugins."""," 2019-12-06T17:56:15.849Z appcd:default-plugins Found yarn: /Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/.bin/yarn 2019-12-06T17:56:15.881Z appcd:default-plugins Found lerna: /Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/.bin/lerna 2019-12-06T17:56:15.886Z appcd:server warn { Error: EACCES: permission denied, scandir '/Users/lchoudhary/.config/yarn/link' 2019-12-06T17:56:15.886Z appcd:server warn at Object.readdirSync (fs.js:790:3) 2019-12-06T17:56:15.886Z appcd:server warn at GlobSync._readdir (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/glob/sync.js:288:41) 2019-12-06T17:56:15.886Z appcd:server warn at GlobSync._processReaddir (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/glob/sync.js:137:22) 2019-12-06T17:56:15.886Z appcd:server warn at GlobSync._process (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/glob/sync.js:132:10) 2019-12-06T17:56:15.886Z appcd:server warn at new GlobSync (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/glob/sync.js:48:10) 2019-12-06T17:56:15.886Z appcd:server warn at Function.globSync [as sync] (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/glob/sync.js:26:10) 2019-12-06T17:56:15.886Z appcd:server warn at /Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/lib/globule.js:94:17 2019-12-06T17:56:15.886Z appcd:server warn at /Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/lib/globule.js:29:32 2019-12-06T17:56:15.886Z appcd:server warn at arrayEach (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/node_modules/lodash/lodash.js:516:11) 2019-12-06T17:56:15.886Z appcd:server warn at Function.forEach (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/node_modules/lodash/lodash.js:9342:14) 2019-12-06T17:56:15.886Z appcd:server warn at processPatterns (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/lib/globule.js:25:5) 2019-12-06T17:56:15.886Z appcd:server warn at Object.globule.find (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/globule/lib/globule.js:93:17) 2019-12-06T17:56:15.886Z appcd:server warn at find (/Users/lchoudhary/.appcelerator/install/8.0.0-master.2/package/node_modules/appcd-default-plugins/dist/index.js:119:28) 2019-12-06T17:56:15.886Z appcd:server warn errno: -13, 2019-12-06T17:56:15.886Z appcd:server warn syscall: 'scandir', 2019-12-06T17:56:15.886Z appcd:server warn code: 'EACCES', 2019-12-06T17:56:15.886Z appcd:server warn path: '/Users/lchoudhary/.config/yarn/link' } ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-308","01/06/2020 18:42:07",8,"Plugin manager telemetry doesn't wait for initialization ""The {{PluginManager}} scans the initial plugin paths and then enables telemetry. The problem is detecting the plugin schemas is async and the {{PluginManager}} constructor does not properly block the enabling of telemetry events. This behavior is leading to events unnecessary telemetry events being generated during start for each plugin.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-309","01/07/2020 18:41:40",13,"Add appcd plugin API version ""The Appc Daemon's plugin system allows plugins to specify which appcd version they are compatible with, however we have to ship new plugins for each major plugin version whenever we bump the appcd major version regardless if the plugin system actually changed. Since the plugin system rarely changes, we shouldn't couple plugins with the appcd version, but rather a separate plugin API version. For example, the iOS appcd plugin 1.x is compatible with every appcd version, but iOS appcd plugin 2.x requires appcd version 3.x because of changes to appcd-detect that is passed into each plugin.""","",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-310","01/14/2020 10:22:10",8,"@appcd/plugin-android: Fails to start with Error: Recursively watching root is not permitted ""H5.Description When attempting to start the android plugin I'm getting the below error, this works fine on CLI 7.1.2 (plugin version 1.3.0/appcd version 1.1.3) and CLI 8.0.0-master.4 (plugin version 1.5.2/appcd 3.1.0) (note are we not choosing to lock down plugin versions per default-plugin release, this re-introduces the risk that we had previously worked to eliminate) h5.Steps to reproduce 1. Install appc cli 8.0.0-master.5 from preprod 2. Start the daemon {{appc appcd start}} 3. Call the android endpoints {{appc appcd exec /android/1.x/info}} and {{appc appcd exec /android/2.x/info}} h5.Actual Above error h5.Expected No error, android info should be returned"""," { """"stack"""": """"Error: Recursively watching root is not permitted\n at register (/Users/awam/git/appc-cli/node_modules/appcd-fswatcher/dist/fswatcher.js:967:10)\n at new FSWatcher (/Users/awam/git/appc-cli/node_modules/appcd-fswatcher/dist/fswatcher.js:893:19)\n at FSWatchManager.onSubscribe (/Users/awam/git/appc-cli/node_modules/appcd-fswatch-manager/dist/fswatch-manager.js:81:19)\n at FSWatchManager.subscribe (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/service-dispatcher.js:206:18)\n at FSWatchManager.handler (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/service-dispatcher.js:108:11)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:196:23)\n at Dispatcher.call (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:230:16)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:189:26)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:172:12)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:172:12)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:172:12)\n at dispatch (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:172:12)\n at Dispatcher.call (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:230:16)\n at Function.call (/Users/awam/git/appc-cli/node_modules/appcd-dispatcher/dist/dispatcher.js:84:26)\n at handler (/Users/awam/git/appc-cli/node_modules/appcd-plugin/dist/external-plugin.js:519:55)\n at EventEmitter.onMessage (/Users/awam/git/appc-cli/node_modules/appcd-plugin/dist/tunnel.js:92:4)"""", """"message"""": """"Recursively watching root is not permitted"""", """"status"""": 400, """"statusCode"""": """"400.1"""", """"type"""": """"error"""" } ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-313","02/06/2020 17:01:00",13,"Remove Genymotion ""The time has come to remove support for Genymotion. The Android emulator has matured and thanks to advances in virtualization technology, it is quite fast. Secondly, Genymotion is not free and it's not like they ever gave us any licenses. Thirdly, we don't want to maintain a second emulator technology, especially one that has only does x86 emulation and often causes incompatibility issues with Titanium native modules. 1. Remove the [code|https://github.com/appcelerator/appc-daemon/blob/bf20fec94c74e055e4359a8e123539054c4cb228/packages/appcd-core/src/server.js#L482-L486] in appcd-core that copies the Genymotion config from the Titanium CLI's config to the appcd config. Bump minor. 2. Deprecate [@appcd/plugin-genymotion|https://github.com/appcelerator/appcd-plugin-genymotion]. 3. Remove all references to Genymotion and VirtualBox in [@appcd/plugin-android|https://github.com/appcelerator/appcd-plugin-android]. Bump major. 4. Remove all references to Genymotion in [@appcd/plugin-system-info|https://github.com/appcelerator/appcd-plugin-system-info]. Bump major. 5. Remove all references to Genymotion and VirtualBox in [@appcd/plugin-titanium|https://github.com/appcelerator/appcd-plugin-titanium]. Bump major. Since we're removing data from the info, this is breaking change and everything (except appcd itself) must have a major version bump.""","",0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-314","02/07/2020 15:24:05",5,"Add plugin API version to appcd status ""It would be helpful if the appcd status also displayed the plugin API version.""","",0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-315","02/07/2020 16:04:26",5,"Docs: Appc Daemon releases with plugin API, Node versions ""Document Appc Daemon releases and their plugin API versions. For the meantime, this can go in the markdown docs in the repo.""","",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +"DAEMON-316","02/07/2020 16:35:29",8,"Docs: Generate release notes ""Each appcd package has a changelog, but there's no high-level release notes that consolidates the changelogs. It would be beneficial to have a tool that pulled determined Appc Daemon releases and merge the release notes per version.""","",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +"DAEMON-317","02/10/2020 14:55:03",8,"Titanium CLI: Call latest major version of Titanium appc plugin ""The Titanium appcd plugin ships with the Titanium CLI as well as the Appc Daemon default plugins (which is going to change). If the Titanium CLI references @appcd/plugin-titanium@1.1.0, but the default plugins references v1.2.0, then the Titanium CLI should call 1.2.0, not 1.1.0. To solve this, simply call the major version: """," `/titanium/${semver.major(packageJson.dependencies['@appcd/plugin-titanium'])}/` ",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +"DAEMON-319","02/11/2020 07:03:40",2,"appcd-core: Upgrade to latest Node.js 12 LTS release ""While the daemon supports Node 10, we should update the core to Node 12 so that we can use the latest features such as workers. Node.js doesn't gain us much as far as removing Babel transpilation. We could switch over to ES modules, but we still need to transpile for dynamic imports and optional chaining. We probably cannot remove Babel until Node 14 goes LTS in late 2020.""","",0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-322","02/11/2020 15:59:43",8,"androidlib: NDK side-by-side support ""*Summary:* As of 2019, Google introduced a new NDK """"side-by-side"""" feature which allows you to install multiple NDK versions under the Android SDK directory. All new NDK versions are downloaded to the side-by-side directory and it replaces the old """"ndk-bundle"""" directory. *Example:* The folder structure appear as follows on macOS... {{~/Library/Android/sdk/ndk/19.2.5345600}} {{~/Library/Android/sdk/ndk/20.1.5948922}} {{~/Library/Android/sdk/ndk/21.0.5935234}} {{~/Library/Android/sdk/ndk/21.0.6113669}} There will be an """"ndk"""" directory under the """"Android/sdk"""" directory. Each subdirectory under """"ndk"""" will be the version number of the installed NDK. *Old Behavior:* Before the NDK side-by-side feature existed, Android Studio used to install the NDK under the Android SDK directory as shown below. Updating the NDK version used to replace the old version. Android Studio no longer installs to this directory. {{~/Library/Android/sdk/ndk-bundle}} *To be done:* The CLI should search for the installed NDK directory in the following order. # The """"ANDROID_NDK"""" environment variable, if set. # The newest NDK side-by-side version subdirectory, if available. # The """"ndk-bundle"""" directory.""","",0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-326","02/13/2020 15:43:16",8,"@appcd/plugin-titanium: Add terminal session server with discovery endpoint ""The Titanium CLI needs bi-directional communication with the Titanium plugin, however the Appc Daemon dispatcher is not capable of supporting true bi-directional data flow, but rather just single request, multi-part responses. To work around this, we need the Titanium CLI to locate the Appc Daemon, start it, ensure the Titanium appcd plugin is registered, and call a terminal discovery endpoint. From there, the Titanium CLI will connect to the terminal session endpoint via a WebSocket.""","",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +"DAEMON-328","02/13/2020 22:45:40",3,"appcd-plugin: Registered plugins not sorted when retrieving status for semver range ""When getting the status of a plugin where the version is a semver range, it will scan all plugins for a match by name and version. The order of the registered plugins is whichever order they were loaded. The list of plugins must be sorted in order to deterministically find the plugin. If you have @appcd/plugin-titanium v1.6.0 and v1.8.1 installed, getting the status for {{^1.6.0}} should return v1.8.1. """," appcd exec /appcd/plugin/status/@appcd/plugin-titanium/^1.6.0 ",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-329","02/26/2020 23:13:24",8,"node_winreglib.node is not a valid Win32 application ""User installs Appc Daemon 3.2.0 with Node.js 10.13.0. When the daemon starts up, the Windows plugin cannot load winreglib: Note that winreglib uses N-API and is compatible with Node.js 10.2.0 and newer and that the Appc Daemon 3.2.0's core runs Node 10.16.3. This might be a Windows-only issue as Windows is general the only platform in which plugins are installed at daemon install time, Mac/Linux run into permission issues and have to resort to installing plugins at runtime. This behavior will change in DAEMON-311"""," { """"stack"""": """"PluginError: Failed to load plugin: \\\\?\\C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\winreglib\\build\\Release\\node_winreglib.node is not a valid Win32 application.\r\n\\\\?\\C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\winreglib\\build\\Release\\node_winreglib.node\n at Object.Module._extensions..node (internal/modules/cjs/loader.js:807:18)\n at PluginModule.load (internal/modules/cjs/loader.js:653:32)\n at Function.load (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\appcd-plugin\\dist\\plugin-module.js:71:11)\n at PluginModule.require (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\appcd-plugin\\dist\\plugin-module.js:142:23)\n at require (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\appcd-plugin\\dist\\plugin-module.js:181:36)\n at load (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\node-gyp-build\\index.js:21:10)\n at Object.apply (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\winreglib\\src\\index.js:2:46)\n at PluginModule._compile (C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\appcd-plugin\\dist\\plugin-module.js:196:19)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)\n at PluginModule.Module.load (internal/modules/cjs/loader.js:653:32)"""", """"message"""": """"Failed to load plugin: \\\\?\\C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\winreglib\\build\\Release\\node_winreglib.node is not a valid Win32 application.\r\n\\\\?\\C:\\Users\\Test\\.appcelerator\\install\\8.0.0-master.10\\package\\node_modules\\winreglib\\build\\Release\\node_winreglib.node"""", """"status"""": 400, """"statusCode"""": """"400.1"""", """"type"""": """"error"""" } ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +"DAEMON-330","02/26/2020 23:18:07",8,"Lerna cannot find Yarn when installing default plugins on Windows ""appcd-default-plugins can find Yarn, but Lerna cannot. Probably a bug that is easily reproducible on a clean Windows machine as a dev machine likely has Yarn already installed. System is running Node.js 10.13.0. Appc Daemon core is running Node.js 10.16.3. This ticket may moot with the new plugin management command (DAEMON-311) and the upgrade to Yarn 2 (DAEMON-318)."""," 2020-02-26T22:39:32.624Z appcd:default-plugins Found yarn: C:\Users\Test\.appcelerator\install\8.0.0-master.10\package\node_modules\.bin\yarn.cmd 2020-02-26T22:39:32.669Z appcd:default-plugins Found lerna: C:\Users\Test\.appcelerator\install\8.0.0-master.10\package\node_modules\.bin\lerna.cmd 2020-02-26T22:39:32.683Z appcd:default-plugins Found installed plugin @appcd/plugin-android@1.5.2 2020-02-26T22:39:32.685Z appcd:default-plugins warn Plugin directory name mismatch: @appcd/plugin-android-2_0_1@2.0.1 found in @appcd/plugin-android, invalidating... 2020-02-26T22:39:32.695Z appcd:default-plugins Found installed plugin @appcd/plugin-genymotion@1.6.1 2020-02-26T22:39:32.697Z appcd:default-plugins Found installed plugin @appcd/plugin-jdk@1.6.1 2020-02-26T22:39:32.698Z appcd:default-plugins warn Plugin directory name mismatch: @appcd/plugin-system-info-1_5_1@1.5.1 found in @appcd/plugin-system-info, invalidating... 2020-02-26T22:39:32.705Z appcd:default-plugins Found installed plugin @appcd/plugin-system-info@2.0.0 2020-02-26T22:39:32.706Z appcd:default-plugins Found installed plugin @appcd/plugin-titanium@1.8.1 2020-02-26T22:39:32.707Z appcd:default-plugins warn Plugin directory name mismatch: @appcd/plugin-windows-1_5_2@1.5.2 found in @appcd/plugin-windows, invalidating... 2020-02-26T22:39:32.714Z appcd:default-plugins Found installed plugin @appcd/plugin-windows@2.0.1 2020-02-26T22:39:32.898Z appcd:default-plugins warn Skipping incompatible plugin: @appcd/plugin-ios@^1.5.2 2020-02-26T22:39:32.903Z appcd:default-plugins Downloading @appcd/plugin-windows@1.5.2 2020-02-26T22:39:32.907Z appcd:default-plugins warn Skipping incompatible plugin: @appcd/plugin-ios@^2.0.2 2020-02-26T22:39:32.910Z appcd:default-plugins Downloading @appcd/plugin-android@2.0.1 2020-02-26T22:39:32.913Z appcd:default-plugins Downloading @appcd/plugin-system-info@1.5.1 2020-02-26T22:39:33.045Z appcd:default-plugins Writing plugins/package.json 2020-02-26T22:39:33.049Z appcd:default-plugins Writing plugins/lerna.json 2020-02-26T22:39:33.051Z appcd:default-plugins Plugins dir: C:\Users\Test\.appcelerator\appcd\plugins 2020-02-26T22:39:33.052Z appcd:default-plugins Executing: C:\Users\Test\.appcelerator\install\8.0.0-master.10\package\node_modules\.bin\lerna.cmd bootstrap --no-progress 2020-02-26T22:39:34.085Z appcd:default-plugins:lerna cli v3.20.2 2020-02-26T22:39:34.112Z appcd:default-plugins:lerna versioning independent 2020-02-26T22:39:34.200Z appcd:default-plugins:lerna bootstrap root only 2020-02-26T22:39:34.249Z appcd:default-plugins:lerna 'yarn' is not recognized as an internal or external command, 2020-02-26T22:39:34.251Z appcd:default-plugins:lerna operable program or batch file. 2020-02-26T22:39:34.254Z appcd:default-plugins:lerna lerna ERR! yarn install --mutex network:42424 --non-interactive --emoji=false --ignore-engines --no-lockfile --no-progress --production exited 2 in 'root' 2020-02-26T22:39:34.255Z appcd:default-plugins:lerna lerna ERR! yarn install --mutex network:42424 --non-interactive --emoji=false --ignore-engines --no-lockfile --no-progress --production exited 2 in 'root' 2020-02-26T22:39:34.268Z appcd:default-plugins warn lerna exited with code 2 ",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-331","03/02/2020 14:07:23",1,"Windows - Android: ""No Android SDKs were found under the specified location"" ""When trying to create an application in Appcelerator Studio the following message can be seen in the application creation screen. """"No Android SDKs were found under the specified location"""". When doing an {{appc appcd status}} from the CLI the following can be seen in the plugins section: """," Plugin Version Type Path Node.js Status Active/Total Requests android 1.5.2 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-android\1.5.2 10.16.3 Inactive: Failed to load plugin: No native build was found for platform=win32 arch=x64 runtime=node abi=64 uv=1 libc=glibc 0 / 0 android 2.0.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-android\2.0.1 10.16.3 Inactive 0 / 0 genymotion 1.6.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-genymotion\1.6.1 10.16.3 Inactive: Failed to load plugin: No native build was found for platform=win32 arch=x64 runtime=node abi=64 uv=1 libc=glibc 0 / 0 jdk 1.6.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-jdk\1.6.1 10.16.3 Inactive: Failed to load plugin: No native build was found for platform=win32 arch=x64 runtime=node abi=64 uv=1 libc=glibc 0 / 0 system-info 1.5.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-system-info\1.5.1 10.16.3 Active, PID=5764 0 / 2 system-info 2.0.0 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-system-info\2.0.0 10.16.3 Inactive 0 / 0 titanium 1.8.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-titanium\1.8.1 10.16.3 Inactive: Failed to load plugin: No native build was found for platform=win32 arch=x64 runtime=node abi=64 uv=1 libc=glibc 0 / 0 windows 1.5.2 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-windows\1.5.2 10.16.3 Active, PID=2008 1 / 1 windows 2.0.1 external C:\Users\APPC\.appcelerator\appcd\plugins\packages\@appcd\plugin-windows\2.0.1 10.16.3 Inactive ",0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-332","03/03/2020 17:47:37",5,"appcd-default-plugins: Yarn and Lerna not found from Appc CLI on Windows ""appcd-default-plugins locates lerna and yarn by their {{.cmd}} bin script. However, since the Appc CLI package is built on a Linux machine, npm doesn't create the {{.cmd}} files and thus is not able to find them. While appcd-default-plugins would have no problem resolving the lerna and yarn bin scripts directly, {{lerna bootstrap}} calls {{yarn}} and expects the shell (e.g. cmd.exe) to locate the {{.cmd}} file and run it. So, we need the {{.cmd}} files. Adding the {{.cmd}} files to the Appc CLI package when it's being built is probably too much work, instead we can to generate them using the same {{bin-links}} package npm uses.""","",0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +"DAEMON-334","03/06/2020 07:29:55",3,"appcd: Drop support for Node 8 and older ""Node 8 is no longer in maintenance after Dec 31, 2019 and npm dependencies are starting to depend on Node 10 as a minimum. In Daemon 4.0, we need to bump the minimum supported Node version to {{>=10.2.0}}. We choose 10.2.0 so that we get N-API 3 needed by native deep dependencies.""","",0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"DAEMON-337","03/26/2020 05:23:08",13,"Add multiple platform and Node.js testing to Jenkinsfiles ""The Appc Daemon has the ability to run unit tests on all platforms and multiple Node.js versions, however, no other product does. We need a new function added to our internal Jenkins {{pipeline-library}} that adds test matrix ability and normalize the various Jenkinsfiles into a single standard solution that should work for most cases.""","",0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0