Infrastructure suggestions, part2: builds

More
26 Mar 2016 16:10 #45231 by mwm
We recently went through a phase where the nightly builds were generally deemed more stable than the last release. This created issues with people running into known bugs with the release and some issues with ongoing development since breaking a build we were recommending people run isn't really acceptable. I'd like to avoid this in the future.

I can see at least two ways to fix this. One is to change the release process so a single person isn't a bottleneck. Appointing a couple of deputy release engineers who know the process, or making the process public and letting the currently working developers decide when it should happen would do it.

Another is to provide more automated builds. Most of the open source projects I've been associated with have three levels of "blessed" build, not just two. They all had the a "recommended for production" build even if it wasn't as stable as a release. Then there's something similar to or nightly build: could well be broken in major ways, undocumented changes, and no guarantee that any feature in it would actually be there in the future. But in between those was a build that had more extensive testing, features that were definitely going to stay and almost certainly with the current implementation, and hence documentation on them. Adding a level (or even two) of automated builds would help with our issues. In particular, adding a build that requires someone to document changes before they were added to it would make the release process easier, since taking releases from it would make preparing documentation for a release easier.

My own choice is both. The published plan included three sets of automated builds designed to be compatible with each other. There was no release listed simply because I knew it would be a while before one was ready, and wanted to take the extra time to think about how they should be done.

Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.

My remotely piloted vehicle ("drone") is a yacht.

Please Log in or Create an account to join the conversation.

More
26 Mar 2016 19:57 #45245 by PhracturedBlue
Replied by PhracturedBlue on topic Infrastructure suggestions, part2: builds
I hope this can become easy once we switch to CI.
My current thinking is:
a) keep custom builds from developers as is (any developer can upload test builds directly)
b) keep producing nightly builds, but install them from Travis instead of my personal machine. The trick here is that travis builds once per commit, but I really want nightlies to be once per day (but not to reproduce duplicated builds). I haven't figured out exactly how to get this behavior yet, I'm still thinking about it
c) releases will be done based off of tags. So anyone with commit access to the main repo can cause a release to get made by creating the appropriate branch and tag. This one is a bit more straight forward than (b) since it only relies on tag naming

If necessary we can create (d) which is similar to (c) but for an alternate tag name (so creating a tag of a specific name causes a build to get generated without generating an official release)

I need to enhance the server-side code to enable Travis to upload builds, and I need to think about how to deal with nightlies, but I think this will give you basically what you want.

Please Log in or Create an account to join the conversation.

More
26 Mar 2016 23:27 #45248 by mwm
I looked at travis-CI at one point. It certainly had a time-based build, in that you could trigger a test for new commits at a fixed time every day.

Are the build logs going to be available? Or will a build failure trigger a notice to the developer that gets "blame" fingers as the author of the error (the CI systems I've worked with didn't trigger on every commit - they needed a period with no new code before that happened, so it wasn't uncommon to see multiple new commits in a single build).

Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.

My remotely piloted vehicle ("drone") is a yacht.

Please Log in or Create an account to join the conversation.

More
27 Mar 2016 05:10 #45254 by PhracturedBlue
Replied by PhracturedBlue on topic Infrastructure suggestions, part2: builds
travis builds every commit. logs are available and notifications can be sent on pass/fail. It doesn't support nightly builds (but there is nightli.es that enables that). While I'm not fully up to speed on it, it is very easy to setup and looks quite slick. Take a look at the Travis-CI thread for an example of how it looks.

Please Log in or Create an account to join the conversation.

Time to create page: 0.038 seconds
Powered by Kunena Forum