From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stephen Leake Newsgroups: gmane.emacs.devel Subject: Re: documentation on how to add packages to ELPA? Date: Sun, 22 Dec 2013 05:45:51 -0600 Message-ID: <85lhzdw1lc.fsf@stephe-leake.org> References: <85wqixx0n4.fsf@stephe-leake.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1387712767 29075 80.91.229.3 (22 Dec 2013 11:46:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 22 Dec 2013 11:46:07 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 22 12:46:13 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VuhU2-0000b5-IZ for ged-emacs-devel@m.gmane.org; Sun, 22 Dec 2013 12:46:10 +0100 Original-Received: from localhost ([::1]:57413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuhU2-0002yT-6e for ged-emacs-devel@m.gmane.org; Sun, 22 Dec 2013 06:46:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuhTt-0002xe-IX for emacs-devel@gnu.org; Sun, 22 Dec 2013 06:46:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VuhTl-0004hl-7x for emacs-devel@gnu.org; Sun, 22 Dec 2013 06:46:01 -0500 Original-Received: from cdptpa-outbound-snat.email.rr.com ([107.14.166.225]:35839 helo=cdptpa-oedge-vip.email.rr.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuhTl-0004hb-4U for emacs-devel@gnu.org; Sun, 22 Dec 2013 06:45:53 -0500 Original-Received: from [70.94.38.149] ([70.94.38.149:54885] helo=TAKVER) by cdptpa-oedge03 (envelope-from ) (ecelerity 3.5.0.35861 r(Momo-dev:tip)) with ESMTP id CC/92-17005-0F0D6B25; Sun, 22 Dec 2013 11:45:52 +0000 In-Reply-To: (Stefan Monnier's message of "Sun, 22 Dec 2013 05:46:23 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (windows-nt) X-RR-Connecting-IP: 107.14.168.142:25 X-Cloudmark-Score: 0 X-detected-operating-system: by eggs.gnu.org: BaiduSpider X-Received-From: 107.14.166.225 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:166728 Archived-At: Stefan Monnier 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