all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [ELPA] Wrong dependency headers for Ement v0.4
       [not found] <85sfjfa7v0.fsf@elpa.gnu.org>
@ 2022-10-24 15:44 ` Adam Porter
  2022-10-24 20:51   ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Adam Porter @ 2022-10-24 15:44 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Hi Stefan, et al,

I've encountered a strange situation: I recently published v0.4 of 
Ement.  The describe-package command now shows this:

   Package ement is incompatible.

      Status: Incompatible because it depends on uninstallable packages.
     Archive: gnu
     Version: 0.4
      Commit: b06c78d1ba700857330520bc796c5a29018b7ec5
     Summary: Matrix client
    Requires: emacs-27.1, map-2.1, plz-0.2, taxy-0.12.1 (not available),
                taxy-magit-section-0.9, svg-lib-0.2.5, transient-0.3.7
     Website: https://github.com/alphapapa/ement.el

However, these package headers do not match those in the listed commit, 
i.e. 
https://github.com/alphapapa/ement.el/blob/b06c78d1ba700857330520bc796c5a29018b7ec5/ement.el 
shows:

   ;; Package-Requires: ((emacs "27.1") (map "2.1") (plz "0.2") (taxy 
"0.9") (taxy-magit-section "0.9") (svg-lib "0.2.5") (transient "0.3.7"))

The package headers listed on ELPA correspond to a different commit I 
added later, which had that mistake in it 
(https://github.com/alphapapa/ement.el/commit/529c6b21e7e2c18d2dbcf35359829c3a907a41bc), 
which I've since corrected on git master 
(https://github.com/alphapapa/ement.el/commit/81caaae8fd33b67759bbd7403e3e98143acb2915).

I'd like to push a v0.4.1, just hoping that it would trigger ELPA to use 
the correct dependency headers, but I've since pushed a v0.5-pre version 
to git master, in which I'm preparing the next stable release, so I 
can't make a v0.4.1 release for ELPA, since it reads from the same branch.

I could go ahead and release v0.5, but I was planning to work on it 
more, to fix some bugs that I didn't want to release yet.  So I'm not 
sure what to do now.

Aside: This is one way in which MELPA is a bit easier to work with: 
although MELPA Stable is generally not recommended for use (due to 
various issues), it builds packages from version tags rather than git 
master (regular MELPA builds from git master); if ELPA worked the same 
way, I could easily tag a v0.4.1 independently of what's on the master 
branch.

Given that, would it be possible to have ELPA build from a separate 
branch?  That's how I organize some of my other packages, with a 
"stable" branch and a master branch.  If ELPA pulled from a "stable" 
branch, I could push a fix to that while the next major version is still 
in development.

Thanks for your help.

Adam



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ELPA] Wrong dependency headers for Ement v0.4
  2022-10-24 15:44 ` [ELPA] Wrong dependency headers for Ement v0.4 Adam Porter
@ 2022-10-24 20:51   ` Stefan Monnier
  2022-10-27 17:46     ` Adam Porter
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-10-24 20:51 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

> I've encountered a strange situation: I recently published v0.4 of Ement.
> The describe-package command now shows this:
>
>   Package ement is incompatible.
>
>      Status: Incompatible because it depends on uninstallable packages.
>     Archive: gnu
>     Version: 0.4
>      Commit: b06c78d1ba700857330520bc796c5a29018b7ec5
>     Summary: Matrix client
>    Requires: emacs-27.1, map-2.1, plz-0.2, taxy-0.12.1 (not available),
>                taxy-magit-section-0.9, svg-lib-0.2.5, transient-0.3.7
>     Website: https://github.com/alphapapa/ement.el
>
> However, these package headers do not match those in the listed commit,
> i.e. https://github.com/alphapapa/ement.el/blob/b06c78d1ba700857330520bc796c5a29018b7ec5/ement.el
> shows:

Hmm... this seems to clearly point to a bug in `elpa-admin.el`.

