unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* documentation on how to add packages to ELPA?
@ 2013-12-21 23:08 Stephen Leake
  2013-12-21 23:34 ` Jambunathan K
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Stephen Leake @ 2013-12-21 23:08 UTC (permalink / raw)
  To: emacs-devel

Is there any documentation on how to add packages to ELPA?

I've looked in Emacs 24.3 package.el,
http://www.emacswiki.org/emacs/ELPA, http://elpa.gnu.org/

package.el talks about creating a tar file, but doesn't say where to
put/send that tar file.

The wiki has a reference to a short gmane mailing list discussion of
ELPA policy, which mentions sending email to a couple people, but that's
pretty old so I'm wondering if it is up to date.

There has been mention here of packages in ELPA being automatically
updated somehow; where is that documented?

I'd like to add Ada mode 5.0 to ELPA, but I don't understand how to go
about doing that.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-21 23:08 documentation on how to add packages to ELPA? Stephen Leake
@ 2013-12-21 23:34 ` Jambunathan K
  2013-12-22  0:01 ` Xue Fuqiao
  2013-12-22 10:46 ` Stefan Monnier
  2 siblings, 0 replies; 7+ messages in thread
From: Jambunathan K @ 2013-12-21 23:34 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

Stephen Leake <stephen_leake@stephe-leake.org> writes:

> Is there any documentation on how to add packages to ELPA?

This is what I could find.

http://savannah.gnu.org/git/?group=emacs
http://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-21 23:08 documentation on how to add packages to ELPA? Stephen Leake
  2013-12-21 23:34 ` Jambunathan K
@ 2013-12-22  0:01 ` Xue Fuqiao
  2013-12-22 10:46 ` Stefan Monnier
  2 siblings, 0 replies; 7+ messages in thread
From: Xue Fuqiao @ 2013-12-22  0:01 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

On Sun, Dec 22, 2013 at 7:08 AM, Stephen Leake
<stephen_leake@stephe-leake.org> wrote:
> Is there any documentation on how to add packages to ELPA?

In (info "(elisp) Multi-file Packages"):

  If the content directory contains a file named ‘dir’, this is assumed
  to be an Info directory file made with ‘install-info’.  *Note Invoking
  install-info: (texinfo)Invoking install-info.  The relevant Info files
  should also be present in the content directory.  In this case, Emacs
  will automatically add the content directory to ‘Info-directory-list’
  when the package is activated.

In README of the `elpa' branch:

  ** To add a package:
  [...]
  *** Add a multi-file package as a directory, packages/NAME.
  *** Commit your changes the usual way ("git add", "git commit", etc).

AIUI you don't need to create the tar file.

-- 
http://www.gnu.org/software/emacs/



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-21 23:08 documentation on how to add packages to ELPA? Stephen Leake
  2013-12-21 23:34 ` Jambunathan K
  2013-12-22  0:01 ` Xue Fuqiao
@ 2013-12-22 10:46 ` Stefan Monnier
  2013-12-22 11:45   ` Stephen Leake
  2 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2013-12-22 10:46 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> Is there any documentation on how to add packages to ELPA?

If you mean GNU ELPA, then you just need to add its source code under
`packages' in the `elpa' Git branch.  Don't add a "ada-pkg.el" file,
instead make sure that if your directory name is "ada-mode" you have an
"ada-mode.el" file with a "Version:" pseudo-header.


        Stefan



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-22 10:46 ` Stefan Monnier
@ 2013-12-22 11:45   ` Stephen Leake
  2013-12-23  1:24     ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Stephen Leake @ 2013-12-22 11:45 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> Is there any documentation on how to add packages to ELPA?
>
> If you mean GNU ELPA, then you just need to add its source code under
> `packages' in the `elpa' Git branch.  Don't add a "ada-pkg.el" file,
> instead make sure that if your directory name is "ada-mode" you have an
> "ada-mode.el" file with a "Version:" pseudo-header.

How do I specify package metadata such as min and max Emacs version,
since I don't write the define-package args?

Where is the "Version:" psuedo-header defined? Is it just

;; Version: 5.0

or more complex?


I actually have two modes, one minor mode, shared support files, and
tests in what I want to add:

build/
    contains test drivers and two Makefiles

test/
    all test input files

README

ada-build.el
ada-fix-error.el
ada-gnat-compile.el
ada-gnat-xref.el
    Ada xref backend using gnatxref tool
ada-grammar-wy.el
    ada-grammar.wy processed by external code
ada-grammar.wy
    the Ada grammar for the indentation/navigation engine
ada-imenu.el
ada-indent-user-options.el
ada-mode.el
    the main Ada mode file
