← Back to team overview

launchpad-dev team mailing list archive

Releasing features when they are done

 

This was talked about at the epic, and has - as far as I know -
entirely firmed up into a pretty clear picture of what we need to do.

This is a LEP about how we do feature work and get it out to users,
and it interacts with many core things we do:

 - deployments

 - getting code reviewed and landed

 - making DB changes

https://dev.launchpad.net/LEP/ReleaseFeaturesWhenTheyAreDone is the LEP itself.

I wanted to draw everyone's attention to it, because we can start
using some of the subsections of this during 10.09, and iterate
towards full conversion hopefully during the 10.10 cycle.

The LEP breaks into three sections:

 - feature flags

 - doing QA on edge

 - deploying to all appservers

 - deploying to all instances daily or more often still


Feature flags are ready for use. They aren't *done* - there is ongoing
work to make the facility more developer friendly, provide better
querying and introspection and so on. To use them *today*, you need a
branch built on db-devel. You will be able to use them in devel from
the start of 10.09. This part is good-to-go.

We're going to start doing QA on the branch (stable) rolled out to
edge, before it gets rolled out. This is the
https://dev.launchpad.net/MergeWorkflow. In the first case, we can
start doing this as soon as the QA environment is setup; this will
help catch some stuff, and get any hitches in the flow sorted out. I
believe that this is all ready to go on the developer side? Diogo /
Ursula - can you confirm?

Deploying to all the appservers will be possible once we're confident
in our QA of stable; this may require some deployment script changes
which will be redundant once the full LEP is completed, but it appears
that the whole process is going to take months to come to completion,
so I think this is worth doing.

Lastly, deploying daily or more frequently requires both feature flags
and QA of stable to be done - once both those are in place, and the
various RT tickets and cronscript bug are fixed, we can deploy the
QA'd code to all our servers, and eliminate the 2-week average latency
for deployment of fixes in the rest of the system. This is sadly the
longest part of the pipeline to making this a reality: there are sadly
3 RT tickets and a possibly non-trivial bug to fix before we can do
this.

I'd love it if we can start doing the bits that we can today, so that
we learn about any issues early and can correct them before completely
migrating across. Accordingly, unless there are blocking issues raised
in this thread, I'm going to coordinate with Diogo and Ursula to start
QA'ing edge ASAP, which will help with some issues we've had in the
past as well as preparing us for rolling out to all the appservers,
and *that* will bring the key change of delivering improvements to
users earlier.

(meta: Some of this email belongs in the LEP, and some in various
deployment docs that I haven't found yet, I'll update things as they
get pointed out to me / I find them :).)

-Rob



Follow ups