From eb8694ee59c211351b55601fdc88338b9c888f81 Mon Sep 17 00:00:00 2001
From: Chong Yidong
Date: Mon, 7 Mar 2011 19:08:03 -0500
Subject: Mention elpa branch in admin/notes/BRANCH; clarify admin/notes/elpa.
---
admin/notes/BRANCH | 7 ++++++
admin/notes/elpa | 62 +++++++++++++++++++-----------------------------------
2 files changed, 29 insertions(+), 40 deletions(-)
(limited to 'admin')
diff --git a/admin/notes/BRANCH b/admin/notes/BRANCH
index 53f3d9603ca..9f09135f206 100644
--- a/admin/notes/BRANCH
+++ b/admin/notes/BRANCH
@@ -23,3 +23,10 @@ on what branch at any time.
If you are looking at this file in a branch other than the trunk,
there may be some branch-specific documentation below this line.
________________________________________________________________________
+
+* elpa
+
+ This branch does not contain a copy of Emacs, but of the Emacs Lisp
+ package archive (elpa.gnu.org). See admin/notes/elpa for further
+ explanation, and the README file in the branch for usage
+ instructions.
diff --git a/admin/notes/elpa b/admin/notes/elpa
index e28d81e6d6e..cbea8cc1dfa 100644
--- a/admin/notes/elpa
+++ b/admin/notes/elpa
@@ -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.
+The GNU Emacs package archive, at elpa.gnu.org, is managed using Bzr.
+The Bzr branch is hosted on Savannah, and you can check it out with
+
+ bzr branch bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa elpa
+
+Changes made to this branch propagate to elpa.gnu.org as follows.
+There exists a copy of the elpa branch on that machine. Someone with
+access must log in, pull the latest changes from Savannah, and run a
+"deployment" script that generates the content at the web-visible
+location http://elpa.gnu.org/packages.
+
+The reason things are set up this way, instead of using the package
+upload utilities in package-x.el, is so that Emacs hackers can easily
+edit the contents of the Savannah "elpa" branch, with the aid of
+version control. (For instance, multi-file packages are stored on the
+Bzr branch in source form, not as tarfiles.) Because deployment is a
+semi-manual process, this allows us some flexibility in making changes
+to the branch on Savannah. Furthermore, one can use the elpa branch
+to deploy a "local" copy of the package archive, for testing.
+
+For details on how to use the elpa branch, see that README file in
+that branch.
--
cgit v1.2.1
From 7f0869bd1d2f8681f86b0104dff1392d29634d0e Mon Sep 17 00:00:00 2001
From: Chong Yidong
Date: Fri, 11 Mar 2011 17:53:47 -0500
Subject: admin/notes/elpa: Make Bzr checkout directions more explicit.
---
admin/notes/elpa | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
(limited to 'admin')
diff --git a/admin/notes/elpa b/admin/notes/elpa
index cbea8cc1dfa..db14456fe32 100644
--- a/admin/notes/elpa
+++ b/admin/notes/elpa
@@ -1,24 +1,24 @@
NOTES ON THE EMACS PACKAGE ARCHIVE
-The GNU Emacs package archive, at elpa.gnu.org, is managed using Bzr.
-The Bzr branch is hosted on Savannah, and you can check it out with
+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 made to this branch propagate to elpa.gnu.org as follows.
+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 must log in, pull the latest changes from Savannah, and run a
-"deployment" script that generates the content at the web-visible
-location http://elpa.gnu.org/packages.
+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 things are set up this way, instead of using the package
-upload utilities in package-x.el, is so that Emacs hackers can easily
-edit the contents of the Savannah "elpa" branch, with the aid of
-version control. (For instance, multi-file packages are stored on the
-Bzr branch in source form, not as tarfiles.) Because deployment is a
-semi-manual process, this allows us some flexibility in making changes
-to the branch on Savannah. Furthermore, one can use the elpa branch
-to deploy a "local" copy of the package archive, for testing.
+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.)
-For details on how to use the elpa branch, see that README file in
-that branch.
+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.
--
cgit v1.2.1
From 8d9101d850b5ad006ce41a231f294ea6de93986a Mon Sep 17 00:00:00 2001
From: Chong Yidong
Date: Sat, 12 Mar 2011 22:50:33 -0500
Subject: admin/admin.el: Add some code for deploying web manuals.
---
admin/admin.el | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 230 insertions(+)
(limited to 'admin')
diff --git a/admin/admin.el b/admin/admin.el
index 717bfee702d..70958ce1a76 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -212,6 +212,236 @@ Root must be the root of an Emacs source tree."
"\\\\def\\\\year{")
"\\([0-9]\\{4\\}\\)}.+%.+copyright year"))))))
+;;; Various bits of magic for generating the web manuals
+
+(defun make-manuals (root)
+ "Generate the web manuals for the Emacs webpage."
+ (interactive "DEmacs root directory: ")
+ (let* ((dest (expand-file-name "manual" root))
+ (html-node-dir (expand-file-name "html_node" dest))
+ (html-mono-dir (expand-file-name "html_mono" dest))
+ (txt-dir (expand-file-name "text" dest))
+ (dvi-dir (expand-file-name "dvi" dest))
+ (ps-dir (expand-file-name "ps" dest)))
+ (when (file-directory-p dest)
+ (if (y-or-n-p (format "Directory %s exists, delete it first?" dest))
+ (delete-directory dest t)
+ (error "Aborted")))
+ (make-directory dest)
+ (make-directory html-node-dir)
+ (make-directory html-mono-dir)
+ (make-directory txt-dir)
+ (make-directory dvi-dir)
+ (make-directory ps-dir)
+ ;; Emacs manual
+ (let ((texi (expand-file-name "doc/emacs/emacs.texi" root)))
+ (manual-html-node texi (expand-file-name "emacs" html-node-dir))
+ (manual-html-mono texi (expand-file-name "emacs.html" html-mono-dir))
+ (manual-txt texi (expand-file-name "emacs.txt" txt-dir))
+ (manual-pdf texi (expand-file-name "emacs.pdf" dest))
+ (manual-dvi texi (expand-file-name "emacs.dvi" dvi-dir)
+ (expand-file-name "emacs.ps" ps-dir)))
+ ;; Lisp manual
+ (let ((texi (expand-file-name "doc/lispref/elisp.texi" root)))
+ (manual-html-node texi (expand-file-name "elisp" html-node-dir))
+ (manual-html-mono texi (expand-file-name "elisp.html" html-mono-dir))
+ (manual-txt texi (expand-file-name "elisp.txt" txt-dir))
+ (manual-pdf texi (expand-file-name "elisp.pdf" dest))
+ (manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir)
+ (expand-file-name "elisp.ps" ps-dir)))
+ (message "Manuals created in %s" dest)))
+
+(defconst manual-doctype-string
+ "\n\n")
+
+(defconst manual-meta-string
+ "
+
+
+
+\n\n")
+
+(defconst manual-style-string "\n")
+
+(defun manual-html-mono (texi-file dest)
+ "Run Makeinfo on TEXI-FILE, emitting mono HTML output to DEST.
+This function also edits the HTML files so that they validate as
+HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
+the @import directive."
+ (call-process "makeinfo" nil nil nil
+ "--html" "--no-split" texi-file "-o" dest)
+ (with-temp-buffer
+ (insert-file-contents dest)
+ (setq buffer-file-name dest)
+ (manual-html-fix-headers)
+ (manual-html-fix-index-1)
+ (manual-html-fix-index-2 t)
+ (manual-html-fix-node-div)
+ (goto-char (point-max))
+ (re-search-backward "