emacs-devel
[Top][All Lists]
Advanced

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

Re: non-gnu elpa issue tracking


From: Tim Cross
Subject: Re: non-gnu elpa issue tracking
Date: Mon, 14 Dec 2020 09:59:21 +1100



On Sun, 13 Dec 2020 at 20:54, Andrea Corallo <akrl@sdf.org> wrote:
Tim Cross <theophilusx@gmail.com> writes:

> On Sun, 13 Dec 2020 at 15:56, Richard Stallman <rms@gnu.org> wrote:
>
>  [[[ To any NSA and FBI agents reading my email: please consider    ]]]
>  [[[ whether defending the US Constitution against all enemies,     ]]]
>  [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>    > > I think a mandatory requirement should simply be that any
>    > > packages which go into non-GNU ELPA are hosted on an approved
>    > > platform. We could point to a list of such hosting providers
>    > > e.g. https://www.gnu.org/software/repo-criteria-evaluation.html
>    > > and say Grade C or better only. .
>
>    > There is no such requirement for GNU ELPA at the moment.
>
>  GNU ELPA packages are hosted inside GNU ELPA itself.  The package
>  developers update their packages inside GNU ELPA.
>
>  NonGNU ELPA will be quite different.  Packages will generally be
>  hosted elsewhere.  We won't insist that the developers do things
>  in the way we would consider acceptable in the GNU Project.
>
> Sorry, but I don't think this is an accurate statement. The GNU ELPA repository has external packages where the code is
> primarily maintained/developed externally, often on github. A 'regular' process pulls the data into the GNU ELPA
> repository to generate new/updated package versions. 

Are you sure?  AFAIK there's no such regular process, merging code from
outside is done manually by the package maintainer or often by Stefan.

Also an 'external package' is just a package hosted in a dedicated
branch in elpa.git (BTW I believe now all packages are external).  And
yes 'external' is probably not the best naming for this.

  Andrea


I could be wrong about the process being automated. 

However, from the elpa git repository, the externals-list file says

;; List of packages that are maintained externally.
;; The list is made of elements of the form (NAME KIND URL OPTS...).

and that list contains the following -

(("ace-window" :external "https://github.com/abo-abo/ace-window")
 ("ack" :external "https://github.com/leoliu/ack-el")
 ("aggressive-indent" :external "https://github.com/Malabarba/aggressive-indent-mode")
 ("ahungry-theme" :external "https://github.com/ahungry/color-theme-ahungry")
 ("async" :external "https://github.com/jwiegley/emacs-async")
 ("avy" :external "https://github.com/abo-abo/avy")
 ("beacon" :external "https://github.com/Malabarba/beacon")
 ("bnf-mode" :external "https://github.com/sergeyklay/bnf-mode")
 ("buffer-expose" :external "https://github.com/clemera/buffer-expose")
 ("bug-hunter" :external "https://github.com/Malabarba/elisp-bug-hunter")
 ("cobol-mode"          :external "https://gist.github.com/Edward-H/6768e7dc53ea3dd2adca")
 ("clipboard-collector" :external "https://github.com/clemera/clipboard-collector")
 ("coffee-mode" :external "https://github.com/defunkt/coffee-mode")
 ("compact-docstrings"  :external "https://github.com/cpitclaudel/compact-docstrings")
 ("company" :external "https://github.com/company-mode/company-mode.git")
 ("company-math" :external "https://github.com/vspinu/company-math.git")
 ("company-statistics" :external "https://github.com/company-mode/company-statistics")
 ("context-coloring" :external "https://github.com/jacksonrayhamilton/context-coloring.git")
 ("counsel" :external "https://github.com/abo-abo/swiper")
 ("cpio-mode" :external "https://github.com/dlewan/cpio-mode")
 ("darkroom"            :external "https://github.com/capitaomorte/darkroom.git")
 ("dash"                :external "https://github.com/magnars/dash.el.git")
 ("dbus-codegen" :external "https://github.com/ueno/dbus-codegen-el.git")
 ("diffview"            :external "https://github.com/mgalgs/diffview-mode.git")
 ("diff-hl" :external "https://github.com/dgutov/diff-hl.git")
 ("dired-git-info" :external "https://github.com/clemera/dired-git-info")
 ("dts-mode" :external "https://github.com/bgamari/dts-mode.git")
 ("easy-kill" :external "https://github.com/leoliu/easy-kill")
 ("ebdb"                :external "https://github.com/girzel/ebdb.git")
 ("eev" :external "https://github.com/edrx/eev.git") ;branch UTF-8
 ("eglot"               :external "https://github.com/joaotavora/eglot.git")
 ("eldoc-eval" :external "https://github.com/thierryvolpiatto/eldoc-eval.git")
 ("ergoemacs-mode" :external "https://github.com/ergoemacs/ergoemacs-mode.git")
 ("expand-region" :external "https://github.com/magnars/expand-region.el")
 ("exwm" :external "https://github.com/ch11ng/exwm.git")
 ("f90-interface-browser" :external "https://github.com/wence-/f90-iface")
 ("frog-menu" :external "https://github.com/clemera/frog-menu")
 ("ggtags" :external "https://github.com/leoliu/ggtags")
 ("gnome-c-style" :external "https://github.com/ueno/gnome-c-style.git")
 ("guess-language" :external "https://github.com/tmalsburg/guess-language.el")
 ("highlight-escape-sequences" :external "https://github.com/dgutov/highlight-escape-sequences/")
 ("hydra" :external "https://github.com/abo-abo/hydra")
 ("ioccur" :external "https://github.com/thierryvolpiatto/ioccur.git")
 ("ivy" :external "https://github.com/abo-abo/swiper")
 ("ivy-explorer"        :external "https://github.com/clemera/ivy-explorer")
 ("ivy-posframe"        :external "https://github.com/tumashu/ivy-posframe")
 ("js2-mode" :external "https://github.com/mooz/js2-mode.git")
 ("leaf" :external "https://github.com/conao3/leaf.el")
 ("load-relative" :external "http://github.com/rocky/emacs-load-relative")
 ("loc-changes" :external "http://github.com/rocky/emacs-loc-changes")
 ("loccur" :external "https://github.com/fourier/loccur")
 ("math-symbol-lists" :external "https://github.com/vspinu/math-symbol-lists.git")
 ("mines" :external "https://github.com/calancha/Minesweeper")
 ("mmm-mode"            :external "https://github.com/purcell/mmm-mode.git")
 ("multishell" :external "https://github.com/kenmanheimer/EmacsMultishell")
 ("muse" :external "https://github.com/alexott/muse") ;FIXME: Not nearly in-sync
 ("nameless" :external "https://github.com/Malabarba/Nameless")
 ("names" :external "http://github.com/Malabarba/names")
 ("objed"         :external "https://github.com/clemera/objed")
 ("on-screen"           :external "https://github.com/michael-heerdegen/on-screen.el.git")
 ("pabbrev"             :external "https://github.com/phillord/pabbrev.git")
 ("parsec"              :external "https://github.com/cute-jumper/parsec.el.git")
 ("peg" :external) ;Was in "https://github.com/ellerh/peg.el"
 ("phps-mode" :external "https://github.com/cjohansson/emacs-phps-mode")
 ("pinentry" :external "https://github.com/ueno/pinentry-el.git")
 ("posframe" :external "https://github.com/tumashu/posframe")
 ("psgml"               :external "https://github.com/lenst/psgml.git")
 ("realgud"             :external "https://github.com/realgud/realgud")
 ("realgud-ipdb"        :external "https://github.com/realgud/realgud-ipdb")
 ("realgud-jdb"         :external "https://github.com/realgud/jdb")
 ("realgud-lldb"        :external "https://github.com/realgud/realgud-lldb")
 ("realgud-node-debug"  :external "https://github.com/realgud/realgud-node-debug")
 ("realgud-node-inspect" :external "https://github.com/realgud/realgud-node-inspect")
 ("realgud-trepan-ni"   :external "https://github.com/realgud/realgud-ni")
 ("relint" :external "https://github.com/mattiase/relint")
 ("rich-minority" :external "https://github.com/Malabarba/rich-minority")
 ("sotlisp" :external "https://github.com/Malabarba/speed-of-thought-lisp")
 ("spinner" :external "https://github.com/Malabarba/spinner.el")
 ("sql-indent"          :external "https://github.com/alex-hhh/emacs-sql-indent")
 ("ssh-deploy" :external "https://github.com/cjohansson/emacs-ssh-deploy")
 ("swiper" :external "https://github.com/abo-abo/swiper")
 ("temp-buffer-browse"  :external "https://github.com/leoliu/temp-buffer-browse")
 ("test-simple"         :external "https://github.com/rocky/emacs-test-simple")
 ("validate" :external "https://github.com/Malabarba/validate.el")
 ("vdiff"               :external "https://github.com/justbur/emacs-vdiff")
 ("tiny" :external "https://github.com/abo-abo/tiny")
 ("transient" :external "https://github.com/magit/transient")
 ("valign" :external "https://github.com/casouri/valign")
 ("vlf" :external "https://github.com/m00natic/vlfi")
 ("wcheck-mode" :external "https://github.com/tlikonen/wcheck-mode")
 ("wconf" :external "https://github.com/ilohmar/wconf")
 ("web-server" :external "https://github.com/eschulte/emacs-web-server.git")
 ("websocket" :external "https://github.com/ahyatt/emacs-websocket.git")
 ("which-key"           :external "https://github.com/justbur/emacs-which-key")
 ("xelb" :external "https://github.com/ch11ng/xelb.git")
 ("xr" :external "https://github.com/mattiase/xr")
 ("yasnippet" :external "https://github.com/capitaomorte/yasnippet.git")
 ("ztree" :external "https://github.com/fourier/ztree")

So copies of the code are hosted in GNU ELPA, but the master code is hosted and maintained on github for the above packages. So while we can spin it in many ways, code with copyright assigned to the FSF is maintained (developed, bug fixed etc) on github.  Furthermore, many of the packages from the above list I looked at are actively managing issues using Github's web interface. Finally, when you look at some of these packages in the package listing and select the package to view its info, the homepage for the package is listed as github. 

I don't have an issue with this, but it does seem inconsistent to argue github does not comply with FSF philosophy and guidelines while at the same time using it to maintain code which the FSF holds the copyright for and to have references to github as the homepage for the package.  To argue this is all OK because the packages are delivered from a GNU ELPA repository really just feels like we are playing with semantics. It feels a bit like saying "While our shoes are made by children in a 3rd world sweat shop, we only sell them in outlets which are run in an ethical manner."

--
Tim Cross


reply via email to

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