[libcamera-devel,v2,0/2] Use x.y soname versioning
mbox series

Message ID 20230515095812.3409747-1-kieran.bingham@ideasonboard.com
Headers show
Series
  • Use x.y soname versioning
Related show

Message

Kieran Bingham May 15, 2023, 9:58 a.m. UTC
Users of libcamera will benefit from not having to recompile
applications and frameworks against every new release point of
libcamera. While we don't yet mandate a stable ABI we are currently
incrementing the SONAME for 'every release'.

With automatic ABI breakage detection we can improve this situation so
that we only increment the SONAME when there is an ABI breakage.

This will extend the compatbiilty of applications for longer and reduce
the burden on application writers and packagers, and by incrementing the
minor number on any breakage point we can make clear human readable
indicators of what versions are compatible.

We retain the leading 'major version 0' to indicate we are not yet
feature complete.

The abi-compat script currently produces an HTML file, but can be
adapted later to output XML and be processed by any additional automated
tooling that might be suitable to report directly on patches and
branches when ABI breakages occur.


Kieran Bingham (2):
  utils: ABI Compatibility checker
  meson: Use x.y soname versioning

 meson.build         |  10 +--
 utils/abi-compat.sh | 198 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 202 insertions(+), 6 deletions(-)
 create mode 100755 utils/abi-compat.sh

Comments

Kieran Bingham June 7, 2023, 11:21 p.m. UTC | #1
Does any one have any thoughts on this series?

I'd like to at least figure out if I can merge the utils/abi-compat.sh
tooling already.

--
Regards

Kieran

Quoting Kieran Bingham (2023-05-15 10:58:10)
> Users of libcamera will benefit from not having to recompile
> applications and frameworks against every new release point of
> libcamera. While we don't yet mandate a stable ABI we are currently
> incrementing the SONAME for 'every release'.
> 
> With automatic ABI breakage detection we can improve this situation so
> that we only increment the SONAME when there is an ABI breakage.
> 
> This will extend the compatbiilty of applications for longer and reduce
> the burden on application writers and packagers, and by incrementing the
> minor number on any breakage point we can make clear human readable
> indicators of what versions are compatible.
> 
> We retain the leading 'major version 0' to indicate we are not yet
> feature complete.
> 
> The abi-compat script currently produces an HTML file, but can be
> adapted later to output XML and be processed by any additional automated
> tooling that might be suitable to report directly on patches and
> branches when ABI breakages occur.
> 
> 
> Kieran Bingham (2):
>   utils: ABI Compatibility checker
>   meson: Use x.y soname versioning
> 
>  meson.build         |  10 +--
>  utils/abi-compat.sh | 198 ++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 202 insertions(+), 6 deletions(-)
>  create mode 100755 utils/abi-compat.sh
> 
> -- 
> 2.34.1
>
Kieran Bingham June 17, 2023, 10:23 p.m. UTC | #2
More feedback on this series would be really helpful as I would like to
merge it before the next libcamera release.
--
Kieran



Quoting Kieran Bingham (2023-06-08 00:21:48)
> Does any one have any thoughts on this series?
> 
> I'd like to at least figure out if I can merge the utils/abi-compat.sh
> tooling already.
> 
> --
> Regards
> 
> Kieran
> 
> Quoting Kieran Bingham (2023-05-15 10:58:10)
> > Users of libcamera will benefit from not having to recompile
> > applications and frameworks against every new release point of
> > libcamera. While we don't yet mandate a stable ABI we are currently
> > incrementing the SONAME for 'every release'.
> > 
> > With automatic ABI breakage detection we can improve this situation so
> > that we only increment the SONAME when there is an ABI breakage.
> > 
> > This will extend the compatbiilty of applications for longer and reduce
> > the burden on application writers and packagers, and by incrementing the
> > minor number on any breakage point we can make clear human readable
> > indicators of what versions are compatible.
> > 
> > We retain the leading 'major version 0' to indicate we are not yet
> > feature complete.
> > 
> > The abi-compat script currently produces an HTML file, but can be
> > adapted later to output XML and be processed by any additional automated
> > tooling that might be suitable to report directly on patches and
> > branches when ABI breakages occur.
> > 
> > 
> > Kieran Bingham (2):
> >   utils: ABI Compatibility checker
> >   meson: Use x.y soname versioning
> > 
> >  meson.build         |  10 +--
> >  utils/abi-compat.sh | 198 ++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 202 insertions(+), 6 deletions(-)
> >  create mode 100755 utils/abi-compat.sh
> > 
> > -- 
> > 2.34.1
> >