[E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-15 Thread Albin Tonnerre
Patch attached. As usual, comments are welcome

Regards,
Albin

-- Forwarded message --
From: Carsten Haitzler 
Date: Wed, Apr 15, 2009 at 3:52 AM
Subject: Re: [Proposal] release schedule and version numbering
To: Albin Tonnerre 
Cc: Gustavo Sverzut Barbieri 


On Tue, 14 Apr 2009 18:59:40 +0200 Albin Tonnerre 
said:

THIS... is why i have not wanted to release and force sonames. it totally irks
me to have "libblah 2.0" and the actual lib.so is blibblah.so.7.0 ... its
totally horrible. pre 1.0 we reserve the right to break .so's at will and we
keep our .so's at the version of the software to stop the inconsistency in
release ver, package ver and .so ver.

if this conflicts with debian policy... then i am afraid we have a e vs debian
policy conflict and that will not be resolved until we release 1.0...

what i might consider is renaming the libname

instead of libevas.so.0.9.9
libevas-pre1.so.0.9.9
libevas-pre2.so.0.9.9
etc.

and on release we remove the -preXXX and go to libevas.so.1.0.0

thats my "compromise" :)

> Hi,
>
> With the idea of having freezes and a release schedule, I'd really like to get
> proper version bumps when there are API changes in the core libraries.
>
> I know this idea hasn't been very popular in the past, mostly because the
> devs don't want to bother with this, which is something I understand.
>
> However, as you may know, I maintain the e17 packages in debian.
> Part of this job implies manually changing libraries SONAME when the
> interfaces change, which implies some patching on every single snapshot
> I'm uploading (and which breaks the interface, of course). As I'm doing
> it for debian anyway, I think I might do this is the SVN just as well, if you
> agree.
>
> What I'm doing currently is the following: use
> '-release @package_vers...@$(MINOR)' instead of
> '-version-info @version_info@', in LDFLAGS, so that the generated SONAME
> looks like the following: libevas-0.9.9.050$(MINOR).so, with MINOR being
> whatever you feel like using (I use letters, for example)
>
> The immediate benefits - besides me being happy - is that it would be easier
> to detect when users are experiencing bugs due to API changes. Imagine a
> user links an app against evas, then updates evas, which has changed SONAME:
> either he has the old evas installed and everything's fine. If he has not kept
> the old version, the app won't even launch as the lib will be missing, where
> he previously would have experienced crashes or random behaviour. So I
> do think that would help sometime :)
>
> Regards,
> Albin
>
Index: ecore/src/lib/ecore_win32/Makefile.am
===
--- ecore/src/lib/ecore_win32/Makefile.am	(revision 40092)
+++ ecore/src/lib/ecore_win32/Makefile.am	(working copy)
@@ -36,7 +36,7 @@
 @EVAS_LIBS@ \
 @EINA_LIBS@
 
-libecore_win32_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@
+libecore_win32_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ -release @ecore_win32_release_info@
 
 endif
 
Index: ecore/src/lib/ecore_wince/Makefile.am
===
--- ecore/src/lib/ecore_wince/Makefile.am	(revision 40092)
+++ ecore/src/lib/ecore_wince/Makefile.am	(working copy)
@@ -26,7 +26,7 @@
 $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@
 
-libecore_wince_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@
+libecore_wince_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ -release @ecore_wince_release_info@
 
 endif
 
Index: ecore/src/lib/ecore_config/Makefile.am
===
--- ecore/src/lib/ecore_config/Makefile.am	(revision 40092)
+++ ecore/src/lib/ecore_config/Makefile.am	(working copy)
@@ -27,7 +27,7 @@
 include_HEADERS = \
 Ecore_Config.h
 
-libecore_config_la_LDFLAGS = -version-info @version_info@
+libecore_config_la_LDFLAGS = -version-info @version_info@ -release @ecore_config_release_info@
 
 #config_DATA = $(DB)
 #configdir = $(pkgdatadir)
