Hi,

my two cents: at my previous workplace (Tresorit) we created releases every
week and that process was even heavier including cross
platform verification and approval, a 8-12 hours long dedicated manual QA
process, discussions with the marketing and support teams.
Open source is certainly different as we had 2-8 full time devs per
platform and 2 dedicated QA engineers to ensure this pace (including the
actual development), however when we had struggles it was because:

   1. People were on vacation and the flow was disrupted
   2. We had big, cross platform changes (timespan over 2 weeks) which we
   didn't merge back in time, it hurt us in 50%+ of the cases when we tried to
   "do it in separate feature branch", which might or might not be a lot

The overhead wasn't big, it was almost only the communication with the
manual QA and creating human readable release notes. It was never about
doing a lot of work, doing only a little, doing bugfix, features or
refactoring. It didn't really matter for the overhead or failure rate.
A few years later Google devops started promoting DORA:
https://cloud.google.com/blog/products/devops-sre/another-way-to-gauge-your-devops-performance-according-to-dora
and their experience is the same, more than one release per month is needed
to make it stable with lower failure rate and being able to act within a
day if anything goes wrong.
My team was web and javascript focused (but we provided APIs) and we
automated most of the deployment process (well, not the approval and manual
QA of course), however I saw this working pretty well for years, if
anything increasing the pace made the process more deterministic.

Strictness of the language and the compiler might render this approach
impractical (eg. TypeScript and TS based libs struggle more than JS), but I
think management and QA-wise this proposal improves the process eventually
and we'll get a better product *while not working more.*

I hope this little anecdotal story reassures some of you that this is not
an over-ambitious change and it enables everyone to continue creating great
things.

Best regards,
Adam Lippa

On Sun, May 2, 2021 at 1:00 PM Andrew Lamb <al...@influxdata.com> wrote:

> Micah and Julian, thank you both for your thoughts.
>
> I largely agree with Micah;  While the Apache  process may be heavy weight
> in certain aspects, I think we can achieve Rust releases every 2 week
> within that framework.
>
> As I doubt very much we'll get it perfect on the first try, I was
> envisioning that we start with 2 week releases, see how it goes for a
> while, and then adjust as needed.
>
> Andrew
>
>
> On Sat, May 1, 2021 at 11:20 PM Micah Kornfield <emkornfi...@gmail.com>
> wrote:
>
> > >
> > > Apache releases are quite heavyweight, so
> > > work best at a frequency of 2 - 3 months, whereas (IIUC) Rust
> > > developers expect a more lightweight release on a weekly cadence.
> >
> >
> > Thanks, I think clarifications on requirements are helpful.  IIUC is is
> > actually a 2 week cadence which is still fast but seems doable with
> > dedicated community members (and some investment in tooling).
> >
> > What makes the releases heavy weight?  It seems like the process is
> > slightly more tedious than necessarily onerous.  Generating a signed
> > tarball, seems like it should take ~5 minutes or less with the proper
> > tooling?  Verification is more heavy weight but again with the proper
> > tooling and a good system for testing out more changes, it does not seem
> > like it should take too much developer time if no issues arise.  There
> are
> > 3 active contributors to Rust on the PMC, so if they are willing to sign
> up
> > for doing the work of verification and voting on this cadence, what would
> > the other requirements around the process be?
> >
> > Best,
> > Micah
> >
> > On Sat, May 1, 2021 at 3:05 PM Julian Hyde <jh...@apache.org> wrote:
> >
> > > The main tension is not in the proposal but the requirements. It's a
> > > classic impedance mismatch. Apache releases are quite heavyweight, so
> > > work best at a frequency of 2 - 3 months, whereas (IIUC) Rust
> > > developers expect a more lightweight release on a weekly cadence. I
> > > was trying to find other projects that had had the same problem, and
> > > solved it somehow. And also raise awareness within Apache that the
> > > release process is problematic for some communities in 2021.
> > >
> > > To correct a couple of misconceptions:
> > > * In Apache, the signed source artifacts (tarball) are literally the
> > > release. Not a git hash, not a set of binary artifacts. That is what
> > > people need to vote on.
> > > * The release vote does not have to last 72 hours. It can be a shorter
> > > period, if the community agrees.
> > >
> > > Julian
> > >
> > >
> > > On Sat, May 1, 2021 at 1:31 PM Micah Kornfield <emkornfi...@gmail.com>
> > > wrote:
> > > >
> > > > Hi Julian,
> > > > I didn't read this proposal as being in tension with apache releases.
> > It
> > > > sounds like the intention is to hold a vote every two weeks to
> verify a
> > > > release artifacts? But maybe I misread or missed something.  Were do
> > you
> > > > think the tension lies?  Is it also producing the signed source
> > artifact?
> > > >
> > > > Since votes last for at least 72 hours this does seem like a lot of
> > > > overhead every two weeks, but it seems  that is something for Rust
> > > > maintainers to decide and adjust.
> > > >
> > > > -Micah
> > > >
> > > > On Saturday, May 1, 2021, Julian Hyde <jh...@apache.org> wrote:
> > > >
> > > > > (Removing user@ from cc. I think this is mainly a dev@ issue.)
> > > > >
> > > > > I believe there are some tensions between this process and the
> Apache
> > > > > process. In particular, Apache releases tend to be a signed source
> > > > > distribution (tarball) that at least three PMC members download and
> > > > > verify. I totally understand why, as Rust developers, you might
> find
> > > > > that an onerous process and might want to operate in a different
> way.
> > > > > It makes sense, and I believe we can solve it. Perhaps by using a
> > word
> > > > > other than "release" for high-frequency snapshots.
> > > > >
> > > > > It is likely that other projects have already run into this problem
> > > > > and have solved it. Therefore I have sent an email to comdev asking
> > > > > for advice [1]. Feel free to join the thread.
> > > > >
> > > > > Julian
> > > > >
> > > > > [1]
> > > https://lists.apache.org/thread.html/rf12538ef0f60f7257e63391e5d496
> > > > > 2a6156564020c99d3dfb193f4d7%40%3Cdev.community.apache.org%3E
> > > > >
> > > > > On Sat, May 1, 2021 at 4:01 AM Andrew Lamb <al...@influxdata.com>
> > > wrote:
> > > > > >
> > > > > > I propose regularly releasing, every 2 weeks,  minor and patch
> > > releases
> > > > > of
> > > > > > the arrow-rs crate, following the semver versioning scheme used
> by
> > > the
> > > > > rest
> > > > > > of the Rust ecosystem. I have written a proposal[1] describing
> how
> > > this
> > > > > > might work.
> > > > > >
> > > > > > Feedback and comments most welcome.
> > > > > >
> > > > > > Andrew
> > > > > >
> > > > > > [1]
> > > > > > https://docs.google.com/document/d/1QTGah5dkRG0Z6Gny_
> > > > > QCHmqMg7L2HmcbEpRISsfNEhSA/edit
> > > > >
> > >
> >
>

Reply via email to