Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-31 Thread Dieter Maurer
Jim Fulton wrote at 2007-5-30 15:30 -0400:
 ...
IMO, having every dependency look like:

project_name =X.y.z X.999

Is too cumbersome.

Maybe, we should put this into perspective:

   What part of our time do we spend on the specification
   of dependancies? 0.01 per cent?

Furthermore, a new major version probably introduces some backward
incompatibilities. However that does not mean that a given
component will not work with the new major version.

In fact, I rarely have to change my components to support new
major versions.

Thus, it may not be that often we have to specify  X..



-- 
Dieter
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jodok Batlogg


On 30.05.2007, at 21:30, Jim Fulton wrote:



On May 30, 2007, at 3:20 PM, Christian Theune wrote:


Hi,

Am Mittwoch, den 30.05.2007, 15:12 -0400 schrieb Benji York:

Jim Fulton wrote:

It's actually worse than that.  2.0 would admit 2.0a1. :)  You'd
probably need something like  1.99.


I can deal with spelling dependencies on major version X as = X. 
999.


Even if developers remembered, it would be icky to have to spell  
out

something like =3.4 =3.99 on everwhere.


Not as icky (IMHO) as having distribution names with embedded major
version numbers.  I'm interested in other people's opinions here.


I don't like version numbers encoded in package names. I consider  
this

to be a work-around for packaging systems that aren't rich enough.

(Gentoo for example gets this right.)


Could you elaborate on this?


well :) i'm co-maintainer of the net-zope herd in gentoo:

read my attempt to improve the plone versioning: http:// 
article.gmane.org/gmane.comp.web.zope.plone.devel/3227/match=version 
+gentoo+batlogg


in summary:

Naming release tarballs (adapted from the gentoo conventions ;-))

file names consist of three logical sections:

The first section is the package name, which should only contain  
lowercase

letters, the digits 0-9, and any number of single hyphen ('-') or
underscore ('_') characters. Some examples are cmfplone,  
cmfquickinstaller,

formulator,...

The second section is the version of the package, which should  
normally be
same as the version of the contained product. The version is normally  
made
up of two or three numbers separated by periods, such as 1.2 or  
4.5.2, and
may have a single letter immediately following the last digit; e.g.,  
1.4b
or 2.6h. The package version is joined to the package name with a  
hyphen;

for example: foo-1.0, bar-2.4.6, etc.

Important: If you're thinking of using a trailing letter in your version
string, note that the trailing letter should not be used to signify  
alpha
or beta status for the package, since alphas and betas are  
prereleases and

letter revisions are newer versions. It's very important that version
numbers faithfully represent the version of the package so that  
depenency

checking is possible.

The third (optional) section contains a special suffix; either _alpha,
_beta, _pre (pre-release), _rc (release candidate), or _p (patch).  
Any of

these suffixes may be immediately followed my a number; e.g.,
linux-2.4.0_pre10; Assuming identical version parts, an _alpha  
package is
older than _beta, _beta older than _pre, _pre older than _rc, and _rc  
older

than _p. This section is meant to reflect upstream versions only.

Note: An _rc package is older than a package without an underscore  
prefix
(i.e. linux-2.4.0), and linux-2.4.0 is older than a package with a  
single

letter prefix, i.e. linux-2.4.0b. As you would expect, the linux-2.4.0b
package is considered older than linux-2.4.0c.

... and I suppose that we actually have a fourth section of the file  
name --

the .tar.gz extension itself.







Maybe there is some kind of dependency syntax that reads well that
means I want this major version.  Can you think of a syntax  
that is

actually nicer than foo2?


I can think of a syntax, but don't know if setuptools supports it.
Perhaps I should look that up.  But I wont.


I read the documentation on the version numbers multiple times and  
can't

remember anything that supports our use case.

Maybe we should as pje whether there is something like what we  
imagine?


I think I know what the answer will be.  After all, there is a  
syntax for getting what we want.  The problem with it, IMO, and I  
think in other people's opinion is that it is too cumbersome.


IMO, having every dependency look like:

   project_name =X.y.z X.999

Is too cumbersome.  Maybe we should get over that. Maybe many other  
people don't think it's too cumbersome.  Alternatively, maybe  
someone can think of a prettier/more-concise syntax and sell it to  
PJE.


I'll note that this is especially cumbersome if, as I believe, for  
90% of packages, there isn't any good reason to make backward  
compatible changes, at least after initial development.  So all  
packages would end up getting a dependency-specification tax even  
though only a few packages will need backward compatibility changes.


Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/batlogg.lists% 
40lovelysystems.com




