* admin/notes/bzr: Finally got the right locations.conf syntax
[bpt/emacs.git] / admin / notes / elpa
dissimilarity index 97%
index e28d81e..db14456 100644 (file)
@@ -1,42 +1,24 @@
-NOTES ON THE EMACS PACKAGE ARCHIVE
-
-Here are instructions on uploading files to the package archive at
-elpa.gnu.org, for Emacs maintainers.  (If you are not a maintainer,
-contact us if you want to submit a package.)
-
-1. You will need login access to elpa.gnu.org.  You will also need to
-   get the FSF sysadmins to allow ssh access through the FSF firewall
-   for your local machine.  Ensure that your uid, USER, is in the
-   `elpa' group on elpa.gnu.org; this gives you write access to the
-   bzr repository from which the packages are managed.
-
-2. Go to your bzr repository on your local machine.  Of, if you don't
-   have one (you should, if you're tracking Emacs bzr), make one:
-
-     cd $DEVHOME
-     bzr init-repo elpa/
-     cd elpa
-
-   Create a branch for elpa:
-
-     bzr branch bzr+ssh://USER@elpa.gnu.org/home/elpa/package-repo package-repo
-
-   Bind the branch:
-
-     cd package-repo/
-     echo "public_branch = bzr+ssh://USER@elpa.gnu.org/home/elpa/package-repo" >> .bzr/branch/branch.conf
-     bzr bind bzr+ssh://USER@elpa.gnu.org/home/elpa/package-repo
-
-   Now you should be able to do `bzr up' and `bzr commit'.
-
-3. Changes in bzr do not immediately propagate to the user-facing tree
-   (i.e., what users see when they do `M-x list-packages').  That tree
-   is created by a (daily) cron job that does "bzr export".  If for
-   some reason you need to refresh the user-facing tree immediately,
-   run /home/elpa/bin/package-update.sh as the "elpa" user.
-
-   The Org mode dailies are not part of the repository.  After the
-   package-update.sh script creates the user-facing tree, it copies
-   the daily tarfile hosted on orgmode.org directly into that tree.
-
-4. FIXME: How to actually upload a package file.
+NOTES ON THE EMACS PACKAGE ARCHIVE
+
+The GNU Emacs package archive, at elpa.gnu.org, is managed using a Bzr
+branch named "elpa", hosted on Savannah.  To check it out:
+
+  bzr branch bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa elpa
+  cd elpa
+  echo "public_branch = bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa" >> .bzr/branch/branch.conf
+  bzr bind bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/elpa
+  [create task branch for edits, etc.]
+
+Changes to this branch propagate to elpa.gnu.org in a semi-manual way.
+There exists a copy of the elpa branch on that machine.  Someone with
+access logs in, pulls the latest changes from Savannah, and runs a
+"deployment" script.  This script (which is itself kept in the Bzr
+branch) generates the content visible at http://elpa.gnu.org/packages.
+
+The reason we set things up this way, instead of using the package
+upload commands in package-x.el, is to let Emacs hackers conveniently
+edit the contents of the "elpa" branch.  (In particular, multi-file
+packages are stored on the branch in source form, not as tarfiles.)
+
+It is easy to use the elpa branch to deploy a "local" copy of the
+package archive.  For details, see the README file in the elpa branch.