On 08/07/2008, at 1:47 AM, John Casey wrote:

Jason's referring to a ruby script I wrote to lookup the version string for a particular staged project, for use in the stage:copy mojo. This allows us to setup generic promotion scripts in a CI environment like Hudson. I've committed this script to: https://svn.apache.org/repos/asf/maven/sandbox/trunk/scripts .

So basically it's a simple way to do http to http repository copies instead of http to scp?



The rest of this release infrastructure has simply been configuration of hudson and nexus - nexus, to provide a staging ground for releases - to configure release jobs that deploy to this staging location instead of the real release repository...just generalizing on configuration that we all have in our personal settings.xml files by now. Jason's credentials are used for SVN and SSH where necessary, and I've created a new GPG key for use in this CI system, then signed it with my own key. That key ID is: 84B54612.

Sorry, but I'm not at all comfortable with this.

Firstly, it rules out both of our current Hudson instances, since it gives access to people outside the project to be able to read our private release key. I'm not even sure about the wisdom of using a shared key vs. an individual one and would want to ask someone with more experience.

Secondly, it gives others access to Jason's account on people.apache.org that are not Jason, as well as losing the information of who deployed it.

There are other ways to handle the second part if we do have a canonical release repository on a different machine to the present one (namely, a user initiated pull from people which is easy enough).

But the question of how you sign something there is something that would need to be addressed. These challenges are the reason I haven't suggested using Continuum's built-in release mechanism for our releases over all the time it has been available.

Maybe we could run whatever the final proposal is past the ASF security and infrastructure teams?

To echo Jason, the goal here is to create an environment that - if not perfectly flawless - is at least a known quantity. Just as we've moved in the direction of pointing to our CI servers as the definitive point of reference for our unit and integration tests (though we're not quite there yet), we need to be releasing Maven artifacts from a similarly definitive environment. In principle, the configuration and script I've written (above) should enable any team to enable a similar release infrastructure for their own projects.

I certainly understand the drive to it - it's the first thing I set up in most environments (way back to when I got burned by this in the m1 days).

But on the other hand, like you said, we're not even there with CI yet. I do hope that with an increased push towards determinism in the artifact resolution this becomes less of an issue.

Right now, I feel like our efforts would be better spent in tooling to validate releases wherever they come from.

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to