1 Copyright (C) 2010-2011 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
5 This branch contains the sources, deployment scripts, and auxilliary
6 files for the Emacs Lisp package archive (elpa.gnu.org).
8 This file explains the branch layout, how to add and edit packages,
9 and how to deploy the archive (either on elpa.gnu.org, or a local copy
10 for testing purposes).
15 ** admin/ -- scripts for administering the package archive.
16 ** html/ -- HTML for the elpa.gnu.org website.
17 ** packages/ -- source code for the packages.
22 ** Contents of the packages/ directory:
23 This directory holds the package sources, with one subdirectory for
28 *** Add a simple (1-file) package as packages/NAME/NAME.el.
30 *** Add a multi-file package as a directory, packages/NAME.
32 *** Commit your changes the usual way ("bzr add", "bzr commit", etc).
34 Changes in the Bzr repository do not immediately propagate to the
35 user-facing archive (what users see when they do `M-x list-packages').
36 That is done by deploying the archive.
41 ** To use the package repository as a "site installation" of packages:
45 This compiles and generates autoloads for all the packages in the
46 packages/ directory, and creates a site/ directory containing symlinks
47 to the package directories.
49 Now you have to add this site/ directory to `package-directory-list',
50 and all the packages will be available.
52 ** To deploy the package repository as a remotely-accessible archive:
60 This deploys the packages to the archive/ directory. Unlike "make
61 site", this makes a full copy of the packages, and tars up multi-file
64 A full deployment also copies the admin scripts to archive/admin, and
65 fetches externally hosted packages (currently, the Org daily builds)
66 and adds them to the archive.
68 ** To access a deployed archive
70 To access the archive via HTPP, have a symlink (say) /var/www/packages
71 pointing to DEST/packages, and set up Emacs with
73 (setq package-archives '(("new-elpa" . "http://foo.com/packages")))
75 You can also access the archive via normal file access. Such "local
76 archives" are useful for debugging:
78 (setq package-archives '(("local-elpa" . "DEST/packages")))
80 ** Notes specific to elpa.gnu.org
82 The way things are set up on this machine, we refresh the archive by
83 logging in (login access set up by FSF admins), and
89 Then make a full archive deployment, as discussed above. The symlink
90 /var/www/packages points to the staging package directory under
93 The Org mode dailies are also fetched and added by the script
94 admin/org-synch.sh, run as a cron job.
97 This file is part of GNU Emacs.
99 GNU Emacs is free software: you can redistribute it and/or modify
100 it under the terms of the GNU General Public License as published by
101 the Free Software Foundation, either version 3 of the License, or
102 (at your option) any later version.
104 GNU Emacs is distributed in the hope that it will be useful,
105 but WITHOUT ANY WARRANTY; without even the implied warranty of
106 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
107 GNU General Public License for more details.
109 You should have received a copy of the GNU General Public License
110 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
115 paragraph-separate: "[
\f]*$"