Transitioning between incompatible language versions
Le 2012-09-18 22:10, Allan McRae a écrit :
The recent lua-5.2 thread and also python-3 have highlighted the need
for us to really have a policy for how we deal with providing two
different versions of a language interpreter in the repos. This is
particularly important when there is a period of time where we want to
supply the newer version of the language, but much software has not
transitioned to it yet so we must provide an old version too. Note I
while i am specifically considering programming languages here, this
could apply to libraries as well where we are force to provide an old
version for some time.
There are two options that I see (assuming that us being Arch Linux
always want the newest version in the repos...)
1) The "foo" package is the newest version of the language and the
legacy version gets the version attached to it - i.e. "foo1".
Libraries for the language "foo" would be called "foo-libname" and
2) Both packages have a version attached to their name. "foo2" and
"foo1". Libraries for the language would be called "foo2-libname" and
Choosing which version:
#1 is best if we expect all software to be updated to the new version
and the legacy version to be soon removed (e.g. for lua?).
#2 is best if we think we will continue to support both versions for an
extended period of time (e.g. python2/3).
Does that sound a reasonable policy? It would be up to the maintainer
to decide whether to use naming scheme #1 or #2 based on expectations of
the language's future.
Comments? I'd like to get this sorted quickly so we can get the python
and lua rebuilds done.
That sound a reasonable policy.
When the legacy version is going to be phased soon (like lua 5.1) I
would just recommand to identify the packages that are no longer
maintained upstream. These packages should be dropped or rebuilded
without language support. This will avoid legacy version of the language
to stay in the repository forever.
There is no rush to drop anything when the old version of the language
is still actively supported (like python2).