--
In the face of ambiguity, refuse the temptation to guess.
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 

Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jim Fulton


On May 30, 2007, at 3:36 PM, Jodok Batlogg wrote:



On 30.05.2007, at 21:30, Jim Fulton wrote:



On May 30, 2007, at 3:20 PM, Christian Theune wrote:


Hi,

Am Mittwoch, den 30.05.2007, 15:12 -0400 schrieb Benji York:

Jim Fulton wrote:

It's actually worse than that.  2.0 would admit 2.0a1. :)  You'd
probably need something like  1.99.


I can deal with spelling dependencies on major version X as = X. 
999.


Even if developers remembered, it would be icky to have to  
spell out

something like =3.4 =3.99 on everwhere.


Not as icky (IMHO) as having distribution names with embedded major
version numbers.  I'm interested in other people's opinions here.


I don't like version numbers encoded in package names. I consider  
this

to be a work-around for packaging systems that aren't rich enough.

(Gentoo for example gets this right.)


Could you elaborate on this?


well :) i'm co-maintainer of the net-zope herd in gentoo:

read my attempt to improve the plone versioning: http:// 
article.gmane.org/gmane.comp.web.zope.plone.devel/3227/match=version 
+gentoo+batlogg


tmi :)


in summary:

Naming release tarballs (adapted from the gentoo conventions ;-))

file names consist of three logical sections:

The first section is the package name, which should only contain  
lowercase

letters, the digits 0-9, and any number of single hyphen ('-') or
underscore ('_') characters. Some examples are cmfplone,  
cmfquickinstaller,

formulator,...

The second section is the version of the package, which should  
normally be
same as the version of the contained product. The version is  
normally made
up of two or three numbers separated by periods, such as 1.2 or  
4.5.2, and
may have a single letter immediately following the last digit;  
e.g., 1.4b
or 2.6h. The package version is joined to the package name with a  
hyphen;

for example: foo-1.0, bar-2.4.6, etc.

Important: If you're thinking of using a trailing letter in your  
version
string, note that the trailing letter should not be used to signify  
alpha
or beta status for the package, since alphas and betas are  
prereleases and

letter revisions are newer versions. It's very important that version
numbers faithfully represent the version of the package so that  
depenency

checking is possible.

The third (optional) section contains a special suffix; either _alpha,
_beta, _pre (pre-release), _rc (release candidate), or _p (patch).  
Any of

these suffixes may be immediately followed my a number; e.g.,
linux-2.4.0_pre10; Assuming identical version parts, an _alpha  
package is
older than _beta, _beta older than _pre, _pre older than _rc, and  
_rc older

than _p. This section is meant to reflect upstream versions only.

Note: An _rc package is older than a package without an underscore  
prefix
(i.e. linux-2.4.0), and linux-2.4.0 is older than a package with a  
single
letter prefix, i.e. linux-2.4.0b. As you would expect, the  
linux-2.4.0b

package is considered older than linux-2.4.0c.

... and I suppose that we actually have a fourth section of the  
file name --

the .tar.gz extension itself.


I don't see how this helps one say that they want to depend on a  
minimum version of a major version.  That is, how does it prevent  
dependencies like:


foo =1.0 1.999

?

I'm wondering how Gentoo got *that* right.

Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Christian Theune
Hi,

Am Mittwoch, den 30.05.2007, 15:30 -0400 schrieb Jim Fulton:
 
  Not as icky (IMHO) as having distribution names with embedded major
  version numbers.  I'm interested in other people's opinions here.
 
  I don't like version numbers encoded in package names. I consider this
  to be a work-around for packaging systems that aren't rich enough.
 
  (Gentoo for example gets this right.)
 
 Could you elaborate on this?

Aside the general version numbering, for me as a user gentoo provides
flags on packages marking them stable. I never get unstable/testing
packages that I don't want.

In addition, I can mask packages away giving version patterns like:

3.4 

this would match all packages that are past 3.5.* but not 3.4.*.
I find that their patterns do what I want all the time, although I don't
know the specifics as well as Jodok.

(Side note: gentoo doesn't encode version numbers into packages but it
provides a mechanism to install packages that are compatible in
different versions in parallel. They call this technique 'slotting'.
That allows me to install python2.3, python2.4 and python2.5 in parallel
by specifying please insteall python version 2.4.4 and python version
2.3.5 without having to encode the version number in the package)

However, I just realize that what I was referring to is a two-fold
mechanism which isn't working with the actual dependencies but is about
marking things as tested/stable within the distribution or not. Looks
like I confused those things. But their way of spelling I don't want
things past the minor release 3.4 I like.

