{"action":"created","issue":{"url":"https://api.github.com/repos/triplea-game/triplea/issues/60","labels_url":"https://api.github.com/repos/triplea-game/triplea/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/triplea-game/triplea/issues/60/comments","events_url":"https://api.github.com/repos/triplea-game/triplea/issues/60/events","html_url":"https://github.com/triplea-game/triplea/issues/60","id":99751852,"number":60,"title":"the release process  (what branches will be cut, when, etc)","user":{"login":"DanVanAtta","id":12397753,"avatar_url":"https://avatars.githubusercontent.com/u/12397753?v=3","gravatar_id":"","url":"https://api.github.com/users/DanVanAtta","html_url":"https://github.com/DanVanAtta","followers_url":"https://api.github.com/users/DanVanAtta/followers","following_url":"https://api.github.com/users/DanVanAtta/following{/other_user}","gists_url":"https://api.github.com/users/DanVanAtta/gists{/gist_id}","starred_url":"https://api.github.com/users/DanVanAtta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanVanAtta/subscriptions","organizations_url":"https://api.github.com/users/DanVanAtta/orgs","repos_url":"https://api.github.com/users/DanVanAtta/repos","events_url":"https://api.github.com/users/DanVanAtta/events{/privacy}","received_events_url":"https://api.github.com/users/DanVanAtta/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-08T00:22:42Z","updated_at":"2015-08-08T05:11:28Z","closed_at":null,"body":"We could use a definition for the release process. I'd like to discuss what that process is, we'll document it afterwards. \r\n\r\nBelow I'll outline a pretty standard release process to start the discussion:\r\n- there is general agreement a current code version of \"master\" is a release candidate\r\n- next version number is decided\r\n- a branch, referred to as the release branch, named after the version is cut, tagged, and pushed.\r\n- the CI system (or by hand) will deploy the build artifacts to github releases\r\n- testers will DL/install and test:\r\n -- release bug fixes will get committed to the release branch and cherry-picked into master\r\n- eventually that version is labelled a release version and user migration process begins\r\n\r\n\r\nThe git commands for the new branch and tagging are pretty straight forward:\r\n```\r\ngit checkout -b <new_version>\r\ngit tag -a <new_version> -m '<new_version>'\r\ngit push origin <new_version>\r\n```"},"comment":{"url":"https://api.github.com/repos/triplea-game/triplea/issues/comments/128918720","html_url":"https://github.com/triplea-game/triplea/issues/60#issuecomment-128918720","issue_url":"https://api.github.com/repos/triplea-game/triplea/issues/60","id":128918720,"user":{"login":"DanVanAtta","id":12397753,"avatar_url":"https://avatars.githubusercontent.com/u/12397753?v=3","gravatar_id":"","url":"https://api.github.com/users/DanVanAtta","html_url":"https://github.com/DanVanAtta","followers_url":"https://api.github.com/users/DanVanAtta/followers","following_url":"https://api.github.com/users/DanVanAtta/following{/other_user}","gists_url":"https://api.github.com/users/DanVanAtta/gists{/gist_id}","starred_url":"https://api.github.com/users/DanVanAtta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanVanAtta/subscriptions","organizations_url":"https://api.github.com/users/DanVanAtta/orgs","repos_url":"https://api.github.com/users/DanVanAtta/repos","events_url":"https://api.github.com/users/DanVanAtta/events{/privacy}","received_events_url":"https://api.github.com/users/DanVanAtta/received_events","type":"User","site_admin":false},"created_at":"2015-08-08T05:11:28Z","updated_at":"2015-08-08T05:11:28Z","body":"Master won't stay clean with merges regrettably. Git merges commits by point in time. Rebase will add commits onto something that is existing. For example, cut a branch now, commit now. Then merge that branch in a year from now. Your commit will make it to master. We may have had 30 release since then. When merged in to master, your commit will have a timestamp of when it was committed, around now, which will have been a year ago. \r\n\r\nWhat we really want I think is feature branch with squash rebase work flow. This keeps the history linear and overhead low. We don't lose anything much that the two branch gives us that I can see.\r\n\r\nMy experience with the gitflow workflow was two years on a 100 person development team 50/50 split onshore and off. It was not a good experience, it was basically the feature branch workflow plus a lot of overhead and confusion (and eventually frustration).\r\n\r\n"}}