Apologies for not replying yesterday and thank you, Greg, for answering the
question.

All I could add is that it's a pretty common semantic versioning scheme
[1], although there is no rigorous method of policing it - very often it's
just relying on common sense. Lucene often does add big code changes to
what's a "minor" release in this scheme (9x) but only if they're backward
compatible. Major releases are limited to breaking the API, bumping the
minimum Java version, etc.

Dawid

[1] https://semver.org/

On Sat, May 6, 2023 at 1:53 AM Greg Miller <gsmil...@gmail.com> wrote:

> Hi Jonathan-
>
> The main branch is the tip of development, and what will eventually become
> 10.0. It can use a later version of Java, make (some)
> non-backwards-compatible API changes, etc. branch_9x tracks the latest 9.x
> release, and must run on the version of Java supported by 9.x releases,
> must be API backwards-compatible, etc. The general approach is to make
> changes against main, and then backport those changes to branch_9x in a 9.x
> friendly way if possible. Sometimes a change on main is complex enough that
> backporting in a 9.x friendly manner isn't really feasible, in which case
> the change will be released with 10.0. I'm sure I'm leaving out some
> details, but hopefully this is helpful. You may also find this reference
> useful:
> https://cwiki.apache.org/confluence/display/LUCENE/BackwardsCompatibility
>
> Cheers,
> -Greg
>
> On Fri, May 5, 2023 at 12:00 PM Jonathan Ellis <jbel...@gmail.com> wrote:
>
>> Thanks.  What are the rules for what should go into main vs branch_9x?
>>
>> On Fri, May 5, 2023 at 1:54 PM Dawid Weiss <dawid.we...@gmail.com> wrote:
>>
>>>
>>> The main branch is on Java 17, see build.gradle:
>>>
>>>   // Minimum Java version required to compile and run Lucene.
>>>   minJavaVersion = JavaVersion.VERSION_17
>>>
>>> Also, don't use the default gradle task created by convention; use this
>>> one:
>>>
>>> ./gradlew mavenToLocal
>>>
>>> it's an alias but it publishes only a subset of relevant projects, not
>>> all of them.
>>>
>>> Dawid
>>>
>>> On Fri, May 5, 2023 at 8:03 PM Jonathan Ellis <jbel...@gmail.com> wrote:
>>>
>>>> Actually my hack doesn't work, the manifest file changes but the .class
>>>> files do not.
>>>>
>>>> On Fri, May 5, 2023 at 12:38 PM Jonathan Ellis <jbel...@gmail.com>
>>>> wrote:
>>>>
>>>>> `./gradlew publishToMavenLocal` gives me Java 17 class files by
>>>>> default, which surprises me since AFAIK 11 is still the minimum to run
>>>>> Lucene.
>>>>>
>>>>> I hacked it to work by editing javac.gradle
>>>>>     sourceCompatibility = JavaVersion.VERSION_11
>>>>>     targetCompatibility = JavaVersion.VERSION_11
>>>>>
>>>>> Is there a cleaner way to do this?
>>>>>
>>>>> --
>>>>> Jonathan Ellis
>>>>> co-founder, http://www.datastax.com
>>>>> @spyced
>>>>>
>>>>
>>>>
>>>> --
>>>> Jonathan Ellis
>>>> co-founder, http://www.datastax.com
>>>> @spyced
>>>>
>>>
>>
>> --
>> Jonathan Ellis
>> co-founder, http://www.datastax.com
>> @spyced
>>
>

Reply via email to