Josh, I've enabled the basic integration tests in my updated patch: https://github.com/apache/calcite/runs/4513702440?check_suite_focus=true
LMK if you think that is sufficient. Thanks On Mon, Dec 13, 2021 at 4:05 PM Jacques Nadeau <jacq...@apache.org> wrote: > I added a blurb about snapshot releases in the howto in the updated PR. > LMK your thoughts. > > https://github.com/apache/calcite/pull/2641/files# > > On Mon, Dec 13, 2021 at 11:34 AM Julian Hyde <jh...@apache.org> wrote: > >> Jacques, >> >> Your 4 points are convincing. Snapshots (used in CI) will help people >> stay on the main branch, and therefore will increase engagement. >> >> It would be useful if there were some guidance in the HOWTO on using >> snapshots. (Don't release based on snapshots; snapshots may change or >> disappear without notice; snapshots are not Apache licensed; do run >> your CI against snapshots, but remember that if they fail, there are >> now TWO places to look for the failure.) >> >> Julian >> >> >> On Sun, Dec 12, 2021 at 4:11 PM Jacques Nadeau <jacq...@apache.org> >> wrote: >> > >> > Good questions, Julian. >> > >> > Some thoughts, in random order. I think snapshot releases have the >> ability >> > to: >> > >> > 1. Reduce the likelihood of long-lived forks >> > Right now, the easiest way one has to produce snapshot artifacts is to >> set >> > up a separate process around a forked repo. Once this process exists, >> it is >> > a slippery slope towards starting to rely on those artifacts for not >> only >> > development but also releases. >> > >> > 2. Reduces the likelihood of fork-causing events >> > If one's dev branch builds against master snapshot artifacts, one is >> more >> > likely to notice a disruptive change sooner. This then allows one to >> start >> > a conversation about the disruption as early as possible post merge (in >> a >> > perfect world, it would be noticed pre-merge but that's a separate >> topic). >> > If one waits for releases to test new features and confirm if they are >> > disruptive, this makes adaptation harder. The developer who added the >> > disruptive change is less likely to be available and thinking about the >> > same issues and the pressure to push a release will make this extra >> > painful. This kind of situation increases the likelihood of hard forks. >> > I've experienced this first hand several times and hope to never repeat >> it >> > again. >> > >> > 3. Reduces the likelihood of accidental breaking changes (or awkward >> > situations) >> > Similar to 2 above, if downstream projects depend on released versions >> > during development, it increases the likelihood of a breaking change >> being >> > accidentally introduced. And on the opposite side, the introduction of >> new >> > changes may turn out to be problematic or challenging. Catching those >> items >> > before release decreases the likelihood of introducing an API and then >> > having to back it out afterwards (and dealing with compat implications). >> > With snapshot artifacts, I believe people are more likely to catch these >> > problems sooner. >> > >> > 4. Increase interest/effort towards releases >> > Reasonable people won't release against a snapshot release (my $0.02). >> If >> > these people develop more often against Calcite master (as opposed to >> their >> > own fork), they are more likely to push for a release to help them >> > accommodate their own releasing needs. >> > >> > Of course, these are all just my own theories about this stuff. I >> > unfortunately don't have any numbers to back this up. Nonetheless, I >> think >> > these benefits outweigh associated costs or potential downsides. >> > >> > Jacques >> > >> > >> > >> > >> > On Sun, Dec 12, 2021 at 2:08 PM Julian Hyde <jhyde.apa...@gmail.com> >> wrote: >> > >> > > I have no problems with the technical side of this. And I am >> supportive of >> > > one-off snapshots, e.g. a snapshot for testing made a week or two >> ahead of >> > > a release. >> > > >> > > But there are some downsides with regular, automated snapshots, and I >> am >> > > concerned that projects and companies will become dependent on them, >> for >> > > the following reasons: >> > > >> > > 1. Snapshots can change without notice. (Bugs may be introduced, APIs >> > > removed without notice.) This is mostly the problem for the downstream >> > > project — in other words, caveat emptor — but may cause work for >> > > committers. It’s certainly a bad idea to base a release on a snapshot. >> > > >> > > 2. Snapshots are not releases. The Apache license does not apply to >> code >> > > that has not been released. >> > > >> > > 3. If people get too comfortable using snapshots, there will be fewer >> > > resources to make official releases. >> > > >> > > Is the additional convenience worth these downsides? Just asking. I’m >> > > prepared to be persuaded. >> > > >> > > Julian >> > > >> > > >> > > >> > > > On Dec 12, 2021, at 10:23 AM, Jacques Nadeau <jacq...@apache.org> >> wrote: >> > > > >> > > > Hey All, >> > > > >> > > > I've been wanting to do more testing against master for integration >> > > > purposes and right now that requires private builds. As such, I >> opened >> > > > CALCITE-4934 [1] to add support for automatic snapshot builds >> deployed to >> > > > the Apache snapshot Maven repository on master merges. As noted in >> the >> > > > ticket, this used to be the case many years ago (CALCITE-351 >> enabled it). >> > > > The right bits are now enabled in GitHub to make this effortless >> and I've >> > > > confirmed that this looks like it is working correctly [2][3]. >> > > > >> > > > Before merging I wanted to make sure that people were comfortable >> with >> > > this >> > > > addition since it changes build infra. The PR is pretty trivial [4] >> and >> > > > modeled off other Apache projects. >> > > > >> > > > Lastly, note that snapshots are *not* Apache Releases and shouldn't >> be >> > > > presented as such in docs, etc. >> > > > >> > > > Please raise your hand if you have any concerns. >> > > > >> > > > Thanks, >> > > > Jacques >> > > > >> > > > >> > > > [1] https://issues.apache.org/jira/browse/CALCITE-4934 >> > > > [2] >> > > >> https://github.com/apache/calcite/runs/4499040456?check_suite_focus=true >> > > > [3] >> > > > >> > > >> https://repository.apache.org/content/groups/snapshots/org/apache/calcite/calcite-core/1.29.0-SNAPSHOT/ >> > > > [4] https://github.com/apache/calcite/pull/2641 >> > > >> > > >> >