unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Donald Curtis <dcurtis@milkbox.net>
Cc: Steve Purcell <steve@sanityinc.com>, emacs-devel@gnu.org
Subject: Re: MELPA version numbers
Date: Thu, 01 Aug 2013 17:39:35 -0400	[thread overview]
Message-ID: <jwvob9hf6zt.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <CANJd5QvvAYpZ4ucfzgaN3K-0kPOTisph=UCeOkFPFhcY+GuBUA@mail.gmail.com> (Donald Curtis's message of "Thu, 1 Aug 2013 13:49:52 -0700")

> This would work as a solution except for that we would then break updates
> for current users in the same way that it would break if someone stopped
> using MELPA.

Yes, clearly, that would be a big cost (one-time cost, but fairly big).
Maybe we could try to invent a smoother transition.  E.g.:
1- use "20100105.123.2.3" instead of "2.3.20100105.123".  Rebuild all
   packages to follow this rule.  This way, most users will "upgrade"
   their package to the "newer" (identical save the revnb) packages, so
   that old-style revnb will disappear over time.
2- change package.el to recognize those special mid-style rev numbers
   and internally handle them as new-style "2.3.20100105.123".
   This way, users of old package.el get the same behavior as before,
   but users of newer ones get the new behavior.
3- after a few years (when you can expect most users to have upgraded
   their installed packages to the mid-style revnb and to use the newer
   package.el), switch to new-style "2.3.20100105.123".

> It is also not clear in this case how to handle packages that
> don't include a version number.

No version could be treated like version 0.0 ?

> One solution I might suggest is the approach that js2-mode has taken
> on the GNU repo.  It seems that their versions follow with MELPA sans
> the time.

They had the same problem: they "accidentally" used a YYYYMMDD version
numbering, and when they fixed that, they discovered that it prevented
users from upgrading, so they had to revert to YYYYMMDD.

> I think that having arbitrary version numbers for things
> like extensions is a little overkill and MELPA is at least a little
> evidence that versioning based in the date of release *can* work.
> In this case it could be as simple as the Emacs community endorsing
> a release date based versioning system.

I tend to agree that for many package, version numbers aren't that
important.  But they are used and I think there are good cognitive
reasons for them.  Ubuntu's date-based version numbers seem to strike
a reasonable balance, but I don't think this could work for MELPA since
the "resolution" needs to be much higher (for lack of control over the
rate of releases).  Tho at least for GNU ELPA, I guess we could stick to
"YY.MM" release names.

> I think, ultimately this is not an MELPA problem, but a shortcoming of
> package.el.  One of many others…

Clearly, that's another way to look at it.  After all, package evolution
is not always linear, so we may/will hit similar problems sooner or
later, kind of like what happened back then with Ispell-4.

But these non-linearities are exceptions, whereas the issue here is
between different version numbers used for the very same
linear evolution.

A solution to both non-linearities cold be to add release-time as
a package-property.  So package.el could then warn the user "there's
a newer package with an older version number, you might want to look at
it".


        Stefan



  reply	other threads:[~2013-08-01 21:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 17:50 MELPA version numbers Stefan Monnier
2013-08-01 20:49 ` Donald Curtis
2013-08-01 21:39   ` Stefan Monnier [this message]
2013-08-02  8:26     ` Sebastian Wiesner
2013-08-02 14:27       ` Stefan Monnier
2013-08-02 14:35         ` Steve Purcell
2013-08-02 15:24         ` Sebastian Wiesner
2013-08-02 15:47           ` Stefan Monnier
2013-08-02 15:58             ` Steve Purcell
2013-08-01 20:51 ` Sebastian Wiesner
2013-08-01 20:57 ` Dmitry Gutov
2013-08-02 14:46   ` Steve Purcell
2013-08-02 15:57     ` Stefan Monnier

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=jwvob9hf6zt.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=dcurtis@milkbox.net \
    --cc=emacs-devel@gnu.org \
    --cc=steve@sanityinc.com \
    /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 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).