Trying to summarize here.. :)

On 25 April 2016 at 10:49, sebb <seb...@gmail.com> wrote:

>>> Does it really matter if the URL changes more than just a version string?
>> Yes,
> I don't understand why that should be.
> Can you explain in more detail?

Mainly in download recipes with a URL pattern patterns using
${version} or similar.

For instance:

https://anonscm.debian.org/cgit/pkg-java/commons-io.git/tree/debian/watch
https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/java-commons-io


Obviously these patterns will for the next versions need to change
anyway with the new layout (they already have to deal with the fact
that only the newest version is in the mirrors, that's why Debian
clone into their own git repositories based on that watch file)

Personally when using Apache software from a Docker build file I have
to use http://archive.apache.org/ fallback URLs to make sure my recipe
keeps working - see for instance
https://github.com/stain/jena-docker/blob/master/jena/Dockerfile#L34

But the old releases won't be affected on archive.apache.org (e.g.
they will stay in */source */binarines).



> Unless we continue providing links for every future release, the
> downstream provider has to change the download URL.
> Once they have done that, why should there be a need to refer to
> previous releases at all?
> And if there is a need to do so, does it really matter if the URL is 
> different?

I agree it doesn't matter if it's a new versions - as they will come
with release emails and so on. However I don't think consumers expect
existing Download links to change over night without a corresponding
new release email for that component.

We should of course do a general release email about the download link
changes - but then we still have a job to ensure we have updated all
our own download pages correctly :)

https://archive.apache.org/dist/commons/ would still keep the older
versions under binaries/ and sources/ - I don't suggest to make
symlinks for every old release in there to the new pattern.


The question is what to do with the existing releases in the mirrors.

I think from INFRA-11702 we have OK from INFRA to use symlinks for
this if we want - e.g. from the new folder structure to the old one -
so my suggestion is that we make the change smoother for downstream
like that.

e.g let's consider

https://dist.apache.org/repos/dist/release/commons/math/

Current structure (for simplicity only showing *.tar.gz):

./source/commons-math-2.2-src.tar.gz
./source/commons-math3-3.6-src.tar.gz
./source/commons-math3-3.6.1-src.tar.gz
./source/commons-math3-3.5-src.tar.gz
./binaries/commons-math3-3.5-bin.tar.gz
./binaries/commons-math-2.2.tar.gz
./binaries/commons-math3-3.6-bin.tar.gz
./binaries/commons-math3-3.6.1-bin.tar.gz



We make the new version folders as you suggested (vary for your
preferred 3.5 / math3-3.5 vs math-3.5 folder name style)

Adding folders:
2.2/
3.5/
3.6/
3.6.1/

