Thanks for the context, ya'll. Since SIP-12 had not been voted on for
adoption I was hoping to chime in before there was a lot of "sunk cost" and
before it was locked. Your background was helpful, thanks.

I do want to note that the motivation for my comments was not to make
running git commands and creating branches easy -- that is always easy. :-)
It's about the flow of code and features through branches and how you
manage those along with customer/support SLAs.  The way you do that can
make the things that ARE hard and potentially very time consuming --
validating, testing, fixing bugs, releasing, and supporting -- much, much
more efficient.

I'll take some time to absorb how folks are currently working day to day as
I ramp up, then revisit later. I'll also take some time to dive into the
Apache processes. I definitely should gain more understanding of that
aspect.

Thanks again!
Dave


On Tue, Mar 26, 2019 at 11:43 AM Krist Wongsuphasawat <krist.wo...@gmail.com>
wrote:

> Hi Dave,
>
>
> We appreciate your comments on the release process and are glad to have
> someone with experience about this topic on board. Before going deep into
> the discussion about gitflow, we would like to clarify our stance on the
> topic.
>
>
> First of all, git workflow and cherry-pick are not the pain point in the
> current release process. As you can verify with Christine and others who
> have worked on the past releases that the git commands and creating
> branches are easy parts of the release. The time-consuming parts are
> verifying features, finding bugs and fixing issues. Therefore, changing the
> git workflow is not the main item on the top of our wishlist at the moment.
> If you would like to provide command line tools for git tagging, creating
> change logs, that would be greatly welcomed. However, please keep in mind
> that the git tasks probably accounts for <10% of the work that actually
> happens in each release, and the 90% are the parts we hope can be more
> efficient.
>
>
> Secondly, we do not object if you would like to improve the git process.
> However, we have invested a lot of effort into drafting SIP-12 and shifting
> our dev environment to that workflow already. The SIP has been posted since
> last year. We would like to save our bandwidth to focus on other topics
> rather than changing the git process. If you would like to come up with a
> new process, please also think of a smooth transition between the current
> plan to that plan and what are the benefits we all would gain.
>
>
> Third, making the release process compatible with Apache release protocols.
> This is the part where we have not carefully thought about and would be a
> great area where your expertise could be helpful. We do not have any
> problem with having 18 RCs for internal releases and testing. But if having
> frequent version bump like this is not a viable option for Apache
> “vote-before-release” protocol, we need to come up with some solutions.
>
>
> Thank you again for your initiation. We are happy to have you on board and
> hope your experience can help all of us make the releases better.
>
>
> Best regards,
>
>
> MIchelle and Krist
>
>
>
> On Fri, Mar 22, 2019 at 10:32 AM David Smith <dave.a.sm...@gmail.com>
> wrote:
>
> > 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
> > > > > >>> >
> > > > > >>>
> > > > > >>
> > > > >
> > > >
> > >
> >
>
>
> --
>
> *Krist Wongsuphasawat, PhD*
> http://kristw.yellowpigz.com
>

Reply via email to