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
