all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
To: emacs-devel@gnu.org
Subject: Re: documentation on how to add packages to ELPA?
Date: Sun, 22 Dec 2013 05:45:51 -0600	[thread overview]
Message-ID: <85lhzdw1lc.fsf@stephe-leake.org> (raw)
In-Reply-To: <jwva9ftcght.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun, 22 Dec 2013 05:46:23 -0500")

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



  reply	other threads:[~2013-12-22 11:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2013-12-23  1:24     ` Stefan Monnier
2013-12-23 22:58       ` Xue Fuqiao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=85lhzdw1lc.fsf@stephe-leake.org \
    --to=stephen_leake@stephe-leake.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.