Hi,
Thanks for the input. I agree with all you said.
The question still remains what to do with packages with major version being 0 
for several releases now.
I see two options:

a) leave with major version 0 (which will basically disable baselining and each 
modification might easily break consumers without any tooling support to check 
for that)
b) Increase the major version to 1 and by that break all existing consumers

In the long run I proposed a change in bnd, to not generate import-package 
version ranges for 0.x versions but that won’t help already existing consumers.
I think we have to do b)!

WDYT?
Konrad


> On 24. Jul 2025, at 12:57, Carsten Ziegeler <cziege...@apache.org> wrote:
> 
> Not sure if there is an answer that works for all. I would put a version on 
> the exports - not putting one usually looks like a mistake :)
> 
> An API should not be in an unstable state for a long time - hopefully you can 
> validate your API before you do the first release. If you really need a 
> release to validate, I would go with major version being 0 - clearly stating 
> that things can break.
> 
> But again, I think the mistake is to have it for too long in unstable.
> Usually, if you have a stable API and things need to be fixed, you can do 
> that and deprecate/phase out parts of the old API.
> Waiting indefinitely to mark an API stable will not help with that.
> 
> Regards
> Carsten
> 
> On 7/23/2025 6:01 PM, Robert Munteanu wrote:
>> Hi,
>> On Mon, 2025-07-21 at 09:17 +0200, Konrad Windszus wrote:
>>> Hi,
>>> In the context of SLING-12861[1] the question arose how to promote an
>>> unstable (0.x versioned) package version to a stable one without
>>> breaking all consumers.
>>> IIUC all bundle and package versions having major version 0 are
>>> considered preliminary [2] by baselining and therefore will never
>>> emit any errors even when modifying the API in a non backwards
>>> compatible way without modifying the version.
>>> I raised a ticket with Bnd[3] but while waiting for an answer there I
>>> would like to know how the process used to be for other Sling modules
>>> in the past.
>>> Thanks in advance for any input.
>> I am not aware of history but I am in the same situation with the OAuth
>> Client bundle which exports packages as 0.1 and marks them all as
>> @ProviderType to generate narrow import ranges [4].
>> Now I wonder if exporting packages without a version would be better
>> rather than setting 0.x versions.
>> Thanks,
>> Robert
>> [4]:
>> https://github.com/apache/sling-org-apache-sling-auth-oauth-client?tab=readme-ov-file#apache-sling-oauth-20-client-with-oidc-support
> 
> -- 
> Carsten Ziegeler
> Adobe
> cziege...@apache.org
> 
> 

Reply via email to