I wonder how we end up generating a `ement-pkg.el` that contains this
Git revision id, with a `0.4` version, the correct files, but the wrong
set of requires.

[... reading the code...]

Hmm... it looks like we get most of the metadata for `<PKG>-pkg.el` from
the HEAD before we select the actual revision from which we'll build the
tarball :-(

This is ugly.  It probably messed up several existing tarballs, actually
(just in a way sufficiently "harmless" that noone complained loudly
enough yet).

> Aside: This is one way in which MELPA is a bit easier to work with: although
> MELPA Stable is generally not recommended for use (due to various issues),
> it builds packages from version tags rather than git master (regular MELPA
> builds from git master); if ELPA worked the same way, I could easily tag
> a v0.4.1 independently of what's on the master branch.

We can actually do something similar currently by adding
a `:version-map` in the `elpa-packages` spec to make a release
from an arbitrary Git commit (it's better avoided but was introduced to
handle cases where the upstream doesn't have any `Version:` header, as
well as to allow building a new tarball with a different version number
in case the original build was broken for some reason, as in our case).

> Given that, would it be possible to have ELPA build from a separate branch?
> That's how I organize some of my other packages, with a "stable" branch and
> a master branch.  If ELPA pulled from a "stable" branch, I could push a fix
> to that while the next major version is still in development.

We can also do that, yes, using the `:release-branch`.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ELPA] Wrong dependency headers for Ement v0.4
  2022-10-24 20:51   ` Stefan Monnier
@ 2022-10-27 17:46     ` Adam Porter
  2022-10-27 20:18       ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Adam Porter @ 2022-10-27 17:46 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2181 bytes --]

Hi Stefan,

On 10/24/22 15:51, Stefan Monnier wrote:

