Thanks, Michelle. The reliance on cherry-picking as part of a work flow can
definitely bring the process into conflict with other tools and processes
in the git ecosystem. I've left a fairly lengthy comment on SIP-12
proposing that the mechanics be handled using gitflow, which does not use
cherry-picking, just for discussion.
https://github.com/apache/incubator-superset/issues/6131#issuecomment-475691949

On Wed, Mar 20, 2019 at 1:04 PM Michelle Thomas
<michelle.tho...@airbnb.com.invalid> wrote:

> To answer the question about using a workflow for managing
> releases/branches/tags, I previously evaluated using conventional commits:
> https://www.conventionalcommits.org/en/v1.0.0-beta.3/, which is a system
> for tagging commits to generate the changelog. At the time it seemed like
> it may have issues creating the Changelog with the way we commit everything
> to master then cherry-pick fixes onto a branch, but the consistency in
> tagging PRs with fix, feature, docs seemed useful. I don't think we've
> heavily discussed other workflows. Sounds good to get suggestions for
> improvement on SIP-12.
>
> On Tue, Mar 19, 2019 at 9:27 PM David Smith <dave.a.sm...@gmail.com>
> wrote:
>
> > I'm new to this project, so I apologize if this has been discussed
> > previously, but... Have we considered using a widely adopted workflow for
> > managing releases/branches/tags, and using tools that the community has
> > already built for them?  For example Git Flow or some variant thereof?
> For
> > anyone who is unfamiliar, see overview and tooling--in the form of git
> > extensions--here: https://github.com/nvie/gitflow
> >
> > I saw SIP-12 and have a few comments that I will try to document tomorrow
> > on that issue, but I'm really curious whether other common
> processes/flows
> > were rejected explicitly or if they just didn't come up?
> >
> > Dave
> >
> >
> >
> > On Tue, Mar 19, 2019 at 8:45 PM Maxime Beauchemin <
> > maximebeauche...@gmail.com> wrote:
> >
> > > Wondering what to do next, Justin, is it ok for me to push the related
> > tag
> > > to Github?
> > >
> > > Should I trigger a [VOTE] thread?
> > >
> > > Max
> > >
> > > On Tue, Mar 19, 2019 at 12:04 AM Maxime Beauchemin <
> > > maximebeauche...@gmail.com> wrote:
> > >
> > > > My svn is a bit rusty but I made some progress tonight:
> > > > https://github.com/apache/incubator-superset/pull/7054
> > > >
> > > > Pushed some files to SVN
> > > >
> https://dist.apache.org/repos/dist/dev/incubator/superset/0.31.0rc18/
> > > >
> > > > It's not intended to be an actual real RC, but it's a start.
> > > >
> > > > An early question is around RC numbers. Lyft & Airbnb have been
> doing a
> > > > lot of back and forth on the release branch already and `0.31.0` is
> > > already
> > > > up to rc18. I was internally debating what to do here, keeping the
> > > > numbering scheme, or starting anew. Probably the right thing to do is
> > to
> > > > pick a number (say 0.32.0) and start clean at 0.32.0rc1, and stick to
> > the
> > > > Apache process, and use continuous numbers. I'm assuming the handoff
> is
> > > at
> > > > 0.31.0rc18.
> > > >
> > > > Now people that would want to work on non-Apache release branches
> would
> > > do
> > > > so in their fork, and in their own namespace. Maybe their local build
> > > > instructions can become recipes for an upcoming release, but I
> suggest
> > > that
> > > > this happens in forks from now on.
> > > >
> > > > Clearly this Apache process here with signing + svn commit + voting
> is
> > > > more involved than the usual git cherry-pick + git tag + git push, so
> > > that
> > > > should probably lead to less RCs (I can't imagine doing 18 votes
> > around a
> > > > single release).
> > > >
> > > > Not to mention the fact that the real complexity around releasing is
> > > > raising and labeling issues with a proper target version, gather PRs,
> > > > cherry-pick fixes and resolve conflicts if any. I'm hoping we can
> build
> > > > tooling to help with all this. Hugh started something a while back,
> but
> > > > there's lots to be done still in that area.
> > > >
> > > > Max
> > > >
> > > > On Mon, Mar 18, 2019 at 11:39 PM Maxime Beauchemin <
> > > > maximebeauche...@gmail.com> wrote:
> > > >
> > > >> Not officially approved yet, I think we should start a [DISCUSS]
> > thread
> > > >> and eventually [VOTE]
> > > >>
> > > >> On Mon, Mar 18, 2019 at 10:13 PM David Smith <
> dave.a.sm...@gmail.com>
> > > >> wrote:
> > > >>
> > > >>> Thanks Max! Out of curiosity, has that release SIP-12 been approved
> > > yet?
> > > >>> I
> > > >>> have some thoughts but if it is already a done deal I'll wait until
> > > >>> another
> > > >>> time. :-)
> > > >>>
> > > >>> On Mon, Mar 18, 2019 at 9:53 PM Maxime Beauchemin <
> > > >>> maximebeauche...@gmail.com> wrote:
> > > >>>
> > > >>> > Hi all,
> > > >>> >
> > > >>> > I wanted to send an email explaining the current state of
> releases
> > > and
> > > >>> > start a thread about what's ahead.
> > > >>> >
> > > >>> > Early on in the project lifecycle, I used to package releases and
> > > push
> > > >>> to
> > > >>> > Pypi without much process. I'd package internal releases
> internally
> > > for
> > > >>> > Airbnb. We'd roll out to staging, stabilize the release, and
> launch
> > > in
> > > >>> > production. After a some time without major issues and
> regressions,
> > > I'd
> > > >>> > push a new release out to Pypi and make it available to the
> > > community.
> > > >>> That
> > > >>> > process worked ok when I reviewed or wrote most PRs and had a
> > handle
> > > on
> > > >>> > everything that was going on. The community has grown much, and
> > > clearly
> > > >>> > that process has not been appropriate for quite some time now.
> > > >>> >
> > > >>> > Later on, we joined the Apache Software Foundation's incubator,
> and
> > > >>> the ASF
> > > >>> > has clear process around releases
> > > >>> > <http://www.apache.org/dev/release-publishing.html>. As an ASF
> > > >>> project, it
> > > >>> > was not reasonable for us to push to Pypi until we sorted out the
> > > >>> process
> > > >>> > and followed the "Apache Way". Since `0.29` we've still been
> > cutting
> > > >>> > release branches and labeling "release candidates", but have
> > > refrained
> > > >>> from
> > > >>> > publishing to Pypi. Those release branches contain commits that
> > have
> > > >>> been
> > > >>> > put into production at Lyft and/or Airbnb and elsewhere, but
> didn't
> > > >>> meet
> > > >>> > the ASF's standards, so could not be published as releases.
> > > >>> >
> > > >>> > Also with the growing community, we clearly need a more
> structured
> > > >>> process
> > > >>> > around releases. John Bodley wrote a solid SIP
> > > >>> > <https://github.com/apache/incubator-superset/issues/6131>
> > > proposing a
> > > >>> > clear structure and process around releases, and details much of
> > what
> > > >>> the
> > > >>> > ASF release process does not.
> > > >>> >
> > > >>> > All this to say, *I'm starting some work on our first
> ASF-approved
> > > >>> source
> > > >>> > code release*. For context, the ASF makes a distinction between
> > > "source
> > > >>> > code releases" and "convenience releases". The former contains
> the
> > > >>> source
> > > >>> > code and build instructions, and the latter contains binaries and
> > is
> > > >>> made
> > > >>> > available in places like Pypi (or Maven / npm / RubyGem / ...).
> > > >>> >
> > > >>> > While the source code release should be pretty straight forward,
> > it's
> > > >>> not
> > > >>> > really, well, convenient. You can't just "pip install" that...
> The
> > > >>> > convenience release on the other hand is great, but may require
> > more
> > > >>> work
> > > >>> > and guidance from our mentors, ASF legal, license experts as the
> > > >>> binaries
> > > >>> > may contain our Javascript bundles (or maybe they don't?) but
> then
> > > >>> have to
> > > >>> > have a gigantic LICENSE.txt file detailing the licenses of the
> 500+
> > > >>> > Javascript libs that have accumulated in our `package-lock.json`
> > over
> > > >>> time.
> > > >>> > Or maybe we ship without the bundles and add a `superset compile`
> > > >>> command
> > > >>> > that does the fetching/build of the JS packages. Unclear to me.
> > I'll
> > > >>> need
> > > >>> > help figuring this out. For context here's some work I did trying
> > to
> > > >>> > automate the LICENSE.txt creation
> > > >>> > <https://github.com/apache/incubator-superset/pull/5801>
> > > >>> >
> > > >>> > Anyhow, wanted people to know what's up since it's been so long
> > since
> > > >>> the
> > > >>> > last Pypi release, and give the opportunity for contributors to
> > jump
> > > >>> in and
> > > >>> > help out.
> > > >>> >
> > > >>> > Let's get the [community] release process going!
> > > >>> >
> > > >>> > Max
> > > >>> >
> > > >>>
> > > >>
> > >
> >
>

Reply via email to