{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/io.js/issues/2327","labels_url":"https://api.github.com/repos/nodejs/io.js/issues/2327/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/io.js/issues/2327/comments","events_url":"https://api.github.com/repos/nodejs/io.js/issues/2327/events","html_url":"https://github.com/nodejs/io.js/issues/2327","id":99734625,"number":2327,"title":"Moving repos / convergence","user":{"login":"rvagg","id":495647,"avatar_url":"https://avatars.githubusercontent.com/u/495647?v=3","gravatar_id":"","url":"https://api.github.com/users/rvagg","html_url":"https://github.com/rvagg","followers_url":"https://api.github.com/users/rvagg/followers","following_url":"https://api.github.com/users/rvagg/following{/other_user}","gists_url":"https://api.github.com/users/rvagg/gists{/gist_id}","starred_url":"https://api.github.com/users/rvagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvagg/subscriptions","organizations_url":"https://api.github.com/users/rvagg/orgs","repos_url":"https://api.github.com/users/rvagg/repos","events_url":"https://api.github.com/users/rvagg/events{/privacy}","received_events_url":"https://api.github.com/users/rvagg/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/io.js/labels/meta","name":"meta","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":17,"created_at":"2015-08-07T21:42:08Z","updated_at":"2015-08-10T19:35:40Z","closed_at":null,"body":"At this stage, the v3.x branch should be assumed to be the last release branch for io.js, what's on `master` will become Node.js v4.x and beyond along with convergence work which is largely contained within [pull requests to nodejs/node](https://github.com/nodejs/node/pulls)—there are some additional changes but they are already coming over to this repo as pull requests, such as https://github.com/nodejs/io.js/pull/2302.\r\n\r\nWith regard to releases & CI we have near-convergence but it's not complete:\r\n * You can now test pull requests with the single Jenkins across io.js and joyent/node (and nodejs/node if we need it). Landing pull requests via Jenkins is still a work in progress. @orangemocha may want to fill in details of the exact status of this since he's done most of the work.\r\n * Releases are completely separate processes for io.js and joyent/node. @misterdjules has documented the joyent/node process [here](https://github.com/joyent/node/wiki/Node.js-release-guide), I have similar documentation [here](https://github.com/nodejs/io.js/blob/master/doc/releases.md), _but_ we haven't made progress on convergence of this because it also depends on nodejs.org being the release target and we're probably going to cherry-pick the best of both worlds for a convergence release process. We also need new signing keys, I've started that process but it turns out that getting money out of the Foundation is a non-trivial process! We'll be discussing release processes in @nodejs/build to make progress ASAP.\r\n\r\nSo, how do we handle this? How do we deal with the multiple repositories and how do we get towards a Node.js v4 alpha ASAP?\r\n\r\n## Proposed plan\r\n\r\nI propose that we do the following as soon as we get consensus, it can go on `tc-agenda` if necessary.\r\n\r\n### Rename nodejs/io.js to nodejs/node\r\n\r\nI've had discussions with many people about the merits of renaming vs just jumping over to nodejs/node. One of the interesting benefits of _not_ renaming is that it resets the expectations of the entire contributor base (tsc, collaborators and beyond) that _this is a new thing we are doing, not just io.js_.\r\n\r\nHowever, the current nodejs/node doesn't contain much that we can't afford to lose even if we were to delete it. There are pull requests in there that bring us to the convergence but the codebase is just io.js. So we could easily bring those pull reuqests into this repo and rename it and we keep the history and existing issues and pull requests that are more relevant to the converged codebase than those in joyent/node.\r\n\r\nAlready, pull requests and issues that are not directly relevant to 0.10 and 0.12 are being prompted to file against io.js, that can continue but with people being pointed to nodejs/node.\r\n\r\n### Create all future releases from nodejs/node\r\n\r\nNot only for v4 but also v3 and even 0.10 and 0.12. This means the release tooling just needs to work in one way with the only difference being that v3 releases go to iojs.org but that'll end soon enough. I'm suggesting we have `v0.10.x` and `v0.12.x` branches for this to match the `v3.x` branch we now have.\r\n\r\n### Leave joyent/node in place _for now_\r\n\r\nIt'd be great if it could be moved to nodejs/node-legacy or similar but there's no reason that this should be a priority and existing tooling that points to joyent/node—not just official stuff but community tooling too, and while the GitHub web interface redirects, the GitHub API doesn't.\r\n\r\nWe should encourage all new issues against joyent/node to be filed in nodejs/node instead. We should encourage people who filed the existing pull requests over there to file them against nodejs/node and then work (slowly) to close all of them out completely.\r\n\r\n### Document the branch strategy for casual contributors\r\n\r\nWhile the core group of contributors might be starting to get their heads around the new model that we've been discussing, it's vitally important that we communicate a simplified version of this that we can put at the top of CONTRIBUTING.md and (?) the top of README.md. Something simple enough that people are likely to read it but informational enough that it tells people which branch any pull requests should go against. Something like:\r\n\r\n---------------------\r\n\r\n**Issues** should state clearly which version of Node.js or io.js they are reporting against\r\n\r\n**Pull requests** should be made against `master` except where they are addressing bugs in older versions where the bugs either don't exist in `master` or do exist in `master` but the changes are significantly different and will therefore require a fresh pull request.\r\n\r\nStable releases are made from their own branches, with changes in `master` being cherry-picked from there into those branches where appropriate. Generally it should be left for the collaborator team to decide whether changes should be cherry-picked at all and to which branches.\r\n\r\n---------------------\r\n\r\nThe process for cherry-picking from `master` to stable branches will be interesting and we're going to learn best practices over time, I suspect that we'll see a lot of compounding pull requests where a cherry-pick isn't clean and requires some editing.\r\n\r\n/cc @nodejs/tsc "},"comment":{"url":"https://api.github.com/repos/nodejs/io.js/issues/comments/129577730","html_url":"https://github.com/nodejs/io.js/issues/2327#issuecomment-129577730","issue_url":"https://api.github.com/repos/nodejs/io.js/issues/2327","id":129577730,"user":{"login":"mikeal","id":579,"avatar_url":"https://avatars.githubusercontent.com/u/579?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeal","html_url":"https://github.com/mikeal","followers_url":"https://api.github.com/users/mikeal/followers","following_url":"https://api.github.com/users/mikeal/following{/other_user}","gists_url":"https://api.github.com/users/mikeal/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeal/subscriptions","organizations_url":"https://api.github.com/users/mikeal/orgs","repos_url":"https://api.github.com/users/mikeal/repos","events_url":"https://api.github.com/users/mikeal/events{/privacy}","received_events_url":"https://api.github.com/users/mikeal/received_events","type":"User","site_admin":false},"created_at":"2015-08-10T19:35:40Z","updated_at":"2015-08-10T19:35:40Z","body":"> Can we already rename nodejs/node to something else but wait just a bit to move io.js overtop of it? It'l make it easier to update any links then and there rather than trying to make a list.\r\n\r\nJust so that we have a nice TODO list, what is holding up moving the io.js repo to node other than there being a repo there already?"}}