> Hmm... this seems to clearly point to a bug in `elpa-admin.el`.
> 
> I wonder how we end up generating a `ement-pkg.el` that contains this
> Git revision id, with a `0.4` version, the correct files, but the wrong
> set of requires.
> 
> [... reading the code...]
> 
> Hmm... it looks like we get most of the metadata for `<PKG>-pkg.el` from
> the HEAD before we select the actual revision from which we'll build the
> tarball :-(
> 
> This is ugly.  It probably messed up several existing tarballs, actually
> (just in a way sufficiently "harmless" that noone complained loudly
> enough yet).

Well, it's good that it was finally discovered.  :)

>> Aside: This is one way in which MELPA is a bit easier to work with: although
>> MELPA Stable is generally not recommended for use (due to various issues),
>> it builds packages from version tags rather than git master (regular MELPA
>> builds from git master); if ELPA worked the same way, I could easily tag
>> a v0.4.1 independently of what's on the master branch.
> 
> We can actually do something similar currently by adding
> a `:version-map` in the `elpa-packages` spec to make a release
> from an arbitrary Git commit (it's better avoided but was introduced to
> handle cases where the upstream doesn't have any `Version:` header, as
> well as to allow building a new tarball with a different version number
> in case the original build was broken for some reason, as in our case).
> 
>> Given that, would it be possible to have ELPA build from a separate branch?
>> That's how I organize some of my other packages, with a "stable" branch and
>> a master branch.  If ELPA pulled from a "stable" branch, I could push a fix
>> to that while the next major version is still in development.
> 
> We can also do that, yes, using the `:release-branch`.

Okay, that sounds good to me.  Please see the attached patch to 
elpa-packages, which sets the release-branch to "stable".  I've already 
pushed such a branch to the repo, at the v0.4 commit.

Will this patch cause the package to be rebuilt for v0.4, or do I need 
to make a v0.4.1 release to trigger that?

Thanks,
Adam

[-- Attachment #2: 0001-elpa-packages-ement-Set-release-branch.patch --]
[-- Type: text/x-patch, Size: 694 bytes --]

From b232378c68c36634a9c25e11ec035b0d8820cbfd Mon Sep 17 00:00:00 2001
From: Adam Porter <adam@alphapapa.net>
Date: Thu, 27 Oct 2022 12:43:09 -0500
Subject: [PATCH] * elpa-packages (ement): Set :release-branch

---
 elpa-packages | 1 +
 1 file changed, 1 insertion(+)

diff --git a/elpa-packages b/elpa-packages
index 024253e5c0..4d063d1790 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -286,6 +286,7 @@
   :ignored-files ("embark.el" "embark.texi" "avy-embark-collect.el")
   :auto-sync t)
  ("ement"		:url "https://github.com/alphapapa/ement.el.git"
+  :release-branch "stable"
   :doc "README.org"
   :auto-sync t)
  ("emms"		:url "https://git.savannah.gnu.org/git/emms.git"
-- 
2.34.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [ELPA] Wrong dependency headers for Ement v0.4
  2022-10-27 17:46     ` Adam Porter
@ 2022-10-27 20:18       ` Stefan Monnier
  2022-10-27 20:28         ` Adam Porter
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-10-27 20:18 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

> Well, it's good that it was finally discovered.  :)

And fixed, even!

>>> Given that, would it be possible to have ELPA build from a separate branch?
>>> That's how I organize some of my other packages, with a "stable" branch and
>>> a master branch.  If ELPA pulled from a "stable" branch, I could push a fix
>>> to that while the next major version is still in development.
>> We can also do that, yes, using the `:release-branch`.
>
> Okay, that sounds good to me.  Please see the attached patch to
> elpa-packages, which sets the release-branch to "stable".

Done, thanks.

> Will this patch cause the package to be rebuilt for v0.4, or do I need to
> make a v0.4.1 release to trigger that?

There's already a 0.4 package, and by design, packages never(!) get
rebuilt, so you'll need to change `Version:`, yes.
[ And currently, changes on the release branch are only pulled as
  a side-effect of pulling changes from the devel branch, so if you only
  commit to the release branch, the package may wait for a while until
  it's actually released.  :-(  ]


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ELPA] Wrong dependency headers for Ement v0.4
  2022-10-27 20:18       ` Stefan Monnier
@ 2022-10-27 20:28         ` Adam Porter
  0 siblings, 0 replies; 5+ messages in thread
From: Adam Porter @ 2022-10-27 20:28 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

On 10/27/22 15:18, Stefan Monnier wrote:
>> Well, it's good that it was finally discovered.  :)
> 
> And fixed, even!

:D

>>>> Given that, would it be possible to have ELPA build from a separate branch?
>>>> That's how I organize some of my other packages, with a "stable" branch and
>>>> a master branch.  If ELPA pulled from a "stable" branch, I could push a fix
>>>> to that while the next major version is still in development.
>>> We can also do that, yes, using the `:release-branch`.
>>
>> Okay, that sounds good to me.  Please see the attached patch to
>> elpa-packages, which sets the release-branch to "stable".
> 
> Done, thanks.
> 
>> Will this patch cause the package to be rebuilt for v0.4, or do I need to
>> make a v0.4.1 release to trigger that?
> 
> There's already a 0.4 package, and by design, packages never(!) get
> rebuilt, so you'll need to change `Version:`, yes.
> [ And currently, changes on the release branch are only pulled as
>    a side-effect of pulling changes from the devel branch, so if you only
>    commit to the release branch, the package may wait for a while until
>    it's actually released.  :-(  ]

Understood, so I just pushed v0.4.1 to the stable branch and then a new 
commit to the master branch, so IIUC that will guarantee a rebuild with 
v0.4.1 being released.

Thanks for all your work!



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-27 20:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <85sfjfa7v0.fsf@elpa.gnu.org>
2022-10-24 15:44 ` [ELPA] Wrong dependency headers for Ement v0.4 Adam Porter
2022-10-24 20:51   ` Stefan Monnier
2022-10-27 17:46     ` Adam Porter
2022-10-27 20:18       ` Stefan Monnier
2022-10-27 20:28         ` Adam Porter

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.