]> code.delx.au - gnu-emacs-elpa/blob - README
Merge branch 'master' of github.com:leoliu/ggtags
[gnu-emacs-elpa] / README
1 Copyright (C) 2010-2011 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
3
4
5 This branch contains the sources, deployment scripts, and auxilliary
6 files for the Emacs Lisp package archive (elpa.gnu.org).
7
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).
11
12
13 * DIRECTORY LAYOUT
14
15 ** admin/ -- scripts for administering the package archive.
16 ** html/ -- HTML for the elpa.gnu.org website.
17 ** packages/ -- source code for the packages.
18
19
20 * PACKAGES
21
22 ** Contents of the packages/ directory:
23 This directory holds the package sources, with one subdirectory for
24 each package.
25
26 ** To add a package:
27
28 *** Add a simple (1-file) package as packages/NAME/NAME.el.
29
30 *** Add a multi-file package as a directory, packages/NAME.
31
32 *** Commit your changes the usual way ("git add", "git commit", etc).
33
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.
37
38
39 * DEPLOYMENT
40
41 ** To deploy the package repository locally:
42
43 make
44
45 This compiles and generates autoloads for all the packages in the
46 packages/ directory. The resulting archive is the same packages/
47 directory.
48
49 ** To deploy the package repository as a remotely-accessible archive:
50
51 make archive
52
53 or
54
55 make archive-full
56
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
59 packages.
60
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.
64
65 ** To access a deployed archive
66
67 To access the archive via HTTP, have a symlink (say) /var/www/packages
68 pointing to DEST/packages, and set up Emacs with
69
70 (setq package-archives '(("new-elpa" . "http://foo.com/packages")))
71
72 You can also access the archive via normal file access. Such "local
73 archives" are useful for debugging:
74
75 (setq package-archives '(("local-elpa" . ".../elpa/packages")))
76
77 ** Notes specific to elpa.gnu.org
78
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
81
82 su elpa
83 cd ~elpa/elpa
84 bzr up
85
86 Then make a full archive deployment, as discussed above. The symlink
87 /var/www/packages points to the staging package directory under
88 /home/elpa/.
89
90 The Org mode dailies are also fetched and added by the script
91 admin/org-synch.sh, run as a cron job.
92
93 \f
94 This file is part of GNU Emacs.
95
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.
100
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.
105
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/>.
108
109 \f
110 Local variables:
111 mode: outline
112 paragraph-separate: "[ \f]*$"
113 end: