[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to do a beta release on ELPA?
From: |
Tassilo Horn |
Subject: |
Re: How to do a beta release on ELPA? |
Date: |
Fri, 30 Oct 2020 21:32:37 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
Hi Stefan,
>> I don't think there are too many people running straight from our
>> master branch, so I guess we should do a new ELPA release pretty soon
>> to get more testing. But is there a way to release a new ELPA
>> version just for the adventurous?
>
> Not really, no.
Ok, I guessed so.
> I'd like to create an alternative ELPA archive built from elpa.git but
> using the latest code (kind of like the non-stable Melpa), but that's
> been a TODO item for a while already and I've not even tried to get
> started on it.
You gotta have plans.
>> 2) Just do a normal ELPA release and if things break for some users tell
>> them how to pin auctex to version 12.3.1 for the time needed to fix
>> their issues.
>
> That's what I'd recommend, yes.
> I'd definitely give it a release version that sounds like "major
> release". We're way past "2.0", so I'll let you find the next best
> choice.
Yes, we'll release it as GNU AUCTeX 13.0.0 on ELPA and when things have
stabilized, we'll do a 13.1 tarball release. So the current version 12
is the last one of the pre-lexical-binding era.
>> With option 2), I guess it could harm users who don't know how to
>> reach out for help.
>
> Maybe emit a warning during compilation or upon "first use", with an
> appropriate description of the kind of problems that can happen. Many
> users still won't read it, but it increases the chances that they'll
> find someone who has.
Yes, I guess such a first use message pointing to the docs where we
describe exactly what has changed and how to migrate would be a good
solution.
>> Are there any other (preferably better!) options?
>
> Option 1: change the code so as not to introduce such backward
> incompatibilities (e.g. Calendar ended keeping nasty dynamically
> scoped vars like `date` and `month` in order to maximize compatibility
> with existing code). That can't be a 100% solution tho since there
> can always be people who used non-documented vars via dynamic scoping.
Nah, I'm happy those are all gone. :-)
> Option 2: rely on the quick&easy release process: as soon as you hear
> of one incompatibility, you immediately adjust the code (typically to
> mark some var as dynscoped) and make a new minor release.
Yes, that's definitely what we are planning to do and the reason it'll
be on ELPA first.
> Option 3: (getting really creative here) make sure you new code makes
> no other changes than switching to lexical-binding and then do
> temporary release: release 12.3.2 with lexical-binding, then a week
> later release 12.3.3 without lexical-binding (i.e. reverting to the
> previous code) and work on fixing the incompatibilities found along
> the way, then try again with the new&improved lexical-binding code,
> maybe leaving it for a month instead of a week, ...
That's creative indeed!
> If you insist, I'm sure I can come up with an even more fun option 4.
Please stop it! ;-)
Thanks,
Tassilo