From: Loic Dachary <loic@dachary.org>
To: Sage Weil <sweil@redhat.com>
Cc: ceph-devel@vger.kernel.org
Subject: Re: giant and hammer dates
Date: Wed, 30 Jul 2014 22:05:54 +0600 [thread overview]
Message-ID: <53D917E2.3060906@dachary.org> (raw)
In-Reply-To: <alpine.DEB.2.00.1407300706441.18917@cobra.newdream.net>
[-- Attachment #1: Type: text/plain, Size: 7223 bytes --]
Hi Sage,
Thanks for taking the time to write this overview of the release cycle tools and their evolutions : I did not realize so much work was going on :-)
Cheers
On 30/07/2014 20:22, Sage Weil wrote:
> On Wed, 30 Jul 2014, Loic Dachary wrote:
>> Hi Sage,
>>
>> From my (biased) point of view, the upside is that it will give me more
>> time to complete the locally repairable code for Giant ;-). The downside
>> is that it puts a little less pressure to improve the tools and methods
>> that make a rapid release cycles possible (i.e. unit tests, bug
>> tracking, patch acceptance workflow, package building/gitbuilder,
>> teuthology, pulpito, upgrades testing, ...). In a perfect world Ceph
>> could sustain a three month release cycle without inconveniencing
>> anyone. A longer release cycle (five or six months) would encourage even
>> more complex / bigger changes within a release cycle. It would also
>> probably encourage Ceph developers to forget about the release process
>> tools during two or three months and not improve them as they should be.
>>
>> IMHO the test cycle is significantly slowing down the release process
>> and a faster, more comprehensive test cycle would help a lot.
>
> No argument here. :)
>
> I should clarify that this is the "stable release cycle" for the named
> released. I still think we should maintain a ~2 week "development release
> cycle" where we are continuously integrating changes and regularly putting
> out a usable release. The 'next' or 'last' branches should be recent and
> stable starting points for doing any new work so that the integration
> tests, when run, will reflect bugs in your code and not stuff that was
> already there. We've slipped a bit here (0.82 to 0.83 was 5 weeks); this
> is partly because the release process itself is still pretty expensive in
> terms of effort and we don't want to eat up more of Alfredo's and Sandon's
> time than we need to, but it is getting better.
>
> In any case, the real point of a longer "stable release cycle" is just
> that there are fewer stable releases in flight that we are backporting
> fixes too. In practice, having all of dumpling, emperor, and firefly
> outstanding hasn't worked particularly well (IMO). We backport to
> dumpling and firefly and urge people away from emperor to avoid the
> cognitive overhead of keeping track of another release. Going from 3 to 4
> months means only 3 stable releases per year, which I think is enough...?
>
>> Each commit should be unit / functional tested within seconds, locally
>> (see
>> https://github.com/ceph/ceph/blob/master/src/test/osd/types.cc#L1295 for
>> instance). It is usually more difficult to diagnose / fix a border case
>> when it is discovered during integration tests (i.e. teuthology) rather
>> than with a unit / functional test designed for it. Creating unit tests
>> is often problematic because some of the code base cannot be easily
>> isolated. With a continuous effort to re-arrange parts of the code to be
>> more test friendly, this can eventually be resolved.
>>
>> Every commit proposed to master should be run against the relevant
>> teuthology suite to help the reviewer. The problem here is that it
>> requires more resources than what Ceph currently has. Harvesting more
>> machines, making it possible for people and organizations amicable to
>> Ceph to easily donate virtual machines could probably help.
>
> Zack is making good progress on rejiggering the way that teuthology
> separates the core task locking and task runners from the tasks themselves
> (which get versioned along with the test suite for firefly, dumpling,
> etc.). This is all groundwork to enable the important bits, like pulling
> machine locking into a single, easy to deploy process, and plugging in
> different providers (in addition to bare metal and downburst) like
> OpenStack. The end goal is to make teuthology much easier to deploy in
> other environments. I'm hoping we can get to a place similar to openstack
> where organizations can hang their CI deployment off the 'upstream'
> build/CI infrastructure and supplement by running the same suites on
> different hardware or by adding their own test suites...
>
>> This deserves a separate discussions but I wanted to expand on what I
>> meant by "test cycle" and its impact on the release cycle.
>
> We had a discussion during the G/H CDS about doing an ephemeral
> 'integration' branch to group things together for full testing by the
> teuthology test suites that you probably caught. There was a follow-on
> internal discussion while you were gone on how to get this rolling and Sam
> is currently working on a tool to easily build an integration branch
> merging pending work on a nightly so that it can go through the tests
> before getting merged into master. I think this will help.
>
> We also have our first batch of new hardware ordered inside Red Hat
> (another ~130 machines) that will expand our testing throughput, and
> Sandon is working on reclaiming a lot of existing machines that aren't
> getting put to good use (burnupi) so that we can expand the size of the
> existing test pool.
>
> Alfredo recently did some background research on what other projects are
> doing for CI and releases, and he and Sandon have some work in flight to
> move some of the bursty release builds into openstack VMs. Unfortunately
> nobody has their full bandwidth allocated to improving the state of
> things, but I think we're making some slow progress.
>
> sage
>
>
>>
>> Cheers
>>
>> On 30/07/2014 05:11, Sage Weil wrote:
>>> We've talked a bit about moving to a ~4 month (instead of 3 month)
>>> cadence. I'm still inclined in this direction because it means fewer
>>> stable releases that we will be maintaining and a longer and (hopefully)
>>> more productive interval to do real work in between.
>>>
>>> The other key point is that we don't want a repeat of the firefly delay.
>>> I think we should stay as close to a train model as we can. If something
>>> isn't ready by freeze, let it wait for the next cycle. We shouldn't be
>>> cramming things in at the end, especially big things. As a general rule,
>>> big things should be merged early in the cycle so that we have lots of
>>> time to shake out the issues that only come out of lots of testing and
>>> aren't obvious from code review.
>>>
>>> Anyway, how about:
>>>
>>> Freeze Approx Release
>>> Giant Mon Sep 1 Mon Sep 29
>>> Hammer Mon Jan 4 Mon Feb 2
>>>
>>> That gives us another month for Giant, then September to shake out
>>> anything issues. And then three full months before the Hammer freeze.
>>>
>>> What say ye?
>>> sage
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>> --
>> Lo?c Dachary, Artisan Logiciel Libre
>>
>>
--
Loïc Dachary, Artisan Logiciel Libre
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2014-07-30 16:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-29 23:11 giant and hammer dates Sage Weil
2014-07-29 23:20 ` Mark Nelson
2014-07-30 4:59 ` Loic Dachary
2014-07-30 14:22 ` Sage Weil
2014-07-30 16:05 ` Loic Dachary [this message]
2014-07-30 14:22 ` Gregory Farnum
2014-07-30 16:15 ` Sage Weil
2014-08-02 8:17 ` Justin Erenkrantz
2014-07-30 16:52 ` Mark Nelson
2014-07-30 20:26 ` Eric Eastman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53D917E2.3060906@dachary.org \
--to=loic@dachary.org \
--cc=ceph-devel@vger.kernel.org \
--cc=sweil@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox