[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ELPA-diffs] ELPA branch, master, updated. 4b34f9d0c918c452cfc0cd4605f3e

From: Stefan Monnier
Subject: [ELPA-diffs] ELPA branch, master, updated. 4b34f9d0c918c452cfc0cd4605f3e6d6f2eab50f
Date: Thu, 15 Aug 2013 16:20:32 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "ELPA".

The branch, master has been updated
       via  4b34f9d0c918c452cfc0cd4605f3e6d6f2eab50f (commit)
      from  328e8e72efc2d4e073992591627751e2750390e5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4b34f9d0c918c452cfc0cd4605f3e6d6f2eab50f
Author: Stefan Monnier <address@hidden>
Date:   Thu Aug 15 12:20:16 2013 -0400

    Fix up deployment script

diff --git a/admin/archive-contents.el b/admin/archive-contents.el
index e2154df..2d588e9 100644
--- a/admin/archive-contents.el
+++ b/admin/archive-contents.el
@@ -32,9 +32,16 @@
 (defconst archive-re-no-dot "\\`\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
   "Regular expression matching all files except \".\" and \"..\".")
+(defun archive--version-to-list (vers)
+  (when vers
+    (let ((l (version-to-list vers)))
+      ;; Signal an error for things like "1.02" which is parsed as "1.2".
+      (assert (equal vers (package-version-join l)))
+      l)))
 (defun archive--convert-require (elt)
   (list (car elt)
-       (version-to-list (car (cdr elt)))))
+       (archive--version-to-list (car (cdr elt)))))
 (defun archive--strip-rcs-id (str)
   "Strip RCS version ID from the version string STR.
@@ -44,7 +51,7 @@ Otherwise return nil."
     (when (string-match "\\`[ \t]*[$]Revision:[ \t]+" str)
       (setq str (substring str (match-end 0))))
     (condition-case nil
-       (if (version-to-list str)
+       (if (archive--version-to-list str)
       (error nil))))
@@ -79,10 +86,12 @@ Delete backup files also."
              (push (if (car simple-p)
                        (apply #'archive--process-simple-package
                               dir pkg (cdr simple-p))
-                      (apply 'archive--write-pkg-file dir pkg (cdr simple-p))
+                      (if simple-p
+                          (apply #'archive--write-pkg-file
+                                 dir pkg (cdr simple-p)))
                      (archive--process-multi-file-package dir pkg))
-       (error (error "Error in %s: %S" dir v))))
+       ((debug error) (error "Error in %s: %S" dir v))))
       (pp (nreverse packages) (current-buffer))
       (write-region nil nil "archive-contents"))))
@@ -156,8 +165,7 @@ REQ is a list of requirements.
 Otherwise, return nil."
   (let* ((pkg-file (expand-file-name (concat pkg "-pkg.el") dir))
         (mainfile (expand-file-name (concat pkg ".el") dir))
-         (files (directory-files dir nil "\\.el\\'"))
-        version description req)
+         (files (directory-files dir nil "\\.el\\'")))
     (setq files (delete (concat pkg "-pkg.el") files))
     (setq files (delete (concat pkg "-autoloads.el") files))
@@ -168,17 +176,20 @@ Otherwise, return nil."
        (goto-char (point-min))
        (if (not (looking-at ";;;.*---[ \t]*\\(.*?\\)[ \t]*\\(-\\*-.*-\\*-[ 
             (error "Can't parse first line of %s" mainfile)
-          (setq description (match-string 1))
-          (setq version
-                (or (archive--strip-rcs-id (lm-header "package-version"))
-                    (archive--strip-rcs-id (lm-header "version"))
-                    (error "Missing `version' header")))
           ;; Grab the other fields, which are not mandatory.
-          (let ((requires-str (lm-header "package-requires")))
-            (if requires-str
-                (setq req (mapcar 'archive--convert-require
-                                  (car (read-from-string requires-str))))))
-          (list (= (length files) 1) version description req))))
+          (let* ((description (match-string 1))
+                 (version
+                  (or (archive--strip-rcs-id (lm-header "package-version"))
+                      (archive--strip-rcs-id (lm-header "version"))
+                      (error "Missing `version' header")))
+                 (requires-str (lm-header "package-requires"))
+                 (pt (lm-header "package-type"))
+                 (simple (if pt (equal pt "simple") (= (length files) 1)))
+                 (req
+                  (if requires-str
+                      (mapcar 'archive--convert-require
+                              (car (read-from-string requires-str))))))
+            (list simple version description req)))))
      ((not (file-exists-p pkg-file))
       (error "Can find single file nor package desc file in %s" dir)))))
@@ -207,7 +218,8 @@ Rename DIR/PKG.el to PKG-VERS.el, delete DIR, and return 
the descriptor."
       (basic-save-buffer)               ;Less chatty than save-buffer.
   (delete-directory dir t)
-  (cons (intern pkg) (vector (version-to-list vers) req desc 'single)))
+  (cons (intern pkg) (vector (archive--version-to-list vers)
+                             req desc 'single)))
 (defun archive--make-changelog (dir srcdir)
   "Export Git log info of DIR into a ChangeLog file."
@@ -239,12 +251,18 @@ Rename DIR/PKG.el to PKG-VERS.el, delete DIR, and return 
the descriptor."
 Rename DIR/ to PKG-VERS/, and return the descriptor."
   (let* ((exp (archive--multi-file-package-def dir pkg))
         (vers (nth 2 exp))
-        (req (mapcar 'archive--convert-require (nth 4 exp))))
+         (req-exp (nth 4 exp))
+        (req (mapcar 'archive--convert-require
+                      (if (eq 'quote (car-safe req-exp)) (nth 1 req-exp)
+                        (when req-exp
+                          (error "REQ should be a quoted constant: %S"
+                                 req-exp))))))
     (unless (equal (nth 1 exp) pkg)
       (error (format "Package name %s doesn't match file name %s"
                     (nth 1 exp) pkg)))
     (rename-file dir (concat pkg "-" vers))
-    (cons (intern pkg) (vector (version-to-list vers) req (nth 3 exp) 'tar))))
+    (cons (intern pkg) (vector (archive--version-to-list vers)
+                               req (nth 3 exp) 'tar))))
 (defun archive--multi-file-package-def (dir pkg)
   "Return the `define-package' form in the file DIR/PKG-pkg.el."
diff --git a/packages/README b/packages/README
index 426de05..5b1c430 100644
--- a/packages/README
+++ b/packages/README
@@ -11,24 +11,39 @@ This means that you can safely work on the next version 
here without
 worrying about the unstable code making it to GNU ELPA, and simply update
 the "version" when you want to release the new code.
-* External branches:
-Some packages have an external upstream branch.
-You should ideally be able to "bzr merge <URL>" from them, and it often
-works, but it generally requires some hand-holding to set it up.
-More specifically, the first "bzr merge" (ideally done when installing the
-package into `elpa') needs to be a "bzr join" since there's no
-common ancestor.  Worse, "bzr join" doesn't work so well with bzr-git, so
-you need to do a bit of gymnastics:
-   git clone <giturl>   # Done because bzr-git works better locally
-   bzr branch <localgit> tmp
-   cd tmp
-   bzr mkdir .newroot
-   bzr mv * .newroot/
-   ... maybe other bzr mv .<blabla> .newroot/ ...
-   bzr split .newroot
-   mv .newroot .../elpa/packages/<package>
-   cd .../elpa/packages/
-   bzr join <package>
+* Format
+Each package should follow the ELPA packaging conventions, but there are
+some differences due to the way the deployment script creates the packages
+and the web-pages from this source code:
+- Multi-file packages can put the package metadata in the main <pkg>.el file
+  in the format used for single-file packages, in which case the script
+  will auto-generate the <pkg>-pkg.el file.
+- the "URL:" header (or :url property) can be used to specify the home page
+  of the package, if it's maintained externally.
+- A "News:" section (or "NEWS" file) can/should be used to list the
+  user-visible changes of each version.
+- The "Package-Type: simple" header can be used to force the creation
+  of a single-file package even when there are several Elisp files in
+  the source (the other files will simply be ignored).
+* External branches
+Some packages are maintained in external branches.  These should be
+appropriately listed in the `externals-list' file.
+There are two different cases: subtrees and externals.
+In both cases, a copy of the code is kept in the `elpa' repository and
+should be sync'd with the upstream every once in a while.  This copy may
+include local changes, tho ideally these should be kept to a minimum.
+In the `subtree' case, the copy of the code is kept here in the
+corresponding `packages/<pkg>' directory.  You should be able to "git
+merge -s subtree" from the upstream branch.
+In the `external' case, the copy of the code is not kept here but in the
+`externals/<pkg>' branch in the `elpa' repository.
+You can check out all the external packages into the `packages' directory
+with the command:
+   make externals
diff --git a/packages/f90-interface-browser/f90-interface-browser.el 
index c33996c..19e7862 100644
--- a/packages/f90-interface-browser/f90-interface-browser.el
+++ b/packages/f90-interface-browser/f90-interface-browser.el
@@ -4,8 +4,9 @@
 ;; Author: Lawrence Mitchell <address@hidden>
 ;; Created: 2011-07-06
-;; Available-from: http://github.com/wence-/f90-iface/
+;; URL: http://github.com/wence-/f90-iface/
 ;; Version: 1.1
+;; Package-Type: simple


Summary of changes:
 admin/archive-contents.el                          |   56 +++++++++++++-------
 packages/README                                    |   57 ++++++++++++-------
 .../f90-interface-browser/f90-interface-browser.el |    3 +-
 3 files changed, 75 insertions(+), 41 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]