{"action":"created","issue":{"url":"https://api.github.com/repos/appveyor/ci/issues/147","labels_url":"https://api.github.com/repos/appveyor/ci/issues/147/labels{/name}","comments_url":"https://api.github.com/repos/appveyor/ci/issues/147/comments","events_url":"https://api.github.com/repos/appveyor/ci/issues/147/events","html_url":"https://github.com/appveyor/ci/issues/147","id":59092715,"number":147,"title":"Proposal: Need more options to configure node versions","user":{"login":"am11","id":3840695,"avatar_url":"https://avatars.githubusercontent.com/u/3840695?v=3","gravatar_id":"","url":"https://api.github.com/users/am11","html_url":"https://github.com/am11","followers_url":"https://api.github.com/users/am11/followers","following_url":"https://api.github.com/users/am11/following{/other_user}","gists_url":"https://api.github.com/users/am11/gists{/gist_id}","starred_url":"https://api.github.com/users/am11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/am11/subscriptions","organizations_url":"https://api.github.com/users/am11/orgs","repos_url":"https://api.github.com/users/am11/repos","events_url":"https://api.github.com/users/am11/events{/privacy}","received_events_url":"https://api.github.com/users/am11/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-02-26T15:56:53Z","updated_at":"2015-02-27T11:18:29Z","closed_at":"2015-02-27T05:27:29Z","body":"@FeodorFitsner, as you mentioned previously, we now have a cmdlet to install any node.js version on AppVeyor , which is just brilliant!\r\n\r\nMost of the repos tend to test against the latest versions of node.js and io.js. In .travis.yml, if we only mention `iojs` (like [this](https://github.com/sass/node-sass/blob/8794f3751ab9fafb38b1e2e8c70c826e33d1da03/.travis.yml#L10) for instance), it will test against the latest released build of io.js: `major.minor.patch`.\r\n\r\nGoing by AppVeyor [docs](http://www.appveyor.com/docs/lang/nodejs-iojs#selecting-node-js-or-io-js-version):\r\n\r\n> Any 1.x version automatically assumes you want io.js, so to switch to the **latest version of io.js** use this command:\r\nInstall-Product node 1.0\r\n\r\nToday, the latest version of io.js is v1.3, and by setting 1.0 in our matrix, it installs:\r\n\r\n> Installing node 1.0.4 (x86)... \r\n\r\n### Proposal:\r\n\r\nIntroduce the following keywords for `matrix`:\r\n\r\n| Key | Description |\r\n|----|----|\r\n|**`runtime`:**| To specify which runtime to use, between `node` or `iojs`.|\r\n|**`iojs`:**| The value for `runtime`.|\r\n|**`node`:**| The value for `runtime`.|\r\n|**`version`:**| To specify which version of the runtime to use. <br/>In absence of this, it will install latest version of the runtime. <br />If user specifies major version, it will use latest minor and patch. <br />If minor version is specified, it will use latest patch version of that `major.minor`. <br />User can then also target the exact version `major.minor.patch`.|\r\n\r\n### Example:\r\n\r\nAn example of YAML:\r\n\r\n```yaml\r\n# arrays\r\nmatrix: \r\n  -\r\n    runtime: node\r\n    version: 0\r\n  -\r\n    runtime: node\r\n    version: 0.10\r\n  -\r\n    runtime: iojs\r\n    version: 1.2.0\r\n  - runtime: iojs\r\n```\r\n\r\nCorresponding JSON:\r\n\r\n```json\r\n{\r\n  \"matrix\": [\r\n    {\r\n      \"runtime\": \"node\",\r\n      \"version\": 0\r\n    },\r\n    {\r\n      \"runtime\": \"node\",\r\n      \"version\": 0.1\r\n    },\r\n    {\r\n      \"runtime\": \"iojs\",\r\n      \"version\": \"1.2.0\"\r\n    },\r\n    {\r\n      \"runtime\": \"iojs\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\nThe first one will target the latest version of `node` in `major=0` branch (i.e. v0.12.0 as of today).\r\nThe second one will target 0.10.36 (latest in 0.10 branch).\r\nThe third will target the exact version of `iojs` (the penultimate version since latest is v1.3.0).\r\nThe last one will target `iojs` latest major, latest minor and latest patch versions, since the version identifier from the group is missing.\r\n\r\n### Benefit:\r\n\r\nUsers will not have to update their appveyor.yml each time the major, minor or patch versions of node or io.js are incremented."},"comment":{"url":"https://api.github.com/repos/appveyor/ci/issues/comments/76379844","html_url":"https://github.com/appveyor/ci/issues/147#issuecomment-76379844","issue_url":"https://api.github.com/repos/appveyor/ci/issues/147","id":76379844,"user":{"login":"am11","id":3840695,"avatar_url":"https://avatars.githubusercontent.com/u/3840695?v=3","gravatar_id":"","url":"https://api.github.com/users/am11","html_url":"https://github.com/am11","followers_url":"https://api.github.com/users/am11/followers","following_url":"https://api.github.com/users/am11/following{/other_user}","gists_url":"https://api.github.com/users/am11/gists{/gist_id}","starred_url":"https://api.github.com/users/am11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/am11/subscriptions","organizations_url":"https://api.github.com/users/am11/orgs","repos_url":"https://api.github.com/users/am11/repos","events_url":"https://api.github.com/users/am11/events{/privacy}","received_events_url":"https://api.github.com/users/am11/received_events","type":"User","site_admin":false},"created_at":"2015-02-27T11:18:29Z","updated_at":"2015-02-27T11:18:29Z","body":":+1: "}}