On a different note, couldn't the dependency =3.4.999 also be spelled
as 3.5dev? Can there be a smaller version number than 3.5dev in the
3.5 series?

Christian

-- 
gocept gmbh  co. kg - forsterstraße 29 - 06112 halle/saale - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jodok Batlogg


On 30.05.2007, at 22:20, Jim Fulton wrote:



On May 30, 2007, at 3:36 PM, Jodok Batlogg wrote:



On 30.05.2007, at 21:30, Jim Fulton wrote:



On May 30, 2007, at 3:20 PM, Christian Theune wrote:


Hi,

Am Mittwoch, den 30.05.2007, 15:12 -0400 schrieb Benji York:

Jim Fulton wrote:

It's actually worse than that.  2.0 would admit 2.0a1. :)  You'd
probably need something like  1.99.


I can deal with spelling dependencies on major version X as =  
X.999.


Even if developers remembered, it would be icky to have to  
spell out

something like =3.4 =3.99 on everwhere.


Not as icky (IMHO) as having distribution names with embedded  
major

version numbers.  I'm interested in other people's opinions here.


I don't like version numbers encoded in package names. I  
consider this

to be a work-around for packaging systems that aren't rich enough.

(Gentoo for example gets this right.)


Could you elaborate on this?


well :) i'm co-maintainer of the net-zope herd in gentoo:

read my attempt to improve the plone versioning: http:// 
article.gmane.org/gmane.comp.web.zope.plone.devel/3227/ 
match=version+gentoo+batlogg


tmi :)


in summary:

Naming release tarballs (adapted from the gentoo conventions ;-))

file names consist of three logical sections:

The first section is the package name, which should only contain  
lowercase

letters, the digits 0-9, and any number of single hyphen ('-') or
underscore ('_') characters. Some examples are cmfplone,  
cmfquickinstaller,

formulator,...

The second section is the version of the package, which should  
normally be
same as the version of the contained product. The version is  
normally made
up of two or three numbers separated by periods, such as 1.2 or  
4.5.2, and
may have a single letter immediately following the last digit;  
e.g., 1.4b
or 2.6h. The package version is joined to the package name with a  
hyphen;

for example: foo-1.0, bar-2.4.6, etc.

Important: If you're thinking of using a trailing letter in your  
version
string, note that the trailing letter should not be used to  
signify alpha
or beta status for the package, since alphas and betas are  
prereleases and

letter revisions are newer versions. It's very important that version
numbers faithfully represent the version of the package so that  
depenency

checking is possible.

The third (optional) section contains a special suffix; either  
_alpha,
_beta, _pre (pre-release), _rc (release candidate), or _p (patch).  
Any of

these suffixes may be immediately followed my a number; e.g.,
linux-2.4.0_pre10; Assuming identical version parts, an _alpha  
package is
older than _beta, _beta older than _pre, _pre older than _rc, and  
_rc older

than _p. This section is meant to reflect upstream versions only.

Note: An _rc package is older than a package without an underscore  
prefix
(i.e. linux-2.4.0), and linux-2.4.0 is older than a package with a  
single
letter prefix, i.e. linux-2.4.0b. As you would expect, the  
linux-2.4.0b

package is considered older than linux-2.4.0c.

... and I suppose that we actually have a fourth section of the  
file name --

the .tar.gz extension itself.


I don't see how this helps one say that they want to depend on a  
minimum version of a major version.  That is, how does it prevent  
dependencies like:


foo =1.0 1.999

?

I'm wondering how Gentoo got *that* right.


you are able to specify dependencies (http://devmanual.gentoo.org/ 
general-concepts/dependencies/index.html) like:


=app-misc/foo-1.23  Version 1.23 or later is required.
app-misc/foo-1.23   A version strictly later than 1.23 is required.
~app-misc/foo-1.23  Version 1.23 (or any 1.23-r*) is required.
=app-misc/foo-1.23 	Exactly version 1.23 is required. If at all  
possible, use the ~ form to simplify revision bumps.

=app-misc/foo-1.23  Version 1.23 or older is required.
app-misc/foo-1.23   A version strictly before 1.23 is required.



jodok







Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/batlogg.lists% 
40lovelysystems.com




--
Namespaces are one honking great idea -- let's do more of those!
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 908060-77




smime.p7s
Description: S/MIME cryptographic signature
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jim Fulton


On May 30, 2007, at 4:36 PM, Jodok Batlogg wrote:

I don't see how this helps one say that they want to depend on a  
minimum version of a major version.  That is, how does it prevent  
dependencies like:


foo =1.0 1.999

?

I'm wondering how Gentoo got *that* right.