ada-mode.texi
ada-skel.el
ada-wisi-opentoken.el
ada-wisi.el
    An indentation/navigation engine for Ada mode, using wisi
ada_license.text
doclicense.texi
gnat-core.el
    common interface to the GNAT compiler (multi-language build tool + gcc)
gnat-inspect.el
    interface to the GNAT multi-language cross reference tool
    gnatinspect, Ada xref backend using gnatinspect, and a minor mode
    for non-Ada files
gpr-grammar-wy.el
gpr-grammar.wy
    Grammar for the gpr GNAT configuration language
gpr-mode.el
    main mode for GPR files
gpr-mode.texi
gpr-skel.el
gpr-wisi.el
wisi-compile.el
wisi-parse.el
wisi.el
    the wisi generalized LALR parser

both gpr-mode and ada-mode use the wisi parser (although they have a
layer of indirection allowing another parser) and gnat-core.

ada-mode can use either ada-gnat-xref or gnat-inspect for cross
referencing.

gpr-mode uses parts of ada-mode (they should be migrated to gnat-core; I
work on that later).

gnat-inspect minor mode is useful with any language for which gcc
outputs .gli files


This could logically be four packages:

gnat
    contains all files with gnat- prefix except gnat-inspect

gnat-inspect
    contains gnat-inspect.el
    requires gnat

ada-mode
    contains all files with ada- prefix
    requires gnat
    requires wisi
    optional gnat-inspect

gpr-mode
    contains all files with gpr- prefix
    requires ada-mode
    requires gnat
    requires wisi

wisi
    contains all files with wisi- prefix


Or three packages; lump gnat-inspect with gnat. Except that needs to be
named 'gnat-inspect', to identify the minor mode?

It sounds like the Gnu ELPA machinery can cope with this, but not with a
single "package" containing two modes and one minor mode.

wisi is a pure support package; it provides no mode. Is that a problem?

I guess package.el doesn't actually care about modes or minor modes; it
just processes autoloads and metadata headers. In which case, two modes
in one package is not a problem?

Is there metadata support for "optional" as opposed to "required"
packages?

Should the build and test files be included in Gnu ELPA? It would not be
easy splitting those into four packages, but it could be done.

--
-- Stephe



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-22 11:45   ` Stephen Leake
@ 2013-12-23  1:24     ` Stefan Monnier
  2013-12-23 22:58       ` Xue Fuqiao
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2013-12-23  1:24 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> How do I specify package metadata such as min and max Emacs version,
> since I don't write the define-package args?

The dependencies are specified in the "Package-Requires:" pseudo-header
(grep for it in elpa/packages/*.el to see examples).

> Where is the "Version:" psuedo-header defined? Is it just
> ;; Version: 5.0

Yes.

> or more complex?

No.  It's the format understood by the lisp-mnt.el package, and used by
ELPA single-file packages.

> Is there metadata support for "optional" as opposed to "required"
> packages?

No.  The purpose of "Package-Require" is to help the user install
the package.  If it's optional, then it's simply not required.

> Should the build and test files be included in Gnu ELPA?

If at all possible (i.e. if the copyright status is clear), then please
do include them in the `elpa' branch, yes.

If you don't want all files included in the tarball distributed on GNU
ELPA, you can use a .elpaignore file (see js2-mode/.elpaignore for the
only existing example so far).


        Stefan



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: documentation on how to add packages to ELPA?
  2013-12-23  1:24     ` Stefan Monnier
@ 2013-12-23 22:58       ` Xue Fuqiao
  0 siblings, 0 replies; 7+ messages in thread
From: Xue Fuqiao @ 2013-12-23 22:58 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Stephen Leake, emacs-devel

On Mon, Dec 23, 2013 at 9:24 AM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> If you don't want all files included in the tarball distributed on GNU
> ELPA, you can use a .elpaignore file (see js2-mode/.elpaignore for the
> only existing example so far).

I only found a .gitignore in js2-mode/.  Anyway, there's a .elpaignore
in diff-hl[fn:1].

Footnotes:

[fn:1] http://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/packages/diff-hl/.elpaignore

-- 
http://www.gnu.org/software/emacs/



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-12-23 22:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-21 23:08 documentation on how to add packages to ELPA? Stephen Leake
2013-12-21 23:34 ` Jambunathan K
2013-12-22  0:01 ` Xue Fuqiao
2013-12-22 10:46 ` Stefan Monnier
2013-12-22 11:45   ` Stephen Leake
2013-12-23  1:24     ` Stefan Monnier
2013-12-23 22:58       ` Xue Fuqiao

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).