* RFC: Adding BBDB to Emacs core @ 2018-04-14 5:54 Thomas Fitzsimmons 2018-04-14 12:24 ` Joshua Branson 2018-04-14 13:34 ` Glenn Morris 0 siblings, 2 replies; 51+ messages in thread From: Thomas Fitzsimmons @ 2018-04-14 5:54 UTC (permalink / raw) To: emacs-devel Hi, Now that BBDB is copyright clear and available in GNU ELPA, thanks to Roland Winkler, I'd like to see what people think about also adding it to Emacs core. While maintaining EUDC in Emacs core, I've encountered many references to BBDB that are unresolved. The only reason for this, as far as I can tell, is that historically BBDB's copyright status didn't allow it to be included in core. Otherwise it probably would have been included all along. Now it's possible to fix this properly. I've started an integration attempt on the scratch/eudc-bbdb-3 branch. I merged a recent version of BBDB from GNU ELPA into lisp/bbdb, then I resolved references to BBDB in EUDC. For example, we can remove things like: (declare-function bbdb-record-phones "ext:bbdb" t) ; via bbdb-defstruct and apply changes like: --- a/lisp/net/eudc-export.el +++ b/lisp/net/eudc-export.el @@ -31,10 +31,8 @@ ;;; Code: (require 'eudc) - -;; NOERROR is so we can compile it. -(require 'bbdb nil t) -(require 'bbdb-com nil t) +(require 'bbdb) +(require 'bbdb-com) (defun eudc-create-bbdb-record (record &optional silent) "Create a BBDB record using the RECORD alist. This makes the code cleaner and easier to maintain. We can also rely only on the version of BBDB in GNU Emacs (or a later one in GNU ELPA) and so all the BBDB < 3 compatibility code can be deleted without risk of breaking people's package sets (BBDB >= 3 auto-converts BBDB < 3 databases to the updated format). I think applying this same type of effort to the other BBDB-dependent core packages would simplify them too. I'd like BBDB to become the default out-of-the-box local contact management library for GNU Emacs, in particular so that Gnus/EUDC/BBDB work together to provide email completion and snarfing out-of-the-box, without extra configuration or package installation. Thoughts? Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 5:54 RFC: Adding BBDB to Emacs core Thomas Fitzsimmons @ 2018-04-14 12:24 ` Joshua Branson 2018-04-14 22:06 ` Eric Abrahamsen 2018-04-14 22:13 ` Thomas Fitzsimmons 2018-04-14 13:34 ` Glenn Morris 1 sibling, 2 replies; 51+ messages in thread From: Joshua Branson @ 2018-04-14 12:24 UTC (permalink / raw) To: emacs-devel That sounds pretty awesome, but does the bbdb package have any info documentation? Not that it really matters, but it would be nice to have. Also, may I ask about ebdb? Does ebdb ever have a chance at making emacs core? P.S. I'm not a developer (at least not yet). Just curious. Thomas Fitzsimmons <fitzsim@fitzsim.org> writes: > Hi, > > Now that BBDB is copyright clear and available in GNU ELPA, thanks to > Roland Winkler, I'd like to see what people think about also adding it > to Emacs core. > > While maintaining EUDC in Emacs core, I've encountered many references > to BBDB that are unresolved. The only reason for this, as far as I can > tell, is that historically BBDB's copyright status didn't allow it to be > included in core. Otherwise it probably would have been included all > along. Now it's possible to fix this properly. > > I've started an integration attempt on the scratch/eudc-bbdb-3 branch. > I merged a recent version of BBDB from GNU ELPA into lisp/bbdb, then I > resolved references to BBDB in EUDC. For example, we can remove things > like: > > (declare-function bbdb-record-phones "ext:bbdb" t) ; via bbdb-defstruct > > and apply changes like: > > --- a/lisp/net/eudc-export.el > +++ b/lisp/net/eudc-export.el > @@ -31,10 +31,8 @@ > ;;; Code: > > (require 'eudc) > - > -;; NOERROR is so we can compile it. > -(require 'bbdb nil t) > -(require 'bbdb-com nil t) > +(require 'bbdb) > +(require 'bbdb-com) > > (defun eudc-create-bbdb-record (record &optional silent) > "Create a BBDB record using the RECORD alist. > > This makes the code cleaner and easier to maintain. We can also rely > only on the version of BBDB in GNU Emacs (or a later one in GNU ELPA) > and so all the BBDB < 3 compatibility code can be deleted without risk > of breaking people's package sets (BBDB >= 3 auto-converts BBDB < 3 > databases to the updated format). > > I think applying this same type of effort to the other BBDB-dependent > core packages would simplify them too. > > I'd like BBDB to become the default out-of-the-box local contact > management library for GNU Emacs, in particular so that Gnus/EUDC/BBDB > work together to provide email completion and snarfing out-of-the-box, > without extra configuration or package installation. > > Thoughts? > > Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 12:24 ` Joshua Branson @ 2018-04-14 22:06 ` Eric Abrahamsen 2018-04-14 22:46 ` Joshua Branson 2018-04-14 22:13 ` Thomas Fitzsimmons 1 sibling, 1 reply; 51+ messages in thread From: Eric Abrahamsen @ 2018-04-14 22:06 UTC (permalink / raw) To: Joshua Branson; +Cc: emacs-devel Joshua Branson <jbranso@fastmail.com> writes: > That sounds pretty awesome, but does the bbdb package have any info > documentation? Not that it really matters, but it would be nice to have. > > Also, may I ask about ebdb? Does ebdb ever have > a chance at making emacs core? Probably not! There's already push-back on including more packages in core, and the main argument for making an exception for BBDB (many packages are already "aware" of it) doesn't apply to EBDB. Personally, I belong to the "don't put more stuff in core" camp, and am happy keeping EBDB in ELPA. E ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 22:06 ` Eric Abrahamsen @ 2018-04-14 22:46 ` Joshua Branson 2018-04-15 6:18 ` Bozhidar Batsov 0 siblings, 1 reply; 51+ messages in thread From: Joshua Branson @ 2018-04-14 22:46 UTC (permalink / raw) To: emacs-devel Eric Abrahamsen <eric@ericabrahamsen.net> writes: > Joshua Branson <jbranso@fastmail.com> writes: > >> That sounds pretty awesome, but does the bbdb package have any info >> documentation? Not that it really matters, but it would be nice to have. >> >> Also, may I ask about ebdb? Does ebdb ever have >> a chance at making emacs core? > > Probably not! There's already push-back on including more packages in > core, and the main argument for making an exception for BBDB (many > packages are already "aware" of it) doesn't apply to EBDB. > > Personally, I belong to the "don't put more stuff in core" camp, and am > happy keeping EBDB in ELPA. That makes sense. The more packages you have, the harder it must be to maintain a stable emacs. > > E ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 22:46 ` Joshua Branson @ 2018-04-15 6:18 ` Bozhidar Batsov 2018-04-16 5:21 ` John Wiegley 0 siblings, 1 reply; 51+ messages in thread From: Bozhidar Batsov @ 2018-04-15 6:18 UTC (permalink / raw) To: Joshua Branson; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1279 bytes --] You can add my voice to "I'd rather just have in ELPA (and we should be moving more and more packages there). There was some cool idea a while ago to have even Emacs stable releases package some core deps directly from ELPA (similar to what languages like Ruby do). That simplifies the maintenance of Emacs itself and gives more flexibility to users to update stuff while waiting for new Emacs releases. On 15 April 2018 at 01:46, Joshua Branson <jbranso@fastmail.com> wrote: > Eric Abrahamsen <eric@ericabrahamsen.net> writes: > > > Joshua Branson <jbranso@fastmail.com> writes: > > > >> That sounds pretty awesome, but does the bbdb package have any info > >> documentation? Not that it really matters, but it would be nice to > have. > >> > >> Also, may I ask about ebdb? Does ebdb ever have > >> a chance at making emacs core? > > > > Probably not! There's already push-back on including more packages in > > core, and the main argument for making an exception for BBDB (many > > packages are already "aware" of it) doesn't apply to EBDB. > > > > Personally, I belong to the "don't put more stuff in core" camp, and am > > happy keeping EBDB in ELPA. > > That makes sense. The more packages you have, the harder it must be to > maintain a stable emacs. > > > > > E > > [-- Attachment #2: Type: text/html, Size: 1917 bytes --] ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-15 6:18 ` Bozhidar Batsov @ 2018-04-16 5:21 ` John Wiegley 2018-04-16 14:53 ` Thomas Fitzsimmons 2018-04-17 3:23 ` Roland Winkler 0 siblings, 2 replies; 51+ messages in thread From: John Wiegley @ 2018-04-16 5:21 UTC (permalink / raw) To: Bozhidar Batsov; +Cc: Joshua Branson, emacs-devel >>>>> "BB" == Bozhidar Batsov <bozhidar@batsov.com> writes: BB> You can add my voice to "I'd rather just have in ELPA (and we should be BB> moving more and more packages there). Same here. I really don't want to see BBDB moved into core. I do want ELPA packages to become more "first class" than they are now, so that the desire to add such packages to core would no longer have the same appeal. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 5:21 ` John Wiegley @ 2018-04-16 14:53 ` Thomas Fitzsimmons 2018-04-16 18:36 ` Stefan Monnier 2018-04-23 12:53 ` Phillip Lord 2018-04-17 3:23 ` Roland Winkler 1 sibling, 2 replies; 51+ messages in thread From: Thomas Fitzsimmons @ 2018-04-16 14:53 UTC (permalink / raw) To: emacs-devel "John Wiegley" <johnw@gnu.org> writes: >>>>>> "BB" == Bozhidar Batsov <bozhidar@batsov.com> writes: > > BB> You can add my voice to "I'd rather just have in ELPA (and we should be > BB> moving more and more packages there). > > Same here. I really don't want to see BBDB moved into core. I do want ELPA > packages to become more "first class" than they are now, so that the desire to > add such packages to core would no longer have the same appeal. I think the end result from the perspective of core Emacs maintainers' maintenance burden would not be different in beneficial ways than BBDB just being in core. Quoting Stefan later in the thread, the (1) "fetch some packages from elpa.git while building the Emacs tarball" method may allow for nice out-of-the-box BBDB integration for an Emacs release, and solve the problems I'm trying to solve for users of Emacs major release tarballs (but not users/developers who build the Emacs they use out of git, and I'd worry about last-minute integration of all this stuff -- who makes sure it all works together, at what point before release?). But method (1) wouldn't solve the EUDC package maintenance aspects for me (EUDC requiring something not in the tree). For that, we'd need Stefan's solution (2) "also clone elpa.git when you clone emacs.git" solution. That may solve both cases if it's done completely, see below. To get the same benefits for BBDB as it being in core, I'd want solution (2) to ensure that core maintainers always clone BBDB into their tree, so that they always build it. Then they can check for compile errors, and usage of new features, as they change the core parts of Emacs around BBDB. I get very useful patches to EUDC from the core maintainers from time to time even though they don't know EUDC functionality or internals; I would hope that with solution (2) I'd still get those types of patches. Assuming (2) achieves all that, from the core maintainer's perspective, what's the difference? The downside is they have two repos to deal with, and the interactions between the two to always consider (e.g., do we branch all of ELPA to match Emacs branches (probably not), or write all ELPA packages to work on any Emacs branch (probably), etc.). Or is there some other way of bumping ELPA packages up to first class status that you're envisioning? I'm willing to help experiment with different approaches to solve EUDC/BBDB issues, FWIW, but as yet I can't envision the end result. (Philosophical aside: I really don't want to see Emacs major releases become just an Elisp language runtime, class libraries and package management. That would be sad. Emacs is special, not just another language environment. Package discovery via GNU ELPA (over the network) just isn't the same as feature discovery within the running Emacs instance -- there's always an extra level of annoyance, network access and configuration associated with external packages. I'm hoping that by Emacs 27.1 I'll have a window manager in my text editor. Maybe Emacs could do like GNU/Linux distributions and publish e.g., emacs-minimal-27.1.tar.gz alongside emacs-27.1.tar.gz though.) Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 14:53 ` Thomas Fitzsimmons @ 2018-04-16 18:36 ` Stefan Monnier 2018-04-16 20:30 ` Eric Abrahamsen 2018-04-17 3:37 ` Thomas Fitzsimmons 2018-04-23 12:53 ` Phillip Lord 1 sibling, 2 replies; 51+ messages in thread From: Stefan Monnier @ 2018-04-16 18:36 UTC (permalink / raw) To: emacs-devel Before deciding on this, I think we'd need a clear picture of the ways in which BBDB is needed/used by EUDC. I see you saying things like "EUDC requiring something not in the tree", but I don't see anything in EUDC that really requires BBDB, instead I just see glue code that lets you use BBDB when it's available, just like there's code that lets you use LDAP when it's available (but there's clearly no corresponding push to try and add LDAP directly into Emacs). Could you give us a clear description of how BBDB is used by EUDC? I'm thinking of a list of BBDB functions/variables that are used by EUDC, along with a description of what they are used for (not what they do themselves, but what EUDC uses them for). Also good would be to describe concrete ways in which having BBDB in Emacs itself would improve the user's experience (presumably for users which don't already use BBDB). Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 18:36 ` Stefan Monnier @ 2018-04-16 20:30 ` Eric Abrahamsen 2018-04-17 3:37 ` Thomas Fitzsimmons 1 sibling, 0 replies; 51+ messages in thread From: Eric Abrahamsen @ 2018-04-16 20:30 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > Before deciding on this, I think we'd need a clear picture of the ways > in which BBDB is needed/used by EUDC. > > I see you saying things like "EUDC requiring something not in the tree", > but I don't see anything in EUDC that really requires BBDB, instead > I just see glue code that lets you use BBDB when it's available, just > like there's code that lets you use LDAP when it's available (but > there's clearly no corresponding push to try and add LDAP directly into > Emacs). I'm also curious about this, as I've started implementing EUDC support for EBDB. On "my" side, I'm seeing `eudc-register-protocol', and a bunch of calls to `eudc-protocol-set'. Shouldn't those thing be enough? If EUDC provides a generalized framework, shouldn't the whole point be that it doesn't need to know about its implementations? ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 18:36 ` Stefan Monnier 2018-04-16 20:30 ` Eric Abrahamsen @ 2018-04-17 3:37 ` Thomas Fitzsimmons 1 sibling, 0 replies; 51+ messages in thread From: Thomas Fitzsimmons @ 2018-04-17 3:37 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > Before deciding on this, I think we'd need a clear picture of the ways > in which BBDB is needed/used by EUDC. OK, I'll try to provide that. > I see you saying things like "EUDC requiring something not in the tree", > but I don't see anything in EUDC that really requires BBDB, instead > I just see glue code that lets you use BBDB when it's available, When I say "require" there, I mean in the sense that to properly byte-compile lisp/net/eudcb-bbdb.el and lisp/net/eudc-export.el, which are part of EUDC, BBDB packages are require'd. On master there are workarounds in place to stub out or ignore the missing dependencies. One aspect of the BBDB inclusion proposal is that I'm trying to get rid of those workarounds (in EUDC first and eventually in Org and Gnus). See for example, these commits on the scratch/eudc-bbdb-3 branch: 06c3557 EUDC: Require bbdb and bbdb-com without ignoring errors f1ab95d EUDC: Require bbdb, bbdb-com without NOERROR 262dce0 EUDC: Remove external BBDB function declarations e355a65 EUDC: Remove inline requires of bbdb in BBDB backend And yes, to actually use the BBDB backend of EUDC at runtime, the BBDB package needs to be loaded. On the branch, I've enabled the BBDB backend by default in EUDC, which eliminates a configuration step for email completion (see below): 193f9d5 EUDC: Enable BBDB backend by default > just like there's code that lets you use LDAP when it's available (but > there's clearly no corresponding push to try and add LDAP directly > into Emacs). The Elisp part of Emacs's LDAP support, lisp/net/ldap.el, is already in core. So EUDC's LDAP backend, lisp/net/eudcb-ldap.el, can just (require 'ldap) directly during byte-compilation. ldap.el internally requires the ldapsearch command line utility, which is provided on free operating systems as part of OpenLDAP packages. I actually would prefer ldap.el to be a pure Elisp LDAP client (and thus eliminate the OpenLDAP dependency) so that it could run with minimal configuration even on non-free operating systems, but I haven't looked at whether that would be practical to implement. > Could you give us a clear description of how BBDB is used by EUDC? > I'm thinking of a list of BBDB functions/variables that are used by > EUDC, along with a description of what they are used for (not what they > do themselves, but what EUDC uses them for). The main function used is bbdb-search. Here's a backtrace of EUDC expanding a contact: eval((bbdb-search records "Examp")) eudc-bbdb-query-internal(((firstname . "Examp")) (firstname lastname net)) eudc-query(((firstname . "Examp")) (firstname lastname net)) eudc-expand-inline() funcall-interactively(eudc-expand-inline) eudc-expand-inline uses bbdb-search to search for contacts in the BBDB database using a search string, and return a list of contact records to it. Then from those records, EUDC creates strings in the format "[first-name] [last-name] <email-address>" (the output format is a configurable property of EUDC); if there is only one result, it is inserted at point; if there are multiple results, EUDC allows the user to interactively select the one to insert at point. > Also good would be to describe concrete ways in which having BBDB in > Emacs itself would improve the user's experience (presumably for users > which don't already use BBDB). OK, assuming the user wants to use Gnus, and they want to store contact information they come across in Gnus locally, then BBDB would be the recommended, "Emacs core endorsed" way of doing that, and the key bindings, configuration etc. would all default to using BBDB. Then EUDC would have the BBDB backend enabled by default (as shown on the branch), and Gnus would have default keybindings for `eudc-expand-inline' when point is in To: or Cc:. Then without any setup, the user could snarf an address from within an email via a keypress, then complete that contact's name and address when composing a new email by pressing TAB. If Gnus defaults to using `eudc-expand-inline`, then the user can also get LDAP completion support just by adding an ldap entry to `eudc-server-hotlist'. I think that level of default integration would be hard to achieve and maintain without having BBDB available in core. Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 14:53 ` Thomas Fitzsimmons 2018-04-16 18:36 ` Stefan Monnier @ 2018-04-23 12:53 ` Phillip Lord 2018-04-23 13:21 ` Stefan Monnier 1 sibling, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-23 12:53 UTC (permalink / raw) To: Thomas Fitzsimmons; +Cc: emacs-devel Thomas Fitzsimmons <fitzsim@fitzsim.org> writes: > "John Wiegley" <johnw@gnu.org> writes: > >>>>>>> "BB" == Bozhidar Batsov <bozhidar@batsov.com> writes: >> >> BB> You can add my voice to "I'd rather just have in ELPA (and we should be >> BB> moving more and more packages there). >> >> Same here. I really don't want to see BBDB moved into core. I do want ELPA >> packages to become more "first class" than they are now, so that the desire to >> add such packages to core would no longer have the same appeal. > Assuming (2) achieves all that, from the core maintainer's perspective, > what's the difference? The downside is they have two repos to deal > with, and the interactions between the two to always consider (e.g., do > we branch all of ELPA to match Emacs branches (probably not), or write > all ELPA packages to work on any Emacs branch (probably), etc.). There is actually a problem here with the way the ELPA is structured, since it already uses branches for (some) packages. This is not going to marry easily with the use of branches for something else. > (Philosophical aside: I really don't want to see Emacs major releases > become just an Elisp language runtime, class libraries and package > management. That would be sad. Emacs is special, not just another > language environment. Package discovery via GNU ELPA (over the network) > just isn't the same as feature discovery within the running Emacs > instance -- there's always an extra level of annoyance, network access > and configuration associated with external packages. I'm hoping that by > Emacs 27.1 I'll have a window manager in my text editor. The hope would be not that a major release doesn't seen significant advances in Emacs functionality, but that, those who want to, will be able to track that functionality earlier as it develops. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-23 12:53 ` Phillip Lord @ 2018-04-23 13:21 ` Stefan Monnier 2018-04-23 16:21 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-23 13:21 UTC (permalink / raw) To: emacs-devel >> Assuming (2) achieves all that, from the core maintainer's perspective, >> what's the difference? The downside is they have two repos to deal >> with, and the interactions between the two to always consider (e.g., do >> we branch all of ELPA to match Emacs branches (probably not), or write >> all ELPA packages to work on any Emacs branch (probably), etc.). > There is actually a problem here with the way the ELPA is structured, > since it already uses branches for (some) packages. This is not going to > marry easily with the use of branches for something else. Rather than a problem I see it as a defining aspect of whether a package should be in elpa.git or in emacs.git, since the whole point of having "unbundled packages" is so that their release schedule is not tied to that of Emacs. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-23 13:21 ` Stefan Monnier @ 2018-04-23 16:21 ` Phillip Lord 2018-04-23 17:45 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-23 16:21 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> Assuming (2) achieves all that, from the core maintainer's perspective, >>> what's the difference? The downside is they have two repos to deal >>> with, and the interactions between the two to always consider (e.g., do >>> we branch all of ELPA to match Emacs branches (probably not), or write >>> all ELPA packages to work on any Emacs branch (probably), etc.). >> There is actually a problem here with the way the ELPA is structured, >> since it already uses branches for (some) packages. This is not going to >> marry easily with the use of branches for something else. > > Rather than a problem I see it as a defining aspect of whether a package > should be in elpa.git or in emacs.git, since the whole point of having > "unbundled packages" is so that their release schedule is not tied to > that of Emacs. Not sure I understand. If I have a package on master in ELPA, and I want to main one version for Emacs-26 and another for Emacs-27, how do I do this? The obvious solution is to put in a branch. But now I have branched all the other packages to. For externals, we can do this, although we can't call it "emacs-26" or "emacs-27" because someone else will have that branch. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-23 16:21 ` Phillip Lord @ 2018-04-23 17:45 ` Stefan Monnier 2018-04-24 21:41 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-23 17:45 UTC (permalink / raw) To: Phillip Lord; +Cc: emacs-devel > If I have a package on master in ELPA, and I want to main one version > for Emacs-26 and another for Emacs-27, I would take this as a sign that the package shouldn't be in elpa.git. elpa.git is for packages which are not specific to a particular Emacs version. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-23 17:45 ` Stefan Monnier @ 2018-04-24 21:41 ` Phillip Lord 2018-04-24 22:31 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-24 21:41 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@IRO.UMontreal.CA> writes: >> If I have a package on master in ELPA, and I want to main one version >> for Emacs-26 and another for Emacs-27, > > I would take this as a sign that the package shouldn't be in elpa.git. > > elpa.git is for packages which are not specific to a particular Emacs version. I think that this is wrong and I will give you a use case. Imagine, for example, that I have a package which I add to ELPA when Emacs-26 comes out. I maintain this package and expand it slowly. Then, when Emacs-27 comes out, for example something significant has happened (say, just for argument sake, the advice system got re-written -- unlikely, but it could happen). As a package author, I have two choices here: either I move to Emacs-27 and ditch Emacs-26 support. Or I have to put runtime conditional logic which supports both. I think package authors should have the choice of freezing the Emacs-26 version of their package when Emacs-27 comes out. This situation would get worse if we have an "unstable" version of ELPA. I bet that there is some package already that depends on Emacs-27 at the bleeding edge. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-24 21:41 ` Phillip Lord @ 2018-04-24 22:31 ` Stefan Monnier 2018-04-25 0:42 ` Paul Eggert ` (2 more replies) 0 siblings, 3 replies; 51+ messages in thread From: Stefan Monnier @ 2018-04-24 22:31 UTC (permalink / raw) To: Phillip Lord; +Cc: emacs-devel > As a package author, I have two choices here: either I move to Emacs-27 > and ditch Emacs-26 support. Or I have to put runtime conditional logic > which supports both. That's right. > I think package authors should have the choice of freezing the > Emacs-26 version of their package when Emacs-27 comes out. There's a case to be made for allowing ELPA archives to exports several versions of a package at the same time, so older Emacsen can still install the old version of a package without having to download the old version by hand. But I'm not moved by your scenario: adding runtime conditional logic has been standard procedure "for ever" and comes with all kinds of advantages, such as the ability for older Emacsen to benefit from other improvements in the newer versions of your package, or an easier way to install&use the package with several different versions of Emacs at the same time, ... > This situation would get worse if we have an "unstable" version of > ELPA. I don't see why: "unstable" is just a preview of what will be "stable" a few weeks/months later and packages usually preserve compatibility at least with Emacsen that are a few years old. > I bet that there is some package already that depends on Emacs-27 > at the bleeding edge. I strongly doubt it. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-24 22:31 ` Stefan Monnier @ 2018-04-25 0:42 ` Paul Eggert 2018-04-25 1:50 ` Stefan Monnier 2018-04-25 9:19 ` Phillip Lord 2018-04-25 16:04 ` Radon Rosborough 2 siblings, 1 reply; 51+ messages in thread From: Paul Eggert @ 2018-04-25 0:42 UTC (permalink / raw) To: Stefan Monnier, Phillip Lord; +Cc: emacs-devel On 04/24/2018 03:31 PM, Stefan Monnier wrote: > adding runtime conditional logic has > been standard procedure "for ever" and comes with all kinds of > advantages, It's a tradeoff, though, as the runtime logic makes the code harder to maintain and (particularly) to test, and at some point it becomes more trouble than it's worth. This is why Gnus dropped support for Emacs 22 a couple of years ago. Even if ELPA packages should work on current and previous Emacs versions, today I would think that they shouldn't have to worry about porting to Emacs 23 or earlier, and that a package's maintainer can determine whether the cutoff is 22, 23, or even 24. ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 0:42 ` Paul Eggert @ 2018-04-25 1:50 ` Stefan Monnier 2018-04-25 9:21 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-25 1:50 UTC (permalink / raw) To: emacs-devel > It's a tradeoff, though, as the runtime logic makes the code harder to > maintain and (particularly) to test, and at some point it becomes more > trouble than it's worth. This is why Gnus dropped support for Emacs > 22 a couple of years ago. Even if ELPA packages should work on current and > previous Emacs versions, today I would think that they shouldn't have to > worry about porting to Emacs 23 or earlier, and that a package's maintainer > can determine whether the cutoff is 22, 23, or even 24. Of course, but that doesn't mean there needs to be several different supported versions of the package. It just means you drop support for old versions, as is the case in all packages. Nothing new here: no need for different branches in elpa.git to go along with branches in emacs.git just because of that. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 1:50 ` Stefan Monnier @ 2018-04-25 9:21 ` Phillip Lord 2018-04-25 12:02 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-25 9:21 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> It's a tradeoff, though, as the runtime logic makes the code harder to >> maintain and (particularly) to test, and at some point it becomes more >> trouble than it's worth. This is why Gnus dropped support for Emacs >> 22 a couple of years ago. Even if ELPA packages should work on current and >> previous Emacs versions, today I would think that they shouldn't have to >> worry about porting to Emacs 23 or earlier, and that a package's maintainer >> can determine whether the cutoff is 22, 23, or even 24. > > Of course, but that doesn't mean there needs to be several different > supported versions of the package. It just means you drop support for > old versions, as is the case in all packages. Nothing new here: no need > for different branches in elpa.git to go along with branches in > emacs.git just because of that. If we support old versions, checkpointed at a particular time in history, then would end up supporting tags. If we support tags, then we support branches, if I understand git. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 9:21 ` Phillip Lord @ 2018-04-25 12:02 ` Stefan Monnier 2018-04-25 16:31 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-25 12:02 UTC (permalink / raw) To: emacs-devel >> Of course, but that doesn't mean there needs to be several different >> supported versions of the package. It just means you drop support for >> old versions, as is the case in all packages. Nothing new here: no need >> for different branches in elpa.git to go along with branches in >> emacs.git just because of that. > If we support old versions, checkpointed at a particular time in > history, then would end up supporting tags. No, the way I see it working is that the `archive-contents` file would simply list all packages that are still present in the archive, rather than only the latest. I.e. the Git side would be unaffected, only the ELPA side. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 12:02 ` Stefan Monnier @ 2018-04-25 16:31 ` Phillip Lord 2018-04-25 16:57 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-25 16:31 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> Of course, but that doesn't mean there needs to be several different >>> supported versions of the package. It just means you drop support for >>> old versions, as is the case in all packages. Nothing new here: no need >>> for different branches in elpa.git to go along with branches in >>> emacs.git just because of that. >> If we support old versions, checkpointed at a particular time in >> history, then would end up supporting tags. > > No, the way I see it working is that the `archive-contents` file would > simply list all packages that are still present in the archive, rather > than only the latest. I.e. the Git side would be unaffected, only the > ELPA side. How would that be generated? I mean, it would be based on the packages that are already there? I think that this would make generating ELPA from a git clone would not work, unless you work through every commit looking for changes in "Version:" number. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:31 ` Phillip Lord @ 2018-04-25 16:57 ` Stefan Monnier 2018-04-26 14:59 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-25 16:57 UTC (permalink / raw) To: emacs-devel > How would that be generated? I mean, it would be based on the packages > that are already there? Yes. > I think that this would make generating ELPA from a git clone would > not work, It would work, but it would only give you the latest versions, indeed. I don't see a problem with that: how many people/places do you know who build an ELPA archive from the elpa.git repository? Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:57 ` Stefan Monnier @ 2018-04-26 14:59 ` Phillip Lord 0 siblings, 0 replies; 51+ messages in thread From: Phillip Lord @ 2018-04-26 14:59 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> How would that be generated? I mean, it would be based on the packages >> that are already there? > > Yes. > >> I think that this would make generating ELPA from a git clone would >> not work, > > It would work, but it would only give you the latest versions, indeed. > I don't see a problem with that: how many people/places do you know who > build an ELPA archive from the elpa.git repository? Probably not that many, but a repeatable build is always nice. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-24 22:31 ` Stefan Monnier 2018-04-25 0:42 ` Paul Eggert @ 2018-04-25 9:19 ` Phillip Lord 2018-04-25 16:04 ` Radon Rosborough 2 siblings, 0 replies; 51+ messages in thread From: Phillip Lord @ 2018-04-25 9:19 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@IRO.UMontreal.CA> writes: >> As a package author, I have two choices here: either I move to Emacs-27 >> and ditch Emacs-26 support. Or I have to put runtime conditional logic >> which supports both. > > That's right. > >> I think package authors should have the choice of freezing the >> Emacs-26 version of their package when Emacs-27 comes out. > > There's a case to be made for allowing ELPA archives to exports several > versions of a package at the same time, so older Emacsen can still > install the old version of a package without having to download the old > version by hand. Yep. In practice, for my packages this would currently happen at either 24.1 (this is the oldest Emacs I can still compile, and even that requires a bit of hacking) or 24.4 (the advice change). Being able to leave a version at this point would be a good thing. > But I'm not moved by your scenario: adding runtime conditional logic has > been standard procedure "for ever" and comes with all kinds of > advantages, such as the ability for older Emacsen to benefit from other > improvements in the newer versions of your package, or an easier way to > install&use the package with several different versions of Emacs at the > same time, ... Imagine I have left a package for an old version of Emacs. Now I find a major security bug in the latest version, that I need to back-port to the old version. >> This situation would get worse if we have an "unstable" version of >> ELPA. > > I don't see why: "unstable" is just a preview of what will be "stable" > a few weeks/months later and packages usually preserve compatibility at > least with Emacsen that are a few years old. > >> I bet that there is some package already that depends on Emacs-27 >> at the bleeding edge. > > I strongly doubt it. I haven't tested it yet; to my knowledge there is no routine testing of ELPA against multiple Emacs versions. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-24 22:31 ` Stefan Monnier 2018-04-25 0:42 ` Paul Eggert 2018-04-25 9:19 ` Phillip Lord @ 2018-04-25 16:04 ` Radon Rosborough 2018-04-25 16:32 ` Phillip Lord 2 siblings, 1 reply; 51+ messages in thread From: Radon Rosborough @ 2018-04-25 16:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel, Phillip Lord > There's a case to be made for allowing ELPA archives to exports several > versions of a package at the same time, so older Emacsen can still > install the old version of a package without having to download the old > version by hand. For another perspective, see also source-based package managers like straight.el [1], Borg [2], el-get [3], et cetera, which easily bypass this problem by allowing you to install any version you want, and to change your mind after installation. [1]: https://github.com/raxod502/straight.el [2]: https://github.com/emacscollective/borg [3]: https://github.com/dimitri/el-get ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:04 ` Radon Rosborough @ 2018-04-25 16:32 ` Phillip Lord 2018-04-25 16:55 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-25 16:32 UTC (permalink / raw) To: Radon Rosborough; +Cc: Stefan Monnier, emacs-devel Radon Rosborough <radon.neon@gmail.com> writes: >> There's a case to be made for allowing ELPA archives to exports several >> versions of a package at the same time, so older Emacsen can still >> install the old version of a package without having to download the old >> version by hand. > > For another perspective, see also source-based package managers like > straight.el [1], Borg [2], el-get [3], et cetera, which easily bypass > this problem by allowing you to install any version you want, and to > change your mind after installation. > > [1]: https://github.com/raxod502/straight.el > [2]: https://github.com/emacscollective/borg > [3]: https://github.com/dimitri/el-get More than I knew about. Replacing package.el would indeed be a way forward (although you'd need to run both in parallel for a while). Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:32 ` Phillip Lord @ 2018-04-25 16:55 ` Stefan Monnier 2018-04-25 20:16 ` Radon Rosborough 2018-04-26 15:02 ` Phillip Lord 0 siblings, 2 replies; 51+ messages in thread From: Stefan Monnier @ 2018-04-25 16:55 UTC (permalink / raw) To: emacs-devel > More than I knew about. Replacing package.el would indeed be a way > forward (although you'd need to run both in parallel for a while). They're so close to each other that rather than replacing them, they need to be merged or modularized so that they build on top of each other. package.el is not nearly as constraining as people tend to think. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:55 ` Stefan Monnier @ 2018-04-25 20:16 ` Radon Rosborough 2018-04-26 15:02 ` Phillip Lord 1 sibling, 0 replies; 51+ messages in thread From: Radon Rosborough @ 2018-04-25 20:16 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel > They're so close to each other that rather than replacing them, they > need to be merged or modularized so that they build on top of each > other. If you have suggestions on how that could be accomplished, and what the concrete advantages would be, I would be very glad to hear them. I will, of course, be happy to provide any information about straight.el that would be helpful to the discussion. > package.el is not nearly as constraining as people tend to think. I will note that even if I did not perceive any technical reasons why package.el couldn't be easily extended to support the features of straight.el, the inertia generated by its membership in Emacs core would still have been more than enough to convince me to start a new project instead. ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-25 16:55 ` Stefan Monnier 2018-04-25 20:16 ` Radon Rosborough @ 2018-04-26 15:02 ` Phillip Lord 2018-04-26 16:38 ` Stefan Monnier 1 sibling, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-26 15:02 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> More than I knew about. Replacing package.el would indeed be a way >> forward (although you'd need to run both in parallel for a while). > > They're so close to each other that rather than replacing them, they > need to be merged or modularized so that they build on top of each > other. > > package.el is not nearly as constraining as people tend to think. I'd just like it to cope with several versions and with Emacs version dependencies. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-26 15:02 ` Phillip Lord @ 2018-04-26 16:38 ` Stefan Monnier 2018-04-27 9:57 ` Phillip Lord 0 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-26 16:38 UTC (permalink / raw) To: Phillip Lord; +Cc: emacs-devel >>> More than I knew about. Replacing package.el would indeed be a way >>> forward (although you'd need to run both in parallel for a while). >> They're so close to each other that rather than replacing them, they >> need to be merged or modularized so that they build on top of each >> other. >> package.el is not nearly as constraining as people tend to think. > I'd just like it to cope with several versions and with Emacs version > dependencies. We agree. And the underlying design is perfectly able to cope with it. I haven't checked, but it's even possible that package.el already handles it correctly if/when the `archive-contents` file contains various different versions of the same package. IOW it might be a simple matter of adjusting the scripts that build the archive(s). Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-26 16:38 ` Stefan Monnier @ 2018-04-27 9:57 ` Phillip Lord 2018-04-27 13:32 ` Stefan Monnier 0 siblings, 1 reply; 51+ messages in thread From: Phillip Lord @ 2018-04-27 9:57 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@IRO.UMontreal.CA> writes: >>>> More than I knew about. Replacing package.el would indeed be a way >>>> forward (although you'd need to run both in parallel for a while). >>> They're so close to each other that rather than replacing them, they >>> need to be merged or modularized so that they build on top of each >>> other. >>> package.el is not nearly as constraining as people tend to think. >> I'd just like it to cope with several versions and with Emacs version >> dependencies. > > We agree. And the underlying design is perfectly able to cope with it. > I haven't checked, but it's even possible that package.el already > handles it correctly if/when the `archive-contents` file contains > various different versions of the same package. That would be particularly good. If package.el can cope in some way, then it's backdatable. I will check. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-27 9:57 ` Phillip Lord @ 2018-04-27 13:32 ` Stefan Monnier 0 siblings, 0 replies; 51+ messages in thread From: Stefan Monnier @ 2018-04-27 13:32 UTC (permalink / raw) To: emacs-devel > That would be particularly good. If package.el can cope in some way, > then it's backdatable. I will check. It can definitely cope with different versions of the same package offered by different ELPA archives, and I think the way it's implemented it shouldn't really care whether it comes from different ELPA archives or not. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 5:21 ` John Wiegley 2018-04-16 14:53 ` Thomas Fitzsimmons @ 2018-04-17 3:23 ` Roland Winkler 2018-04-17 4:56 ` John Wiegley ` (3 more replies) 1 sibling, 4 replies; 51+ messages in thread From: Roland Winkler @ 2018-04-17 3:23 UTC (permalink / raw) To: Bozhidar Batsov; +Cc: Joshua Branson, emacs-devel On Sun, Apr 15 2018, John Wiegley wrote: >>>>>> "BB" == Bozhidar Batsov <bozhidar@batsov.com> writes: > > BB> You can add my voice to "I'd rather just have in ELPA (and we > BB> should be moving more and more packages there). > > Same here. I really don't want to see BBDB moved into core. I do want > ELPA packages to become more "first class" than they are now, so that > the desire to add such packages to core would no longer have the same > appeal. In general I tend to agree. Yet it appears to me that so far there is one problem with GNU ELPA: I believe it would help to have a better separation between ELPA being the repository for the distribution of stable versions of packages to normal users and ELPA being the repository for the development of such packages. With core Emacs, we have a master branch with the latest and sometimes buggy code. And occasionally there is a proper release with significant efforts that these releases work reliably for normal users. So far ELPA does not support such a model. - Take BBDB as an example: It is not too difficult to break a user's database by trying to improve some of BBDB's internal functions. That's why right now I prefer to continue to use BBDB's repository on savannah for code development. When a code change appears to be sufficiently stable, it is also added to BBDB in ELPA. Certainly, this is a non-ideal approach. I am wondering: Could it make sense to have a separate infrastructure like "ELPA-devel" for the on-going development of ELPA packages, where adventurous users find the very latest code similar to the master branch of core Emacs. On the other hand, ELPA becomes the place for stable versions of these packages. My terminology "separate infrastructure" is intentionally vague, because I do not yet have a clear idea how this can be implemented efficiently. A simple scheme could be a policy for naming development and release branches of packages in the ELPA git repository (beyond the current "externals" branches for individual ELPA packages), combined with tools that allow one to access one or the other version of a package. Or yet something different. Roland ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 3:23 ` Roland Winkler @ 2018-04-17 4:56 ` John Wiegley 2018-04-17 13:07 ` Stefan Monnier ` (2 subsequent siblings) 3 siblings, 0 replies; 51+ messages in thread From: John Wiegley @ 2018-04-17 4:56 UTC (permalink / raw) To: Roland Winkler; +Cc: Joshua Branson, Bozhidar Batsov, emacs-devel >>>>> "RW" == Roland Winkler <winkler@gnu.org> writes: RW> Certainly, this is a non-ideal approach. I am wondering: Could it make RW> sense to have a separate infrastructure like "ELPA-devel" for the on-going RW> development of ELPA packages, where adventurous users find the very latest RW> code similar to the master branch of core Emacs. On the other hand, ELPA RW> becomes the place for stable versions of these packages. My terminology RW> "separate infrastructure" is intentionally vague, because I do not yet RW> have a clear idea how this can be implemented efficiently. Having an "-unstable" flavor of the package repository seems to be de rigeur these days. I wonder if it would lead to any maintenance headaches. But it would certainly improve ELPA's standing as a place both for development, and distribution. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 3:23 ` Roland Winkler 2018-04-17 4:56 ` John Wiegley @ 2018-04-17 13:07 ` Stefan Monnier 2018-04-17 15:13 ` Roland Winkler 2018-04-23 12:57 ` Phillip Lord 2018-04-23 13:26 ` Stefan Monnier 3 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-17 13:07 UTC (permalink / raw) To: emacs-devel > - Take BBDB as an example: It is not too difficult to break a user's > database by trying to improve some of BBDB's internal functions. That's > why right now I prefer to continue to use BBDB's repository on savannah > for code development. When a code change appears to be sufficiently > stable, it is also added to BBDB in ELPA. FWIW, currently GNU ELPA supports this in the following way: a new GNU ELPA package is only created once the "Version:" of a package is bumped. So you can add experimental code to elpa.git's master branch without worrying about its effect on the distributed package and when that code is ready you can just bump the "Version:" header to cause a new release. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 13:07 ` Stefan Monnier @ 2018-04-17 15:13 ` Roland Winkler 2018-04-18 23:11 ` Stephen Leake 0 siblings, 1 reply; 51+ messages in thread From: Roland Winkler @ 2018-04-17 15:13 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel On Tue, Apr 17 2018, Stefan Monnier wrote: > FWIW, currently GNU ELPA supports this in the following way: a new GNU > ELPA package is only created once the "Version:" of a package is > bumped. So you can add experimental code to elpa.git's master branch > without worrying about its effect on the distributed package and when > that code is ready you can just bump the "Version:" header to cause a > new release. It would be nice to be able to go beyond that. I am grateful if adventurous users are willing to test the experimental code. So it would be nice if there was infrastructure that somehow allowed these users to subscribe to the experimental code, similar to how the development of core emacs benefits from users using the master branch. ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 15:13 ` Roland Winkler @ 2018-04-18 23:11 ` Stephen Leake 0 siblings, 0 replies; 51+ messages in thread From: Stephen Leake @ 2018-04-18 23:11 UTC (permalink / raw) To: emacs-devel Roland Winkler <winkler@gnu.org> writes: > On Tue, Apr 17 2018, Stefan Monnier wrote: >> FWIW, currently GNU ELPA supports this in the following way: a new GNU >> ELPA package is only created once the "Version:" of a package is >> bumped. So you can add experimental code to elpa.git's master branch >> without worrying about its effect on the distributed package and when >> that code is ready you can just bump the "Version:" header to cause a >> new release. > > It would be nice to be able to go beyond that. I am grateful if > adventurous users are willing to test the experimental code. So it > would be nice if there was infrastructure that somehow allowed these > users to subscribe to the experimental code, similar to how the > development of core emacs benefits from users using the master branch. +1 I have an experimental version of ada-mode I'd like users to try. -- -- Stephe ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 3:23 ` Roland Winkler 2018-04-17 4:56 ` John Wiegley 2018-04-17 13:07 ` Stefan Monnier @ 2018-04-23 12:57 ` Phillip Lord 2018-04-23 13:26 ` Stefan Monnier 3 siblings, 0 replies; 51+ messages in thread From: Phillip Lord @ 2018-04-23 12:57 UTC (permalink / raw) To: Roland Winkler; +Cc: Joshua Branson, Bozhidar Batsov, emacs-devel Roland Winkler <winkler@gnu.org> writes: > On Sun, Apr 15 2018, John Wiegley wrote: >>>>>>> "BB" == Bozhidar Batsov <bozhidar@batsov.com> writes: >> >> BB> You can add my voice to "I'd rather just have in ELPA (and we >> BB> should be moving more and more packages there). >> >> Same here. I really don't want to see BBDB moved into core. I do want >> ELPA packages to become more "first class" than they are now, so that >> the desire to add such packages to core would no longer have the same >> appeal. > > A simple scheme could be a policy for naming development and release > branches of packages in the ELPA git repository (beyond the current > "externals" branches for individual ELPA packages), combined with tools > that allow one to access one or the other version of a package. > > Or yet something different. I think this going to be scary because packages are distributed across multiple branches, so names would end up getting namespaced. I think that MELPA has it right here -- packages should be in different repos, master is trunk, last tag is release. This could be expanded to support multiple releases if package.el supported multiple versions of Emacs. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-17 3:23 ` Roland Winkler ` (2 preceding siblings ...) 2018-04-23 12:57 ` Phillip Lord @ 2018-04-23 13:26 ` Stefan Monnier 2018-04-23 15:29 ` Roland Winkler 3 siblings, 1 reply; 51+ messages in thread From: Stefan Monnier @ 2018-04-23 13:26 UTC (permalink / raw) To: emacs-devel > A simple scheme could be a policy for naming development and release > branches of packages in the ELPA git repository (beyond the current > "externals" branches for individual ELPA packages), combined with tools > that allow one to access one or the other version of a package. I've had in my TODO list to add a "bleeding edge GNU ELPA" for a while and that plan is much simpler than the above: just build this alternative GNU ELPA archive from "master" by disregarding the "Version:" header. Currently, the only "official" way for users to use such a bleeding edge archive is to clone elpa.git and do "make" inside it (it takes a few more steps: check the README). Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-23 13:26 ` Stefan Monnier @ 2018-04-23 15:29 ` Roland Winkler 0 siblings, 0 replies; 51+ messages in thread From: Roland Winkler @ 2018-04-23 15:29 UTC (permalink / raw) To: emacs-devel On Mon, Apr 23 2018, Stefan Monnier wrote: > I've had in my TODO list to add a "bleeding edge GNU ELPA" for a while > and that plan is much simpler than the above: just build this > alternative GNU ELPA archive from "master" by disregarding the > "Version:" header. Sounds good to me. In my opinion, an important point is then to advertise this as "ELPA for adventurous users", combined with tools allowing one to use one or the other version of ELPA, and ideally with an option that allows users to be adventurous with some packages only. Roland ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 12:24 ` Joshua Branson 2018-04-14 22:06 ` Eric Abrahamsen @ 2018-04-14 22:13 ` Thomas Fitzsimmons 1 sibling, 0 replies; 51+ messages in thread From: Thomas Fitzsimmons @ 2018-04-14 22:13 UTC (permalink / raw) To: Joshua Branson; +Cc: emacs-devel Joshua Branson <jbranso@fastmail.com> writes: > That sounds pretty awesome, but does the bbdb package have any info > documentation? Not currently, only a stub .texi file exists in GNU ELPA. > Not that it really matters, but it would be nice to have. Agreed, it would be nice to have. Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 5:54 RFC: Adding BBDB to Emacs core Thomas Fitzsimmons 2018-04-14 12:24 ` Joshua Branson @ 2018-04-14 13:34 ` Glenn Morris 2018-04-14 17:10 ` Radon Rosborough ` (2 more replies) 1 sibling, 3 replies; 51+ messages in thread From: Glenn Morris @ 2018-04-14 13:34 UTC (permalink / raw) To: Thomas Fitzsimmons; +Cc: emacs-devel Thomas Fitzsimmons wrote: > I'd like to see what people think about also adding it to Emacs core. Personally I think this is the opposite direction to the one in which Emacs components should be moving. > is that historically BBDB's copyright status didn't allow it to be > included in core. Otherwise it probably would have been included all > along. Bear in mind that ELPAs did not exist when bbdb was first created. > I'd like BBDB to become the default out-of-the-box local contact > management library for GNU Emacs, in particular so that Gnus/EUDC/BBDB > work together to provide email completion and snarfing out-of-the-box, > without extra configuration or package installation. If GNU ELPA is a first-class citizen, then all the above can happen without adding yet more stuff to the main Emacs repo. (Wistfully thinking here yet again of the project to bundle GNU ELPA packages with Emacs releases...) ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 13:34 ` Glenn Morris @ 2018-04-14 17:10 ` Radon Rosborough 2018-04-14 17:38 ` Thomas Fitzsimmons 2018-04-15 21:20 ` Phillip Lord 2 siblings, 0 replies; 51+ messages in thread From: Radon Rosborough @ 2018-04-14 17:10 UTC (permalink / raw) To: Glenn Morris; +Cc: Thomas Fitzsimmons, emacs-devel >> I'd like to see what people think about also adding it to Emacs core. > > Personally I think this is the opposite direction to the one in which > Emacs components should be moving. I heartily agree here: as someone who is looking to modernize Emacs package management, one of the biggest problems I see in the current system is the fact that some (obsolete) versions of packages are bundled with Emacs core. It is annoying in the same way that when using a package manager on macOS, one must deal with the (obsolete) versions of packages that are provided by macOS. > (Wistfully thinking here yet again of the project to bundle GNU ELPA > packages with Emacs releases...) My ideal situation would be one in which one can additionally install a version of Emacs that does *not* come bundled with any packages. AFAICT, this project would help make that happen, so I am also in support of that. Best, Radon ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 13:34 ` Glenn Morris 2018-04-14 17:10 ` Radon Rosborough @ 2018-04-14 17:38 ` Thomas Fitzsimmons 2018-04-15 21:20 ` Phillip Lord 2 siblings, 0 replies; 51+ messages in thread From: Thomas Fitzsimmons @ 2018-04-14 17:38 UTC (permalink / raw) To: Glenn Morris; +Cc: emacs-devel Glenn Morris <rgm@gnu.org> writes: > Thomas Fitzsimmons wrote: > >> I'd like to see what people think about also adding it to Emacs core. > > Personally I think this is the opposite direction to the one in which > Emacs components should be moving. I understand that position in general, but I think BBDB should be an exception for two reasons: because there are already dependencies on it in many core packages, and because it is a library that provides a contact management API to other packages. Thomas ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-14 13:34 ` Glenn Morris 2018-04-14 17:10 ` Radon Rosborough 2018-04-14 17:38 ` Thomas Fitzsimmons @ 2018-04-15 21:20 ` Phillip Lord 2018-04-16 3:11 ` Michael Welsh Duggan 2018-04-16 17:09 ` Achim Gratz 2 siblings, 2 replies; 51+ messages in thread From: Phillip Lord @ 2018-04-15 21:20 UTC (permalink / raw) To: Glenn Morris; +Cc: Thomas Fitzsimmons, emacs-devel Glenn Morris <rgm@gnu.org> writes: >> I'd like BBDB to become the default out-of-the-box local contact >> management library for GNU Emacs, in particular so that Gnus/EUDC/BBDB >> work together to provide email completion and snarfing out-of-the-box, >> without extra configuration or package installation. > > If GNU ELPA is a first-class citizen, then all the above can happen > without adding yet more stuff to the main Emacs repo. (Wistfully > thinking here yet again of the project to bundle GNU ELPA packages with > Emacs releases...) I've part-written two different versions of this, both in git. They work in different ways; but ultimately, I think we need to decide what "ELPA as a first-class citizen" actually means. This version: http://git.savannah.gnu.org/cgit/emacs.git/log/?h=elparized-core for example, just pulls out parts of ELPA using git magic, and copies the files into core. Simple, straight-forward and it works. But, ultimately, will it make maintaining core more easy? In the end, I think not, because it is essentially an ad-hoc way of tying together emacs.git and elpa.git. This version: http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/integrated-elpa uses package.el during the build process of Emacs, so that ELPA packages could be added as packages. It requires more work. In the end, my own feeling is that this is the right way. We could dramatically slim down core Emacs to be enough to run package.el. The release would then be "core plus what ever packages we think are important at the time". This would decrease the complexity of the emacs git. But it might increase the complexity of the release process, since you'd be dependent on multiple other packages. I think ELPA and package.el need to be able to cope with multiple versions of the same package, supporting different versions of Emacs for this to work. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-15 21:20 ` Phillip Lord @ 2018-04-16 3:11 ` Michael Welsh Duggan 2018-04-16 12:30 ` Stefan Monnier 2018-04-16 17:09 ` Achim Gratz 1 sibling, 1 reply; 51+ messages in thread From: Michael Welsh Duggan @ 2018-04-16 3:11 UTC (permalink / raw) To: emacs-devel phillip.lord@russet.org.uk (Phillip Lord) writes: > This version: > > http://git.savannah.gnu.org/cgit/emacs.git/log/?h=elparized-core > > for example, just pulls out parts of ELPA using git magic, and copies > the files into core. Simple, straight-forward and it works. But, > ultimately, will it make maintaining core more easy? In the end, I think > not, because it is essentially an ad-hoc way of tying together emacs.git > and elpa.git. > > > This version: > > http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/integrated-elpa > > uses package.el during the build process of Emacs, so that ELPA packages > could be added as packages. It requires more work. In the end, my own > feeling is that this is the right way. We could dramatically slim down > core Emacs to be enough to run package.el. The release would then be > "core plus what ever packages we think are important at the time". > > This would decrease the complexity of the emacs git. But it might > increase the complexity of the release process, since you'd be dependent > on multiple other packages. I think ELPA and package.el need > to be able to cope with multiple versions of the same package, > supporting different versions of Emacs for this to work. I would support any method that does _not_ require a working internet connection in order to install packages. I have had to work on Emacs in many, many places that have limited or non-existent network connections. The ability to "move a package to external medium," then "install from medium as a 'package' maintained by package-mode" would be very nice to have. This may not actually have anything to do with the text I quoted, but I would like to put it out there anyway, just so it is in the back of implementers' minds. -- Michael Welsh Duggan (md5i@md5i.com) ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 3:11 ` Michael Welsh Duggan @ 2018-04-16 12:30 ` Stefan Monnier 0 siblings, 0 replies; 51+ messages in thread From: Stefan Monnier @ 2018-04-16 12:30 UTC (permalink / raw) To: emacs-devel > I would support any method that does _not_ require a working internet > connection in order to install packages. We're discussing something quite different, tho: the proposal would be something like "also clone elpa.git when you clone emacs.git", or "fetch some packages from elpa.git while building the Emacs tarball". > I have had to work on Emacs in > many, many places that have limited or non-existent network connections. > The ability to "move a package to external medium," then "install from > medium as a 'package' maintained by package-mode" would be very nice to > have. There's `package-install-file` for that. Stefan ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-15 21:20 ` Phillip Lord 2018-04-16 3:11 ` Michael Welsh Duggan @ 2018-04-16 17:09 ` Achim Gratz 2018-04-16 18:10 ` Eli Zaretskii 2018-04-23 12:45 ` Phillip Lord 1 sibling, 2 replies; 51+ messages in thread From: Achim Gratz @ 2018-04-16 17:09 UTC (permalink / raw) To: emacs-devel Phillip Lord writes: > http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/integrated-elpa > > uses package.el during the build process of Emacs, so that ELPA packages > could be added as packages. It requires more work. In the end, my own > feeling is that this is the right way. We could dramatically slim down > core Emacs to be enough to run package.el. The release would then be > "core plus what ever packages we think are important at the time". I think the point of contention previously was not from people using Git anyway for all their builds, but from folks attuned to using tarballs. So I think there'd need to be a way to create a tarball that looks like a proper Git checkout of the release, probably with some info put somewhere to record the exact state of these various checkouts at the time of the archive creation and a build process that picks those up as appropriate. My personal preference would be if everything that isn't needed to bootstrap Emacs moved to ELPA so that most of Emacs could be kept up-to-date via the package manager. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 17:09 ` Achim Gratz @ 2018-04-16 18:10 ` Eli Zaretskii 2018-04-16 18:14 ` Achim Gratz 2018-04-23 12:45 ` Phillip Lord 1 sibling, 1 reply; 51+ messages in thread From: Eli Zaretskii @ 2018-04-16 18:10 UTC (permalink / raw) To: Achim Gratz; +Cc: emacs-devel > From: Achim Gratz <Stromeko@nexgo.de> > Date: Mon, 16 Apr 2018 19:09:24 +0200 > > My personal preference would be if everything that isn't needed to > bootstrap Emacs moved to ELPA so that most of Emacs could be kept > up-to-date via the package manager. Beware: XEmacs tried going that way, and failed, in that most users ended up installing the "sumo" package. Let's not repeat past mistakes, mmmkay? ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 18:10 ` Eli Zaretskii @ 2018-04-16 18:14 ` Achim Gratz 0 siblings, 0 replies; 51+ messages in thread From: Achim Gratz @ 2018-04-16 18:14 UTC (permalink / raw) To: emacs-devel Eli Zaretskii writes: > Beware: XEmacs tried going that way, and failed, in that most users > ended up installing the "sumo" package. Let's not repeat past > mistakes, mmmkay? That was a different time when "most" users probably didn't have always-on internet access. Again, you could have a "curated" set of specially blessed ELPA packages if you wanted to and even provide it as a meta package via ELPA. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Samples for the Waldorf Blofeld: http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra ^ permalink raw reply [flat|nested] 51+ messages in thread
* Re: RFC: Adding BBDB to Emacs core 2018-04-16 17:09 ` Achim Gratz 2018-04-16 18:10 ` Eli Zaretskii @ 2018-04-23 12:45 ` Phillip Lord 1 sibling, 0 replies; 51+ messages in thread From: Phillip Lord @ 2018-04-23 12:45 UTC (permalink / raw) To: Achim Gratz; +Cc: emacs-devel Achim Gratz <Stromeko@nexgo.de> writes: > Phillip Lord writes: >> http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/integrated-elpa >> >> uses package.el during the build process of Emacs, so that ELPA packages >> could be added as packages. It requires more work. In the end, my own >> feeling is that this is the right way. We could dramatically slim down >> core Emacs to be enough to run package.el. The release would then be >> "core plus what ever packages we think are important at the time". > > I think the point of contention previously was not from people using Git > anyway for all their builds, but from folks attuned to using tarballs. > So I think there'd need to be a way to create a tarball that looks like > a proper Git checkout of the release, probably with some info put > somewhere to record the exact state of these various checkouts at the > time of the archive creation and a build process that picks those up as > appropriate. This is actually quite straight-forward. One of my branche has this: working/stream: Makefile.in ./bin/deploy-to-core 110b174643707 stream 110b174643707 is the git hash while "deploy-to-core" pulls out the code for stream (from ELPA) and dumps it into the core structure. Phil ^ permalink raw reply [flat|nested] 51+ messages in thread
end of thread, other threads:[~2018-04-27 13:32 UTC | newest] Thread overview: 51+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-04-14 5:54 RFC: Adding BBDB to Emacs core Thomas Fitzsimmons 2018-04-14 12:24 ` Joshua Branson 2018-04-14 22:06 ` Eric Abrahamsen 2018-04-14 22:46 ` Joshua Branson 2018-04-15 6:18 ` Bozhidar Batsov 2018-04-16 5:21 ` John Wiegley 2018-04-16 14:53 ` Thomas Fitzsimmons 2018-04-16 18:36 ` Stefan Monnier 2018-04-16 20:30 ` Eric Abrahamsen 2018-04-17 3:37 ` Thomas Fitzsimmons 2018-04-23 12:53 ` Phillip Lord 2018-04-23 13:21 ` Stefan Monnier 2018-04-23 16:21 ` Phillip Lord 2018-04-23 17:45 ` Stefan Monnier 2018-04-24 21:41 ` Phillip Lord 2018-04-24 22:31 ` Stefan Monnier 2018-04-25 0:42 ` Paul Eggert 2018-04-25 1:50 ` Stefan Monnier 2018-04-25 9:21 ` Phillip Lord 2018-04-25 12:02 ` Stefan Monnier 2018-04-25 16:31 ` Phillip Lord 2018-04-25 16:57 ` Stefan Monnier 2018-04-26 14:59 ` Phillip Lord 2018-04-25 9:19 ` Phillip Lord 2018-04-25 16:04 ` Radon Rosborough 2018-04-25 16:32 ` Phillip Lord 2018-04-25 16:55 ` Stefan Monnier 2018-04-25 20:16 ` Radon Rosborough 2018-04-26 15:02 ` Phillip Lord 2018-04-26 16:38 ` Stefan Monnier 2018-04-27 9:57 ` Phillip Lord 2018-04-27 13:32 ` Stefan Monnier 2018-04-17 3:23 ` Roland Winkler 2018-04-17 4:56 ` John Wiegley 2018-04-17 13:07 ` Stefan Monnier 2018-04-17 15:13 ` Roland Winkler 2018-04-18 23:11 ` Stephen Leake 2018-04-23 12:57 ` Phillip Lord 2018-04-23 13:26 ` Stefan Monnier 2018-04-23 15:29 ` Roland Winkler 2018-04-14 22:13 ` Thomas Fitzsimmons 2018-04-14 13:34 ` Glenn Morris 2018-04-14 17:10 ` Radon Rosborough 2018-04-14 17:38 ` Thomas Fitzsimmons 2018-04-15 21:20 ` Phillip Lord 2018-04-16 3:11 ` Michael Welsh Duggan 2018-04-16 12:30 ` Stefan Monnier 2018-04-16 17:09 ` Achim Gratz 2018-04-16 18:10 ` Eli Zaretskii 2018-04-16 18:14 ` Achim Gratz 2018-04-23 12:45 ` Phillip Lord
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).