On 11/10/21 3:48 PM, Vladimir Sitnikov wrote:
Josh>If we identify these problems, we can think
Josh>through (from the beginning) if combining repositories is the only
Josh>solution or just one possible solution (and weigh the pros and cons for
Josh>each).

I am sure I did explain the pain points. See points 1..5 (the very
beginning of the mail) in the very first message in this thread.
If that is not enough, I can't really explain better.

CI configuration is duplicated across repositories.
JUnit versions maintenance overheads are duplicated.
Build configuration is duplicated (e.g. code style rules, boilerplate build
scripts, etc)
Cross-repository PRs are non-trivial.
And so on.

These are not things that are broken. CI configuration, JUnit versions, and build configuration are already defined for each project. If you want to change them, you can submit a change and test them. It sounds like you want to be able to change them in exactly one place which (I am to assume) is a personal motivation for yourself.

Cross-repository PRs, I've already addressed that this is a solved problem. Please illustrate an example how this creates more code that you have to write, because I genuinely do not see how this approach creates more code that needs to be written than if the projects were in the same repository.

1. Update avatica
2. Release avatica
3. Upgrade avatica dependency in calcite with corresponding changes due to avatica upgrade.

In your example where avatica is in the code base, it discourages API semantics to *not* be compatible by allowing you to quickly change the Avatica API and immediately reflect those changes in Calcite. If folks start doing this, then you disrupt the entire Calcite developer base who has to realize that the API they wanted to use is no longer the correct API.

> If you have suggestions on how to bump JUnit and CI configuration in both repositories at once

You are correct in that I do not believe this to be a "problem".

> It is clear that having the repositories separate has no real benefits.

This is not a fact, but this is your opinion.

> committers are the same

The PMC is the same and those authorized to make commits to each are the same group, but the individuals are *not*. For example, I know damn well that I should not go merging changes that I make into Calcite because I do not regularly do this. In the same way, I'd expect 90%+ of the Calcite committers have never contributed to Avatica.

If your opinion is some philosophical issue with the PMC governance being shared between Avatica and Calcite, we can have that discussion instead.

> I am sure those "reasons" have no weight

Again, this is your opinion. The fact is that I have made Avatica releases without the burden of making a Calcite release, and I know that multiple Calcite releases have been made without the burden of making a new Avatica release. This is not "theoretical".

Avatica 1.17.0 was released Jun 2020, 1.18.0 in May 2021. Calcite had 3 releases of its own between these.

> If so, I just let them do the maintenance.

That is what I would prefer you to do.

> Avatica is stuck with Gradle 6.8.1

I can still build Avatica with Gradle 6.8.1.

Let me be clear to remove all doubt at this point in time: I am -1 on combining these repositories based on the current discussion.

Reply via email to