I'm hoping to be able to release Cyrus 2.5 soon. We just rebased the FastMail branch on top of the current master tree and rolled it to 2% of our users with no issue - it was months behind until recently. Planning to roll that out to everyone very soon. I've been testing it just with a few of my own users and patching issues for the last month.
What Git workflow do you have? Is it the something simple like testing, staging, production or is it much more customized for your needs? Recently I got very interested in that, since we evaluated Phabricator and Gerrit[1] (we choose Gerrit btw.).
Ok this had to be asked: Do you send commits via mail too? :)
We build two separate Debian packages: cyrus-fastmail for production, and cyrus-future for testing.
Git workflow - we push branches named fastmail and future to our git repo. They are pretty aggressively rebased on the upstream master branch.
We have unit tests and a couple of more comprehensive test suites we run against code before it hits future. Future runs on a single store with one real user (my personal account) and a bunch of users that the functional tests run against. Once we're happy, we push that same branch to fastmail and rebuild.
There's a commit hook which sends a diff against the previous build tag to the mailing list so you can easily see what is being rolled out, both for future and for fastmail.
We do some horrible things to git for the rest of our system too. Our pushback tooling that builds squashed feature branches onto host branches is pretty crazy. It mostly does what we need though.
Comments
I'm hoping to be able to release Cyrus 2.5 soon. We just rebased the FastMail branch on top of the current master tree and rolled it to 2% of our users with no issue - it was months behind until recently. Planning to roll that out to everyone very soon. I've been testing it just with a few of my own users and patching issues for the last month.
What Git workflow do you have? Is it the something simple like testing, staging, production or is it much more customized for your needs? Recently I got very interested in that, since we evaluated Phabricator and Gerrit[1] (we choose Gerrit btw.). Ok this had to be asked: Do you send commits via mail too? :)
--
[1] https://code.google.com/p/gerrit/
We build two separate Debian packages: cyrus-fastmail for production, and cyrus-future for testing.
Git workflow - we push branches named fastmail and future to our git repo. They are pretty aggressively rebased on the upstream master branch.
We have unit tests and a couple of more comprehensive test suites we run against code before it hits future. Future runs on a single store with one real user (my personal account) and a bunch of users that the functional tests run against. Once we're happy, we push that same branch to fastmail and rebuild.
There's a commit hook which sends a diff against the previous build tag to the mailing list so you can easily see what is being rolled out, both for future and for fastmail.
We do some horrible things to git for the rest of our system too. Our pushback tooling that builds squashed feature branches onto host branches is pretty crazy. It mostly does what we need though.