you are able to specify dependencies (http://devmanual.gentoo.org/ 
general-concepts/dependencies/index.html) like:


=app-misc/foo-1.23  Version 1.23 or later is required.
app-misc/foo-1.23   A version strictly later than 1.23 is required.
~app-misc/foo-1.23  Version 1.23 (or any 1.23-r*) is required.
=app-misc/foo-1.23 	Exactly version 1.23 is required. If at all  
possible, use the ~ form to simplify revision bumps.

=app-misc/foo-1.23  Version 1.23 or older is required.
app-misc/foo-1.23   A version strictly before 1.23 is required.


How would you say that you want version 1.23 or higher but less than  
any version 2?


Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jim Fulton


On May 30, 2007, at 4:36 PM, Christian Theune wrote:
...


Could you elaborate on this?


Aside the general version numbering, for me as a user gentoo provides
flags on packages marking them stable. I never get unstable/testing
packages that I don't want.

In addition, I can mask packages away giving version patterns like:


3.4


this would match all packages that are past 3.5.* but not 3.4.*.
I find that their patterns do what I want all the time, although I  
don't

know the specifics as well as Jodok.


Um, this doesn't make sense. typo?

On a different note, couldn't the dependency =3.4.999 also be  
spelled

as 3.5dev?


Mybe.


Can there be a smaller version number than 3.5dev in the
3.5 series?


I don't know.  Setuptools' version system is sometimes sooo intuitive  
I can't guess.  I'd feel safer using 3.4.999.


Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Christian Theune
Am Mittwoch, den 30.05.2007, 17:13 -0400 schrieb Jim Fulton:
  =app-misc/foo-1.23 Version 1.23 or later is required.
  app-misc/foo-1.23  A version strictly later than 1.23 is required.
  ~app-misc/foo-1.23  Version 1.23 (or any 1.23-r*) is required.
  =app-misc/foo-1.23  Exactly version 1.23 is required. If at all  
  possible, use the ~ form to simplify revision bumps.
  =app-misc/foo-1.23 Version 1.23 or older is required.
  app-misc/foo-1.23  A version strictly before 1.23 is required.
 
 How would you say that you want version 1.23 or higher but less than  
 any version 2?

Someone else mentioned that they would support wildcards, but I couldn't
confirm that. Assuming you had wildcards I would expect something like
this:

=package-1.23.*

Christian

-- 
gocept gmbh  co. kg - forsterstraße 29 - 06112 halle/saale - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Christian Theune

Am Mittwoch, den 30.05.2007, 17:13 -0400 schrieb Jim Fulton:
 How would you say that you want version 1.23 or higher but less than  
 any version 2?

I re-read their spec and they say:

=sys-apps/foo-1.2* will select the newest member of the 1.2 series, but
will ignore 1.3 and later/earlier series. That is, foo-1.2.3 and
foo-1.2.0 are both valid, while foo-1.3.3, foo-1.3.0, and foo-1.1.0 are
not.

-- 
gocept gmbh  co. kg - forsterstraße 29 - 06112 halle/saale - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jodok Batlogg


On 30.05.2007, at 23:25, Christian Theune wrote:



Am Mittwoch, den 30.05.2007, 17:13 -0400 schrieb Jim Fulton:

How would you say that you want version 1.23 or higher but less than
any version 2?


I re-read their spec and they say:

=sys-apps/foo-1.2* will select the newest member of the 1.2 series,  
but

will ignore 1.3 and later/earlier series. That is, foo-1.2.3 and
foo-1.2.0 are both valid, while foo-1.3.3, foo-1.3.0, and foo-1.1.0  
are

not.


exactly :)
Note that the equals sign is mandatory, and that there is no dot  
before the asterisk.




--
gocept gmbh  co. kg - forsterstraße 29 - 06112 halle/saale - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development


--
Explicit is better than implicit.
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 908060-77




smime.p7s
Description: S/MIME cryptographic signature
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

2007-05-30 Thread Jim Fulton


On May 30, 2007, at 5:25 PM, Christian Theune wrote:



Am Mittwoch, den 30.05.2007, 17:13 -0400 schrieb Jim Fulton:

How would you say that you want version 1.23 or higher but less than
any version 2?


I re-read their spec and they say:

=sys-apps/foo-1.2* will select the newest member of the 1.2 series,  
but

will ignore 1.3 and later/earlier series. That is, foo-1.2.3 and
foo-1.2.0 are both valid, while foo-1.3.3, foo-1.3.0, and foo-1.1.0  
are

not.


How would you say that you wanted 1.2.3 or later and less than 1.3?

Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com