jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: Moving dist to svnpubsub
Date Wed, 28 Nov 2012 10:53:47 GMT
On 27 November 2012 11:38, sebb <sebbaz@gmail.com> wrote:
> On 26 November 2012 01:57, sebb <sebbaz@gmail.com> wrote:
>> On 23 November 2012 00:37, sebb <sebbaz@gmail.com> wrote:
>>> By next year we need to start publishing releases using svnpubsub.
>>>
>>> This involves uploading release candidates to the staging area
>>>
>>> https://dist.apache.org/repos/dist/dev/jmeter/
>>>
>>> When a vote succeeds, the files can be renamed to the live area here:
>>>
>>> https://dist.apache.org/repos/dist/release/jmeter/
>>>
>>> Files added to the dist/release area are automatically published to
>>> the ASF mirror system.
>>>
>>> Note: Maven files will still be published using Nexus.
>>>
>>> I've set up the jmeter directories, and have asked infra [1] for
>>> commit messages to be sent to commits@
>>
>> This has now been done.
>>
>> I've also uploaded the files to the svnpusub release area [1] from
>> minotaur [2] and asked Infra [3] to make the svnpubsub live.
>>
>> [1] https://dist.apache.org/repos/dist/release/jmeter/
>> [2] http://www.apache.org/dist/jmeter/
>> [3] https://issues.apache.org/jira/browse/INFRA-5564
>>
>>> I'm also working on updating build.xml to automate the process
>>> (similarly to maven_upload).
>>> There will be some new targets:
>>> - upload archives, sigs and hashes for a specific release to the staging area.
>>> - move files from staging to release area (if vote succeeds)
>>> - delete files from staging area (if vote fails)
>>>
>>> The idea is to use the command-line utility "svnmucc" which allows
>>> multiple operations to be done as a single commit transaction.
>>> This has the advantage that all the files appear in the same commit
>>> message; also it should not be possible to forget to upload a sig or
>>> hash.
>>> It also has a "put" function which is ideal for uploading new files -
>>> no need to create a local workspace first.
>>
>> [Though svn import also allows this it is not quite as flexible]
>>
>>> I've got a basic upload working using the JMeter test area [2]. (You
>>> may have noticed some recent commits of sigs and hashes).
>>>
>>> At present the file names are generated by scanning the dist/ area.
>>> That relies on exactly the correct files being present, so I am
>>> considering using a preset list of files, and reporting any
>>> discrepancies (additions as well as omissions)
>>
>> I decided to just use a preset list of files.
>> If any are missing, the upload will detect them.
>>
>> I've got the basics working, but there are still some details to tweak.
>>
>> I think it would be easiest for the RC voting if the files were
>> uploaded to a single directory named after the RC.
>>
>> For example,
>>
>> https://dist.apache.org/repos/dist/dev/jmeter/jmeter-2.8RC2/
>>
>> If the vote succeeds, the publish script will rename the files to
>> binaries/ or source/ as appropriate.
>
> This is now implemented in the build script.
>
> Once an RC build has been created, the archives/sigs/hashes can be
> uploaded as follows:
>
> $ ant RC_upload -DRC=RCn [-DrepoType=live]
>
> The default repoType at present is "test", which means that the files
> will be uploaded under:
>
> https://svn.apache.org/repos/asf/jmeter/test/
>
> specifically under
>
> https://svn.apache.org/repos/asf/jmeter/test/dev/jmeter/v2.9_RC1 (for example)
>
> For the live repo - i.e. https://dist.apache.org/repos/dist/ - the
> destination would be:
>
> https://dist.apache.org/repos/dist/dev/jmeter/v2.9_RC1
>
> Once the vote has passed, the RC can be published using the following command:
>
> $ ant RC_upload -DRC=RCn [-DrepoType=live]
>
> This will move the files from
>
> <repo>/dev/jmeter/v2.9_RC1
>
> to
>
> <repo>/release/jmeter/binaries
> or
> <repo>/release/jmeter/source
>
> as appropriate (_src => source)
>
> Note that as soon as the files have been committed to the live repo
> under the release/ tree, they will be copied to the ASF mirrors.
> [It will still take a day or so to propagate to external mirrors]
>
> This is why the repoType defaults to "test" rather than "live".
>
> The RC_publish target does not currently delete the staging directory, i.e.
>
> <repo>/dev/jmeter/v2.9_RC1
>
> This will have to be done manually (using SVN) as this will allow one
> to check that folder is empty before deletion.
> Maybe this can be automated later - it would be ideal if the script
> failed if the staging directory was not empty at the end of the moves.
> [But I think directory deletion currently deletes all content].
>
> Manual deletion is also required when an RC vote fails.
> Failed RC uploads should be deleted before the successful publish to
> avoid possible incorrect publish.
>
> Likewise, there is currently no target for deleting old release from
> the release directories.
> It would be easy enough to add a target to create an svnmucc script,
> but I'm a bit wary of automatically invoking it.
>
> The svnmucc scripts are processed as a single transaction, so if any
> command fails, the entire script will fail.
> This is intentional, but it does mean that one cannot re-run an
> RC_upload without removing the previous staging directory first.
>
> We may need to tweak the process later, but I think (hope!) it is
> workable at present.

Just realised that the svnmucc command relies on using stored
credentials, which is not ideal.
[Sorry, forgot I had used stored credentials for testing]

I'll need to update the script to allow the SVN user name and password
to be specified on the command-line.
AFAICT it's not possible for the exec'ed application to read from the
console; it just hangs.

>>> At some point we will need to move the site to svnpubsub as well, but
>>> that is for a separate thread at a later date.
>>>
>>> [1] https://issues.apache.org/jira/browse/INFRA-5557
>>> [2] https://svn.apache.org/repos/asf/jmeter/test/

Mime
View raw message