Index: ecore/src/lib/ecore_x/Makefile.am
===
--- ecore/src/lib/ecore_x/Makefile.am	(revision 40092)
+++ ecore/src/lib/ecore_x/Makefile.am	(working copy)
@@ -24,7 +24,7 @@
 libecore_x_la_LIBADD = $(DEP) \
 @EINA_LIBS@
 
-libecore_x_la_LDFLAGS = -version-info @version_info@
+libecore_x_la_LDFLAGS = -version-info @version_info@ -release @ecore_x_release_info@
 
 libecore_x_la_DEPENDENCIES = $(DEP)
 
Index: ecore/src/lib/ecore_job/Makefile.am
===
--- ecore/src/lib/ecore_job/Makefile.am	(revision 40092)
+++ ecore/src/lib/ecore_job/Makefile.am	(working copy)
@@ -23,7 +23,7 @@
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_job_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@
+libecore_job_la_LDFLAGS = -no-undef

Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-15 Thread Vincent Torri


On Wed, 15 Apr 2009, Albin Tonnerre wrote:

> Patch attached. As usual, comments are welcome

in ecore, is it really necessary to have a release-info for each module ?

Vincent

>
> Regards,
> Albin
>
> -- Forwarded message --
> From: Carsten Haitzler 
> Date: Wed, Apr 15, 2009 at 3:52 AM
> Subject: Re: [Proposal] release schedule and version numbering
> To: Albin Tonnerre 
> Cc: Gustavo Sverzut Barbieri 
>
>
> On Tue, 14 Apr 2009 18:59:40 +0200 Albin Tonnerre 
> said:
>
> THIS... is why i have not wanted to release and force sonames. it totally irks
> me to have "libblah 2.0" and the actual lib.so is blibblah.so.7.0 ... its
> totally horrible. pre 1.0 we reserve the right to break .so's at will and we
> keep our .so's at the version of the software to stop the inconsistency in
> release ver, package ver and .so ver.
>
> if this conflicts with debian policy... then i am afraid we have a e vs debian
> policy conflict and that will not be resolved until we release 1.0...
>
> what i might consider is renaming the libname
>
> instead of libevas.so.0.9.9
> libevas-pre1.so.0.9.9
> libevas-pre2.so.0.9.9
> etc.
>
> and on release we remove the -preXXX and go to libevas.so.1.0.0
>
> thats my "compromise" :)
>
>> Hi,
>>
>> With the idea of having freezes and a release schedule, I'd really like to 
>> get
>> proper version bumps when there are API changes in the core libraries.
>>
>> I know this idea hasn't been very popular in the past, mostly because the
>> devs don't want to bother with this, which is something I understand.
>>
>> However, as you may know, I maintain the e17 packages in debian.
>> Part of this job implies manually changing libraries SONAME when the
>> interfaces change, which implies some patching on every single snapshot
>> I'm uploading (and which breaks the interface, of course). As I'm doing
>> it for debian anyway, I think I might do this is the SVN just as well, if you
>> agree.
>>
>> What I'm doing currently is the following: use
>> '-release @package_vers...@$(MINOR)' instead of
>> '-version-info @version_info@', in LDFLAGS, so that the generated SONAME
>> looks like the following: libevas-0.9.9.050$(MINOR).so, with MINOR being
>> whatever you feel like using (I use letters, for example)
>>
>> The immediate benefits - besides me being happy - is that it would be easier
>> to detect when users are experiencing bugs due to API changes. Imagine a
>> user links an app against evas, then updates evas, which has changed SONAME:
>> either he has the old evas installed and everything's fine. If he has not 
>> kept
>> the old version, the app won't even launch as the lib will be missing, where
>> he previously would have experienced crashes or random behaviour. So I
>> do think that would help sometime :)
>>
>> Regards,
>> Albin
>>
>
> -- 
> Ce message a ?t? v?rifi? par MailScanner
> pour des virus ou des polluriels et rien de
> suspect n'a ?t? trouv?.
> Message d?livr? par le serveur de messagerie de l'Universit? d'Evry.
>
>

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-16 Thread Albin Tonnerre
On Thu, Apr 16, 2009 at 7:38 AM, Vincent Torri  wrote:
>
>
> On Wed, 15 Apr 2009, Albin Tonnerre wrote:
>
>> Patch attached. As usual, comments are welcome
>
> in ecore, is it really necessary to have a release-info for each module ?
>

