On Sat, Dec 24, 2011 at 1:29 PM, Robert Levy <[email protected]> wrote:
> In addition to 3rd-party libs there are also more fka-contrib libs that
> should probably be upgraded
> (see http://dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go) and
> it might be good to discuss those too.  By the way, I signed a contributor
> agreement recently, and there are a few libraries from contrib I would like
> to upgrade.  A couple that come to mind are graph -> algo.graph and prxml ->
> data.prxml.  How would I go about that?  Would I just create the repo and
> then someone would fork it into the Clojure github group?

There's quite a few steps - I'm attempting to distil them into a wiki
page so this is a good opportunity to list what I've got so far to get
some input.

You've got your CA on file and you're listed on
http://clojure.org/contributing - that's steps 1 & 2.

Are you on the clojure-dev mailing list? That's step 3 and that's
where implementation discussions typically happen.

You'll also need accounts on JIRA and Confluence (in theory if you
sign up for one, it creates your account on both but that doesn't seem
to happen reliably).

If Clojure/dev think it's a good idea to promote those contrib modules
to new contrib libraries, Clojure/core has to approve the new
namespaces and JIRA project names need to be agreed.

* Then Clojure/core create the new github repo:
** Project Name: {namespace} ; new namespace without "clojure." prefix
** Description: {description} ; description of library (either from
original or new, improved description)
** Team: Contrib Commit
** Add Post-Receive URL Service Hook:
http://infolace.dnsalias.net:8080/github-post (for autodoc)
** Disable Issues tab

* Then Clojure/core create the new JIRA project:
** Name: {namespace}
** Key: {projectname} ; uppercase, shortened version of namespace
** Project Lead: {username} ; this is why you need a JIRA account

* Then someone in the Contrib Commit team will update ci_data.clj (in
build.ci) with the new project details.
** Often this is Stuart Sierra but anyone with appropriate commit
permission can do this

* Then someone with build admin permissions:
** Creates a user account on Hudson (if needed; and sends you login details)
** Run the build.ci Hudson job
** Force Hudson to reload its configuration files

* At this point you can git clone the new clojure/{namespace} repo and:
** Migrate the old code across into the new Maven-based structure
** Add pom.xml (based off any of the new contrib projects) updated for
this project
** Ensure the unit tests pass on Clojure 1.2.1, Clojure 1.3.0 and
Clojure 1.4.0-master-SNAPSHOT
*** If there are no unit tests, please write some!
** Commit & Push

Hudson will automatically run matrix tests after a short period - or
you can login to build.clojure.org and force a build to run.

Once the tests pass, you can login to build.clojure.org and perform a
Maven release of your new contrib library. We don't seem to have
completely settled on versioning but most libraries start at 0.0.1 and
move to 0.1.0 for their first significant updated release. A 1.0.0
release requires review and approval by Clojure/core and they'll
usually have quite a few recommendations and/or changes required
before 1.0.0 is approved. In particular, pay attention to
http://dev.clojure.org/display/design/Library+Coding+Standards and
http://dev.clojure.org/display/doc/Guidelines+for+Clojure+Contrib+committers

Please also let me (Sean) know your JIRA username as well as when you
have running builds and the first Maven release so I can update
http://dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go and
http://dev.clojure.org/display/doc/Clojure+Contrib

If folks think this process description is accurate and comprehensive,
I'll create a wiki page based on it!
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to