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 ("git add", "git commit", etc).
34 Changes in the Git 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 deploy the package repository locally:
45 This compiles and generates autoloads for all the packages in the
46 packages/ directory. The resulting archive is the same packages/
49 ** To deploy the package repository as a remotely-accessible archive:
57 This deploys the packages to the archive/ directory. Unlike "make
58 site", this makes a full copy of the packages, and tars up multi-file
61 A full deployment also copies the admin scripts to archive/admin, and
62 fetches externally hosted packages (currently, the Org daily builds)
63 and adds them to the archive.
65 ** To access a deployed archive
67 To access the archive via HTTP, have a symlink (say) /var/www/packages
68 pointing to DEST/packages, and set up Emacs with
70 (setq package-archives '(("new-elpa" . "http://foo.com/packages")))
72 You can also access the archive via normal file access. Such "local
73 archives" are useful for debugging:
75 (setq package-archives '(("local-elpa" . ".../elpa/packages")))
77 ** Notes specific to elpa.gnu.org
79 The way things are set up on this machine, we refresh the archive by
80 logging in (login access set up by FSF admins), and
86 Then make a full archive deployment, as discussed above. The symlink
87 /var/www/packages points to the staging package directory under
90 The Org mode dailies are also fetched and added by the script
91 admin/org-synch.sh, run as a cron job.
94 This file is part of GNU Emacs.
96 GNU Emacs is free software: you can redistribute it and/or modify
97 it under the terms of the GNU General Public License as published by
98 the Free Software Foundation, either version 3 of the License, or
99 (at your option) any later version.
101 GNU Emacs is distributed in the hope that it will be useful,
102 but WITHOUT ANY WARRANTY; without even the implied warranty of
103 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
104 GNU General Public License for more details.
106 You should have received a copy of the GNU General Public License
107 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
112 paragraph-separate: "[
\f]*$"