I think it's better, unless you want to force a SONAME change upon all the 18
libs every time one of them changes. That would force a lot of unneeded
recompiles for programs who rely on parts which haven't changed (for
example, if you break the ecore_win32 API, you sure don't want all the libs to
change SONAME)

Regards,
Albin

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-16 Thread Vincent Torri


On Thu, 16 Apr 2009, Albin Tonnerre wrote:

> On Thu, Apr 16, 2009 at 7:38 AM, Vincent Torri  wrote:
>>
>>
>> On Wed, 15 Apr 2009, Albin Tonnerre wrote:
>>
>>> Patch attached. As usual, comments are welcome
>>
>> in ecore, is it really necessary to have a release-info for each module ?
>>
>
> I think it's better, unless you want to force a SONAME change upon all the 18
> libs every time one of them changes. That would force a lot of unneeded
> recompiles for programs who rely on parts which haven't changed (for
> example, if you break the ecore_win32 API, you sure don't want all the libs to
> change SONAME)

in that case, is it good to specify both -release and -version-info in 
_LDFLAGS ?

Vincent

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-16 Thread Albin Tonnerre
On Thu, Apr 16, 2009 at 9:57 AM, Vincent Torri  wrote:

>
> in that case, is it good to specify both -release and -version-info in
> _LDFLAGS ?
>

I think it's mostly a matter of taste. Keeping both doesn't hurt much
IMHO, and all you'll have to do when there's a real release is remove
the '-release' part.

Albin

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-16 Thread Albin Tonnerre
On Thu, Apr 16, 2009 at 6:25 PM, sda  wrote:
> hi,
>
> just FYI - general rules for rpm packaging:
> http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html
> brief summary of packaging conventions which confirms to the LSB could
> be reviewed below (distro-specific!):
> http://en.opensuse.org/Packaging
>
> the offer above is about to change NAME - ???!!!. if (when) we settle
> the exact E-svn-revision numbers to be packaged and available for all
> the info like "RC", "Alpha", "Beta", "Fix1 to RC" etc shoulg go to the
> Changelog or Summary (as a last resort).
>

I'm sorry, but I don't understand what your point is.

Regards,
Albin

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-16 Thread Albin Tonnerre
On Thu, Apr 16, 2009 at 7:00 PM, Albin Tonnerre
 wrote:
> On Thu, Apr 16, 2009 at 6:25 PM, sda  wrote:
>> hi,
>>
>> just FYI - general rules for rpm packaging:
>> http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html
>> brief summary of packaging conventions which confirms to the LSB could
>> be reviewed below (distro-specific!):
>> http://en.opensuse.org/Packaging
>>
>> the offer above is about to change NAME - ???!!!. if (when) we settle
>> the exact E-svn-revision numbers to be packaged and available for all
>> the info like "RC", "Alpha", "Beta", "Fix1 to RC" etc shoulg go to the
>> Changelog or Summary (as a last resort).
>>

This patch is not about changing package names. It's about getting proper
SONAME changes when devs break the API or the ABI. What happends to
the package names is not releveant to this, as this is the maintainer's
decision.

Regards,
Albin

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-17 Thread Albin Tonnerre
On Fri, Apr 17, 2009 at 1:50 AM, sda  wrote:
> as we recently discussed on IRC the results of the patch will lead th the
> changing of a SONAME. illustration is below.
>

Please note that this was also explained in my initial mail.

