What does the "module releases" thing look like from an ASF release
(process - voting, etc.) perspective?

Alternatively, do we want a mechanism to be able to add modules
directly from source? (Homebrew-style)


Donat

On Mon, Mar 28, 2022 at 6:43 PM Ralph Goers <ralph.go...@dslextreme.com> wrote:
>
> Thanks for the reply!
>
> In general I agree with what you are proposing. I’d probably suggest once a 
> quarter instead of every 2 months. I also wouldn’t necessarily have a release 
> of every component every quarter. If there have been no changes there isn’t 
> much of a point. And requiring that everything be released together doesn’t 
> really help. I would suggest that Flume would have a flume-parent module that 
> includes a parent pom.xml that all projects would inherit from. It would 
> include a dependency management section that declares the version of 
> dependencies that are used across projects. In addition we would want a 
> flume-bom that contains a pom.xml that includes a dependency management 
> section declaring all the versions of all components for a specific Flume 
> quarterly release.
>
> As for the versions, I am not sure why you wouldn’t just go with 2.0.0-alpha, 
> 2.0.0-beta or 2.0.0-beta1, 2.0.0-beta2 if you aren’t comfortable labeling 
> them as GA. Once things are stable you would then release 2.0.0.
>
> Ralph
>
> > On Mar 28, 2022, at 7:24 AM, Sean Busbey <sbus...@apple.com.INVALID> wrote:
> >
> > That’s a really interesting possibility.
> >
> > For the 1.10 release I think we should still upgrade the Hive 1 version to 
> > the latest 1.y available, but I agree we’d be well served to get a handle 
> > on the increasing set of possible dependencies. A 2.0 release would be a 
> > great time to change around how deployment works so that folks don’t expect 
> > everything to show up in a single omnibus tarball from a single build as 
> > they do now.
> >
> > There’s a lot of things to take care of making that transition less 
> > painful, so I’d suggest we get an overall approach described but try to 
> > address it incrementally so we’re not facing a very long delay for further 
> > project releases.
> >
> > How about  something like this?
> >
> > - Release 1.10.0 soon, only backward compatible releases
> > - Release 1.y.0 - every other month, backward compatible dependency updates 
> > and bug fixes
> > - Release 2.0 alpha - break up project into multiple repos, establish 
> > release cadence(s) w/o binary artifacts
> > - Release 2.1 beta - have an “easy path” convenience binary
> > - Release 2.2 expected to be production ready
> >
> > For at least those parts of the process that don’t require project svn 
> > access I can help with keeping regular 1.y maintenance releases going. We 
> > could decide ahead of time on when to stop them; e.g. 6 months after the 
> > first “production ready” flume 2.y release.
> >
> > For the 2.y releases, I think we’re going to have some growing pains in 
> > managing how we get from multiple repositories to PMC blessed releases and 
> > from there to artifacts someone could use to run flume if they’re used to 
> > our current deployment model. Setting expectations via alpha/beta labels 
> > and stated packaging goals means we should be able to work out friction 
> > points while still walking before we try to run with a long term 
> > sustainable path for the project. We could try to put some goal dates on 
> > those milestones once we have spent some time discussing details and trying 
> > move things forward.
> >
> >> On Mar 27, 2022, at 4:19 AM, Ralph Goers <ralph.go...@dslextreme.com> 
> >> wrote:
> >>
> >> Sean, (and everyone else)
> >>
> >> You mentioned that you want to create separate maven modules to upgrade 
> >> hive & hbase.  The Flume build is already very large. In addition, 
> >> Upgrading to Hive 3 looks like it will require Hadoop 3 while Hive 2 runs 
> >> with Hadoop 2. This means both dependencies would need to be in the parent 
> >> pom. I find this problematic for the following reasons:
> >> Flume contains a ton of dependencies and even more transitive dependencies 
> >> that are not declared. This makes creating new releases really hard given 
> >> how many dependencies have to be checked and upgraded.
> >> As more modules are added the build is just going to get slower.
> >> Some modules have dependencies on things that are no longer supported. 
> >> Again, that makes creating a full Flume release hard.
> >>
> >> I would suggest that unless security fixes require it we hold off on 
> >> creating upgrades in 1.10.0 for HBase and Hive beyond what you have 
> >> already done. Instead, we should create new repositories for the parts of 
> >> Flume we want to separate and maintain independently. The HBase and Hive 
> >> upgrades would end up goring there.
> >>
> >> I believe this will speed up development since builds will no longer take 
> >> so long.It also means that PRs will go against the target repo which 
> >> should simplify things. Jira would remain the same as it is today. The 
> >> component would be used to identify the target repo.
> >>
> >> I would suggest that what should remain in the main Flume build would be 
> >> primarily, configuration, core, node, sdk, and some of configfilters.  I 
> >> would expect we would have separate repos for hbase, hdfs, hive, Kafka, 
> >> embedded-agent, tools, and legacy to start.
> >>
> >> Thoughts?
> >>
> >> Ralph
> >
> >
>

Reply via email to