If you think that a release every two weeks, following the standard
voting-on-signed-tarball process, is not too onerous, then we're good.
If you read my email thread on comdev@ you will see that SkyWalking
has been following a similar process.

On Mon, May 3, 2021 at 11:41 AM Andrew Lamb <al...@influxdata.com> wrote:
>
> There have been some great discussions on the document.
>
> I would say the major unresolved questions are
>
> 1. What branching strategy would best balance frequent releases,
> maintainers' time, and contributors' time.
>
> 2. (related) How do we handle breaking API changes between major releases
> that aren't compatible with Rust SemVer expectations? Feature flags?
> Restricted PR merge windows? Separated maintenance branches?
>
> I'll wait a few more days to see how we are doing consensus wise.
>
> Thank you to everyone who has contributed already,
> Andrew
>
>
> On Sun, May 2, 2021 at 8:44 AM Adam Lippai <a...@rigo.sk> wrote:
>
> > 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