]> code.delx.au - gnu-emacs-elpa/blob - README
Add front-page /packages link.
[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 deploying the package archive.
16 See the DEPLOYMENT section for details.
17 ** html/ -- HTML for the elpa.gnu.org website.
18 ** packages/ -- source code for the packages.
19
20
21 * PACKAGES
22
23 ** Contents of the packages/ directory:
24
25 This directory holds the package sources. Unlike the deployed package
26 archive, multi-file packages are present here as directories, not tar
27 files. So, edits to the sources can be easily managed by Bzr.
28
29 *** Package sources
30 In the form of *.el files for simple (1-file) packages, or
31 subdirectories for multi-file packages.
32
33 ** To add a package:
34
35 *** Add a simple (1-file) package as packages/NAME-VERSION.el.
36
37 *** Add a multi-file package a directory, packages/NAME-VERSION.
38
39 *** Commit your changes
40 This is done the usual way ("bzr add", "bzr commit", etc).
41
42 Changes in the Bzr repository do not immediately propagate to the
43 user-facing archive (what users see when they do `M-x list-packages').
44 That is done by deploying the archive (see below).
45
46
47 * DEPLOYMENT
48
49 ** The package-update.sh script
50
51 Use the script admin/package-update.sh to deploy a partial or full
52 copy of the package archive. To run a partial deployment:
53
54 /PATH/TO/admin/package-update.sh DEST
55
56 This deploys the packages in packages/ to DEST/packages.
57
58 To run a full deployment:
59
60 /PATH/TO/admin/package-update.sh DEST 1
61
62 A full deployment additionally copies the admin scripts to DEST/admin,
63 creates a full tarball in DEST/packages/emacs-packages-latest.tgz, and
64 fetches externally hosted packages (currently, the Org daily builds)
65 and adds them to the archive.
66
67 The package-update.sh script only works if it lives in a bzr
68 repository. It uses `bzr export' to deploy from the repository to the
69 destination directory. If you have uncommitted changes in the working
70 copy, those changes are not deployed.
71
72 You can view the deployment log at DEST/update-log.
73
74 The other scripts in the admin/ subdirectory are used for fetching the
75 Org dailies.
76
77 ** Accessing a deployed archive
78
79 To access the archive via HTPP, have a symlink (say) /var/www/packages
80 pointing to DEST/packages, and set up Emacs with
81
82 (setq package-archives '(("new-elpa" . "http://foo.com/packages")))
83
84 You can also access the archive via normal file access. Such "local
85 archives" are useful for debugging:
86
87 (setq package-archives '(("local-elpa" . "DEST/packages")))
88
89 ** Notes specific to elpa.gnu.org
90
91 The way things are set up on this machine, we refresh the archive by
92 logging in (login access set up by FSF admins), and
93
94 su elpa
95 cd ~elpa/elpa
96 bzr up
97 ./admin/package-update /home/elpa/staging/ 1
98
99 The symlink /var/www/packages points to /home/elpa/staging/packages.
100
101 The Org mode dailies are fetched and added by the script
102 admin/org-synch.sh, which is run as a cron job (we also run this
103 script during deployment).
104
105 \f
106 This file is part of GNU Emacs.
107
108 GNU Emacs is free software: you can redistribute it and/or modify
109 it under the terms of the GNU General Public License as published by
110 the Free Software Foundation, either version 3 of the License, or
111 (at your option) any later version.
112
113 GNU Emacs is distributed in the hope that it will be useful,
114 but WITHOUT ANY WARRANTY; without even the implied warranty of
115 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
116 GNU General Public License for more details.
117
118 You should have received a copy of the GNU General Public License
119 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
120
121 \f
122 Local variables:
123 mode: outline
124 paragraph-separate: "[ \f]*$"
125 end: