Hi guys,

As we don't have anymore access to the people.apache.org server to push
pur source packages and binary packages during a vote, we have to change
teh way we process releases. I'll explain how we should now proceed in
this mail.


There is one common area where we can push packages for test, vote and
release : https://dist.apache.org/repos/ash/dist. This area has 3
distinct sub-directories :

* dev : for development packages, typically the voted release

* test : for nightly builds, or for anything that requires a test

* release  for the released packages.


Here is the global structure of this area :


dist.apache.org/repos/asf
  |
  +-- dist
        |
        +--dev
        |   |
        |   +-- directory
        |         |
        |         +-- apacheds
        |         |     |
        |         |     +-- 2.0.0-M21
        |         |     |
        |         |     +-- 2.0.0-M22
        |         |
        |         +-- api
        |         |     |
        |         |     +-- 1.0.0-RC1
        |         |
        |         +-- escimo
        |         |
        |         +-- fortress
        |         |
        |         +-- kerby
        |         |
        |         +-- mavibot
        |         |
        |         +-- kerby
        |         .
        |         .
        |         (any sub directory that would be needed for another
sub-project)
        |
        |
        +--release
        |   |
        |   +-- directory
        |         |
        |         +-- apacheds
        |         |     |
        |         |     +-- dist
        |         |           |
        |         |           +-- 2.0.0-M21
        |         |
        |         +-- api
        |         |     |
        |         |     +-- dist
        |         |           |
        |         |           +-- 1.0.0-RC1
        |         |
        |         +-- escimo
        |         |
        |         +-- fortress
        |         |
        |         +-- kerby
        |         |
        |         +-- mavibot
        |         |
        |         +-- kerby
        |         .
        |         .
        |         (any sub directory that would be needed for another
sub-project)
        |
        +--test
            |
            +-- directory
                  .
                  .
                  .
I haven't show all the content of this tree, you can go and check by
yourself.

So the idea is to move the packages to be voted into a new sub-directory
of your project, and to commit it there. It's important to know that
this area is managed by SVN, so you will first have to check it out :

$ svn co https://dist.apache.org/repos/asf/dist/dev/directory
...

$ svn co https://dist.apache.org/repos/asf/dist/release/directory
...

etc

That may take a while, especially for Studio, which contains a log of
packages (and big ones). You can limit what gets checked out to your own
project, and not extract the already existing versions. Fpr instance, if
you want to checkout the 'api' release part, but not the versions, here
is what you should do :

dev area :
----------

cd ~/apacheds
mkdir -p dist/dev/directory/api
cd dist/dev/directory/api
svn co --depth empty
https://dist.apache.org/repos/dist/dev/directory/api dev


release area :
--------------

cd ~/apacheds
mkdir -p dist/dev/directory/api
cd dist/dev/directory/api
svn co --depth immediates
https://dist.apache.org/repos/dist/release/directory/api release


NOTE : the release/ directory has one more level, :
release/directory/api/*dist*/1.0.0-RC1 compared to
dev/directory/api/1.0.0-RC1, thus the '--depth imediates' instead of
'--depth empty'

Once you have created those svn checkout on your machine, you can push
the packages you create under the 'dev' directory, with the version you
will use :

dev area :
----------

cd ~/apacheds/dist/dev/directory/api
mkdir 1.0.0-RC2
cp <the place where you have generated the packages> 1.0.0-RC2
svn add 1.0.0-RC2
svn ci 1.0.0-RC2

and your are done for the vote.

Once the vote has been called, and successfuly closed, you can now move
the voted packages in the release area :


release area :
--------------

cd ~/apacheds/dist/dev/directory/api/dist
cp ~/apacheds/dist/dev/directory/api/1.0.0-RC2 .
svn add 1.0.0-RC2
svn ci 1.0.0-RC2


and you are done.

This is somehow simpler than before, where you had to move the packages
to people.apache.org, update your index.html file, then push everything
to the dist area.

I'm quite sure that all those manipulation can be automated for the next
releases...


Thanks !

Reply via email to