- and then (as we've not made new math releases yet) their files
symlink back, e.g.:

stain@biggie:/tmp/math$ ls -al [23]*/*gz
lrwxrwxrwx 1 stain stain 37 May  3 10:41
2.2/commons-math-2.2-src.tar.gz ->
../source/commons-math-2.2-src.tar.gz
lrwxrwxrwx 1 stain stain 35 May  3 10:41 2.2/commons-math-2.2.tar.gz
-> ../binaries/commons-math-2.2.tar.gz
lrwxrwxrwx 1 stain stain 40 May  3 10:43
3.5/commons-math3-3.5-bin.tar.gz ->
../binaries/commons-math3-3.5-bin.tar.gz
lrwxrwxrwx 1 stain stain 38 May  3 10:42
3.5/commons-math3-3.5-src.tar.gz ->
../source/commons-math3-3.5-src.tar.gz
lrwxrwxrwx 1 stain stain 40 May  3 10:43
3.6/commons-math3-3.6-bin.tar.gz ->
../binaries/commons-math3-3.6-bin.tar.gz
lrwxrwxrwx 1 stain stain 38 May  3 10:43
3.6/commons-math3-3.6-src.tar.gz ->
../source/commons-math3-3.6-src.tar.gz
lrwxrwxrwx 1 stain stain 42 May  3 11:04
3.6.1/commons-math3-3.6.1-bin.tar.gz ->
../binaries/commons-math3-3.6.1-bin.tar.gz
lrwxrwxrwx 1 stain stain 40 May  3 11:04
3.6.1/commons-math3-3.6.1-src.tar.gz ->
../source/commons-math3-3.6.1-src.tar.gz


(Math is a special example that has 4 current versions - for say
https://dist.apache.org/repos/dist/release/commons/io/ there would
only be a single folder,
2.5)



Thus the new folders look like this:

stain@biggie:/tmp/math/3.6$ ls -al
total 0
drwxrwxr-x 2 stain stain 360 May  3 10:43 .
drwxrwxr-x 8 stain stain 220 May  3 10:42 ..
lrwxrwxrwx 1 stain stain  40 May  3 10:43 commons-math3-3.6-bin.tar.gz
-> ../binaries/commons-math3-3.6-bin.tar.gz
lrwxrwxrwx 1 stain stain  44 May  3 10:43
commons-math3-3.6-bin.tar.gz.asc ->
../binaries/commons-math3-3.6-bin.tar.gz.asc
lrwxrwxrwx 1 stain stain  44 May  3 10:43
commons-math3-3.6-bin.tar.gz.md5 ->
../binaries/commons-math3-3.6-bin.tar.gz.md5
lrwxrwxrwx 1 stain stain  45 May  3 10:43
commons-math3-3.6-bin.tar.gz.sha1 ->
../binaries/commons-math3-3.6-bin.tar.gz.sha1
lrwxrwxrwx 1 stain stain  37 May  3 10:43 commons-math3-3.6-bin.zip ->
../binaries/commons-math3-3.6-bin.zip
lrwxrwxrwx 1 stain stain  41 May  3 10:43
commons-math3-3.6-bin.zip.asc ->
../binaries/commons-math3-3.6-bin.zip.asc
lrwxrwxrwx 1 stain stain  41 May  3 10:43
commons-math3-3.6-bin.zip.md5 ->
../binaries/commons-math3-3.6-bin.zip.md5
lrwxrwxrwx 1 stain stain  42 May  3 10:43
commons-math3-3.6-bin.zip.sha1 ->
../binaries/commons-math3-3.6-bin.zip.sha1
lrwxrwxrwx 1 stain stain  38 May  3 10:43 commons-math3-3.6-src.tar.gz
-> ../source/commons-math3-3.6-src.tar.gz
lrwxrwxrwx 1 stain stain  42 May  3 10:43
commons-math3-3.6-src.tar.gz.asc ->
../source/commons-math3-3.6-src.tar.gz.asc
lrwxrwxrwx 1 stain stain  42 May  3 10:43
commons-math3-3.6-src.tar.gz.md5 ->
../source/commons-math3-3.6-src.tar.gz.md5
lrwxrwxrwx 1 stain stain  43 May  3 10:43
commons-math3-3.6-src.tar.gz.sha1 ->
../source/commons-math3-3.6-src.tar.gz.sha1
lrwxrwxrwx 1 stain stain  35 May  3 10:43 commons-math3-3.6-src.zip ->
../source/commons-math3-3.6-src.zip
lrwxrwxrwx 1 stain stain  39 May  3 10:43
commons-math3-3.6-src.zip.asc ->
../source/commons-math3-3.6-src.zip.asc
lrwxrwxrwx 1 stain stain  39 May  3 10:43
commons-math3-3.6-src.zip.md5 ->
../source/commons-math3-3.6-src.zip.md5
lrwxrwxrwx 1 stain stain  40 May  3 10:43
commons-math3-3.6-src.zip.sha1 ->
../source/commons-math3-3.6-src.zip.sha1


e.g. the new-style download link pattern would become

http://www.eu.apache.org/dist/commons/math/3.6/commons-math3-3.6-src.tar.gz
http://www.eu.apache.org/dist/commons/math/3.6/commons-math3-3.6-bin.tar.gz

We then update download pages/templates to use this pattern.


For a new release (e.g. commons-math-2.3 or commons-math3-3.7) the
files would be added directly to their version folders 2.3/ and 3.7/ -
e.g. they would not exist in binaries/ and source) - when clearing a
old folder io/2.2/ we would then also clear binaries/*2.2* and
sources/*2.2*


Complete example:

https://paste.apache.org/8MKJ


(Note for this example commons-math-2.2  includes
commons-math-2.2-src.tar.gz and the binary commons-math-2.2.tar.gz
as we agreed not to rename to -bin on older)





-- 
Stian Soiland-Reyes
Apache Taverna (incubating), Apache Commons RDF (incubating)
http://orcid.org/0000-0001-9842-9718

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to