> current data:
>
>> objdump -x /usr/lib/libeina.so.0.0.1 | grep -i soname
>  SONAME               libeina.so.0
>
> as we may assume after this patch the changes will be:
>
>> objdump -x /usr/lib/libeina.so.0.0.1 | grep -i soname
>  SONAME               libeina-PREFIX.so.0
>
> where "PREFIX" is some thing i definitely dislike because here's the
> Novell/openSUSE "Shared Library Packaging Policy":
> http://en.opensuse.org/Packaging/Shared_Library_Packaging_Policy
>
> rules are strict and straight forward (like):
>
> * SONAME - the name (query for it using objdump -x libfoo.so.1 | grep SONAME)
>  a shared library is referred as by the dynamic loader.
>
> * Shared libraries in /lib{,64} or /usr/lib{,64} shall be packaged into
>  rpms whose name is "lib" + $NAME + $NUM.
>

SONAME is *NOT* necessarily libfoo.so.X. The use of -release is valid. I don't
want to turn this into a flame, but your distro should not rely on
everything using
-version-info only to create package names.

> * $NAME is formed by cutting off the prefix "lib" and suffix ".so.*" from the 
> SONAME
>
> * $NUM contains only decimal digits and underscores.
>
> * $NUM is equal to the shared library SONAME number with dots replaced
>  by underscores.
>
> in this case the patch will increase the repository maintenance by
> manually substituting values in "Name:" and "BuildRequires:" fields of a
> spec files.
>
> patch is completely useless for all projects developed/maintained in OBS
> (openSUSE Build Service) because Build Service provides automated
> rebuild of all packages which depend on the selected one if sources of
> the selected package are changed (this is done by automatic control of a
> "Release:" field and conservative approach for the dependencies -
> they'd rebuild if the values of "Version"/"Release" are changed which is
> a sign that sources are modified somehow).
>

As per IRC too, it's useless ONLY for OBS, which uses a pessimistic
approach and rebuilds
all the reverse depenencies when there's an update to a library (if my
understanding is
correct). So you're basically proposing to drop the change only before
your particular
build system allows you to avoid it. But please think about people
which do not use OBS,
and especially people who compile directly from source

> so i wote for "$NUM" changes and suppose that it's a way better than
> changes of a "$NAME". all the info about "rev1", "rev2", "RC", "alpha",
> etc. should be visible on E official sites, in Changelog or in Summary.

I did not write a patch changing this NUM because raster he opposed to
this, as he wants to
keep libfoo.so.1 for the final  release (as per the email I forwarded).

Raster, gustavo, other devs: what do you think ? Is it sane enough to
get merged ? (note
that the idea behind this is to increment the @release_info@ on each
API/ABI change, not
globally on every release like this one)

Regards,
Albin

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: [Proposal] release schedule and version numbering

2009-04-17 Thread The Rasterman
On Fri, 17 Apr 2009 12:27:34 +0400 sda  said:

> please look above and let's find some sane solution. API/ABI change
> should in theory change SONAME (i.e. libfoo.so.0.1 -> libfoo.so.0.2)
> but ... we're in a real world and we're working with svn. why not to use
> changes of Version along with the proposed above schema on Version
> naming?

because the only way to break abi with version is to go

libX.so.1.x.x -> libX.so.2.x.x

ie increase MAJOR number. i do NOT ant to change the version of the lib as when
evas/ejde/whatever get released i want them to be:

libevas.so.1.0.0

and AFTEr 1.0.0 relase we will use so version for api breaks - and the evas
RELEASE will also show it. the source release version, package version ANd lib
so version will/should MATCH! i want them to MATCH! i want it to all be simple
and consistent so it's easy to know whats intstalled, and what will or wont work
with it.

until 1.0.0 happens there is NO WAY to break an abi WITHOUT changing soname i.e.

libX-pre01.so.x.x.x -> libX-pre02.so.x.x.x

etc.

-- 
- Codito, ergo sum - "I code, therefore I am" --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel