unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Don't add tags to ELPA packages -- documentation?
@ 2021-08-17 21:10 Eric Abrahamsen
  2021-08-17 21:24 ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-17 21:10 UTC (permalink / raw)
  To: emacs-devel

I just realized that you can't realistically add tags to your ELPA
packages, because tag names need to be unique across a repo, and your
"v0.6" is going to conflict with other packages' attempts to tag the
same. EBDB occupied some prime tag real estate with its earlier point
versions, but now I can't tag 0.7 because eglot already has that.

Can I patch the README to tell developers not to use tags at all? (You
can't even tag locally and not push them; git still complains.) Or is
there any other trick to solve the situation?




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 21:10 Don't add tags to ELPA packages -- documentation? Eric Abrahamsen
@ 2021-08-17 21:24 ` Stefan Monnier
  2021-08-17 21:51   ` Eric Abrahamsen
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2021-08-17 21:24 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-devel

> Can I patch the README to tell developers not to use tags at all?

Sure.
Indeed tags are not used in elpa.git and nongnu.git.

Of course, you can still use tags there if you want, like in any
other repository, but you're better off giving them names that include
the relevant package's name, like `ebdb-0.7`.

        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 21:24 ` Stefan Monnier
@ 2021-08-17 21:51   ` Eric Abrahamsen
  2021-08-17 22:01     ` Adam Porter
                       ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-17 21:51 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Can I patch the README to tell developers not to use tags at all?
>
> Sure.
> Indeed tags are not used in elpa.git and nongnu.git.
>
> Of course, you can still use tags there if you want, like in any
> other repository, but you're better off giving them names that include
> the relevant package's name, like `ebdb-0.7`.

Good to know! I don't suppose you know what happens when we add ELPA or
nongnu ELPA as a new remote to a repo already containing tags that will
conflict with ELPA tags? Do you know at what stage git will bark at us?
Anyway, I can probably figure this out myself, but inquiring minds on
Matrix want to know...



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 21:51   ` Eric Abrahamsen
@ 2021-08-17 22:01     ` Adam Porter
  2021-08-17 22:51       ` Eric Abrahamsen
  2021-08-17 23:04     ` Stefan Monnier
  2021-08-17 23:15     ` Phil Sainty
  2 siblings, 1 reply; 27+ messages in thread
From: Adam Porter @ 2021-08-17 22:01 UTC (permalink / raw)
  To: emacs-devel

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>> Can I patch the README to tell developers not to use tags at all?
>>
>> Sure.
>> Indeed tags are not used in elpa.git and nongnu.git.
>>
>> Of course, you can still use tags there if you want, like in any
>> other repository, but you're better off giving them names that include
>> the relevant package's name, like `ebdb-0.7`.
>
> Good to know! I don't suppose you know what happens when we add ELPA or
> nongnu ELPA as a new remote to a repo already containing tags that will
> conflict with ELPA tags? Do you know at what stage git will bark at us?
> Anyway, I can probably figure this out myself, but inquiring minds on
> Matrix want to know...

Well, that mind would be mine.  :)  Yes, I'd like to submit some of my
packages (including some that are already on MELPA) to ELPA or nongnu
ELPA at some point, but I tag my stable releases with tags like "0.6.1",
which MELPA uses for MELPA Stable packages.  It seems like I'd have to
either delete the tags or rename them with the package name as a prefix,
and AFAIK either one would be incompatible with MELPA Stable.  Of
course, I guess there'd be no need to be on MELPA anymore in that case,
but having to fix all the tags would be a hassle, and then I'd have to
break an old habit.  I guess one can't have everything, but it'd be
great if this could be "solved."  The idea of sharing tags with other
repos that aren't part of my own repos feels a little like a Twilight
Zone episode, if there were an Emacs edition: they're not there, but
they're there...  :)




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 22:01     ` Adam Porter
@ 2021-08-17 22:51       ` Eric Abrahamsen
  0 siblings, 0 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-17 22:51 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

Adam Porter <adam@alphapapa.net> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>
>>>> Can I patch the README to tell developers not to use tags at all?
>>>
>>> Sure.
>>> Indeed tags are not used in elpa.git and nongnu.git.
>>>
>>> Of course, you can still use tags there if you want, like in any
>>> other repository, but you're better off giving them names that include
>>> the relevant package's name, like `ebdb-0.7`.
>>
>> Good to know! I don't suppose you know what happens when we add ELPA or
>> nongnu ELPA as a new remote to a repo already containing tags that will
>> conflict with ELPA tags? Do you know at what stage git will bark at us?
>> Anyway, I can probably figure this out myself, but inquiring minds on
>> Matrix want to know...
>
> Well, that mind would be mine.  :)  Yes, I'd like to submit some of my
> packages (including some that are already on MELPA) to ELPA or nongnu
> ELPA at some point, but I tag my stable releases with tags like "0.6.1",
> which MELPA uses for MELPA Stable packages.  It seems like I'd have to
> either delete the tags or rename them with the package name as a prefix,
> and AFAIK either one would be incompatible with MELPA Stable.  Of
> course, I guess there'd be no need to be on MELPA anymore in that case,
> but having to fix all the tags would be a hassle, and then I'd have to
> break an old habit.  I guess one can't have everything, but it'd be
> great if this could be "solved."  The idea of sharing tags with other
> repos that aren't part of my own repos feels a little like a Twilight
> Zone episode, if there were an Emacs edition: they're not there, but
> they're there...  :)

My first inkling of this issue came when I ran "git tag -l" in my EBDB
repo, and it returned hyperbole- and eglot-related tags. Talk about
Twilight Zone... I was planning to order up an exorcism on my repository.



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 21:51   ` Eric Abrahamsen
  2021-08-17 22:01     ` Adam Porter
@ 2021-08-17 23:04     ` Stefan Monnier
  2021-08-17 23:15     ` Phil Sainty
  2 siblings, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2021-08-17 23:04 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-devel

> Good to know! I don't suppose you know what happens when we add ELPA or
> nongnu ELPA as a new remote to a repo already containing tags that will
> conflict with ELPA tags?

No, sorry, I never use Git tags.
I'm pretty sure you can control which tags are copied where and when.


        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 21:51   ` Eric Abrahamsen
  2021-08-17 22:01     ` Adam Porter
  2021-08-17 23:04     ` Stefan Monnier
@ 2021-08-17 23:15     ` Phil Sainty
  2021-08-17 23:28       ` Phil Sainty
  2 siblings, 1 reply; 27+ messages in thread
From: Phil Sainty @ 2021-08-17 23:15 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: Stefan Monnier, emacs-devel

On 2021-08-18 09:51, Eric Abrahamsen wrote:
> Good to know! I don't suppose you know what happens when we add ELPA or
> nongnu ELPA as a new remote to a repo already containing tags that will
> conflict with ELPA tags? Do you know at what stage git will bark at us?

FWIW if you configure your external repo as the source for ELPA to fetch
your package from, then there are no problems at all.

For example, https://git.savannah.nongnu.org/cgit/delight.git/refs/
has version tags from 1.0 .. 1.7 and is included in GNU ELPA with
https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/elpa-packages?id=06e26055b3377#n119

ELPA does not fetch the tags from the external repo, and those tags are
not needed within the ELPA repository, so it's fine.


-Phil




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 23:15     ` Phil Sainty
@ 2021-08-17 23:28       ` Phil Sainty
  2021-08-17 23:36         ` Eric Abrahamsen
  0 siblings, 1 reply; 27+ messages in thread
From: Phil Sainty @ 2021-08-17 23:28 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: Stefan Monnier, emacs-devel

On 2021-08-18 09:51, Eric Abrahamsen wrote:
> Good to know! I don't suppose you know what happens when we add ELPA or
> nongnu ELPA as a new remote to a repo already containing tags that will
> conflict with ELPA tags? Do you know at what stage git will bark at us?

Checking the docs...

Git doesn't push any tags by default, so really git shouldn't bark at
you unless you've explicitly asked it to do that and there turned out
to be a conflict.

"git push --follow-tags" will include relevant tags.
"git push --tag" will include *all* tags.

Unless you're using those, or have configured push.followTags, I think
you won't have any issues.

The small number of existing tags in the ELPA repository would have been
pushed in one of those ways.


-Phil




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 23:28       ` Phil Sainty
@ 2021-08-17 23:36         ` Eric Abrahamsen
  2021-08-18  2:30           ` Phil Sainty
  0 siblings, 1 reply; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-17 23:36 UTC (permalink / raw)
  To: Phil Sainty; +Cc: Stefan Monnier, emacs-devel

Phil Sainty <psainty@orcon.net.nz> writes:

> On 2021-08-18 09:51, Eric Abrahamsen wrote:
>> Good to know! I don't suppose you know what happens when we add ELPA or
>> nongnu ELPA as a new remote to a repo already containing tags that will
>> conflict with ELPA tags? Do you know at what stage git will bark at us?
>
> Checking the docs...
>
> Git doesn't push any tags by default, so really git shouldn't bark at
> you unless you've explicitly asked it to do that and there turned out
> to be a conflict.
>
> "git push --follow-tags" will include relevant tags.
> "git push --tag" will include *all* tags.
>
> Unless you're using those, or have configured push.followTags, I think
> you won't have any issues.
>
> The small number of existing tags in the ELPA repository would have been
> pushed in one of those ways.

Okay, this is really useful! Thank you. So it's only an issue if package
maintainers have explicitly pushed their tags to the ELPA repo. So all
the README needs to say, really, is "don't push your tags to the ELPA repo".



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-17 23:36         ` Eric Abrahamsen
@ 2021-08-18  2:30           ` Phil Sainty
  2021-08-18  6:41             ` Bozhidar Batsov
  0 siblings, 1 reply; 27+ messages in thread
From: Phil Sainty @ 2021-08-18  2:30 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: Stefan Monnier, emacs-devel

On 2021-08-18 11:36, Eric Abrahamsen wrote:
> Okay, this is really useful! Thank you. So it's only an issue if 
> package
> maintainers have explicitly pushed their tags to the ELPA repo. So all
> the README needs to say, really, is "don't push your tags to the ELPA 
> repo".

Yes, I think so; although it might be worthwhile elaborating to avoid
any potential confusion.  Something like:

Git tags should not be pushed to the ELPA repository.  This is because:

* Tags are global throughout any git repository.

* Therefore tags sourced from one package might conflict with tags
   sourced from another project (e.g. a version tag "1.0").

* The ELPA repository doesn't need any tags.

Note that git will not push any tags unless you explicitly tell it to
do so.




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  2:30           ` Phil Sainty
@ 2021-08-18  6:41             ` Bozhidar Batsov
  2021-08-18  7:03               ` Yuan Fu
  2021-08-18  7:21               ` Phil Sainty
  0 siblings, 2 replies; 27+ messages in thread
From: Bozhidar Batsov @ 2021-08-18  6:41 UTC (permalink / raw)
  To: Emacs Devel

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

I'm a bit confused by the conversation so far. Can someone elaborate on "maintainers have explicitly pushed their tags to the ELPA repo"? I do tag all the releases of my packages, as that's a common (and good) practice, but I don't understand why would something like this be affecting ELPA negatively. Does it sync the tags from the remotes or what? 

In general I don't think that something like "stop tagging your releases upstream" is a good solution. Adding a prefix to the tag name (e.g. the package name) also seems weird in the context of a single project repository. 

On Wed, Aug 18, 2021, at 5:30 AM, Phil Sainty wrote:
> On 2021-08-18 11:36, Eric Abrahamsen wrote:
> > Okay, this is really useful! Thank you. So it's only an issue if 
> > package
> > maintainers have explicitly pushed their tags to the ELPA repo. So all
> > the README needs to say, really, is "don't push your tags to the ELPA 
> > repo".
> 
> Yes, I think so; although it might be worthwhile elaborating to avoid
> any potential confusion.  Something like:
> 
> Git tags should not be pushed to the ELPA repository.  This is because:
> 
> * Tags are global throughout any git repository.
> 
> * Therefore tags sourced from one package might conflict with tags
>    sourced from another project (e.g. a version tag "1.0").
> 
> * The ELPA repository doesn't need any tags.
> 
> Note that git will not push any tags unless you explicitly tell it to
> do so.
> 
> 
> 

[-- Attachment #2: Type: text/html, Size: 2061 bytes --]

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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  6:41             ` Bozhidar Batsov
@ 2021-08-18  7:03               ` Yuan Fu
  2021-08-18 13:25                 ` Stefan Monnier
  2021-08-18 13:31                 ` Stefan Monnier
  2021-08-18  7:21               ` Phil Sainty
  1 sibling, 2 replies; 27+ messages in thread
From: Yuan Fu @ 2021-08-18  7:03 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel



> On Aug 17, 2021, at 11:41 PM, Bozhidar Batsov <bozhidar@batsov.dev> wrote:
> 
> I'm a bit confused by the conversation so far. Can someone elaborate on "maintainers have explicitly pushed their tags to the ELPA repo"? I do tag all the releases of my packages, as that's a common (and good) practice, but I don't understand why would something like this be affecting ELPA negatively. Does it sync the tags from the remotes or what? 
> 
> In general I don't think that something like "stop tagging your releases upstream" is a good solution. Adding a prefix to the tag name (e.g. the package name) also seems weird in the context of a single project repository. 

Tags are not automatically pushed, so if you don’t explicitly push tags to ELPA[1], ELPA shouldn’t include tags in your upstream repo. Tags are indeed global in ELPA, but again, if no one explicitly pushes his package’s tags to ELPA, there shouldn’t be any conflict. So you can keep tagging your repo without using any prefix. That’s what I gathered from following the thread.

[1] Reading Phil’s message, one can explicitly push tags with

"git push --follow-tags" to include relevant tags.
"git push --tag" to include *all* tags.

So if you don’t do that, you aren’t pushing tags to ELPA.

Yuan


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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  6:41             ` Bozhidar Batsov
  2021-08-18  7:03               ` Yuan Fu
@ 2021-08-18  7:21               ` Phil Sainty
  2021-08-18  8:15                 ` Bozhidar Batsov
  1 sibling, 1 reply; 27+ messages in thread
From: Phil Sainty @ 2021-08-18  7:21 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel

On 2021-08-18 18:41, Bozhidar Batsov wrote:
> I'm a bit confused by the conversation so far. Can someone elaborate
> on "maintainers have explicitly pushed their tags to the ELPA repo"?
> I do tag all the releases of my packages, as that's a common (and
> good) practice, but I don't understand why would something like this
> be affecting ELPA negatively.

It won't.  Not unless you went out of your way to make it a problem.

Your "single project repository" is not the ELPA repo.  The ELPA repo
contains all of the packages in that archive.

This whole discussion only applies if you are manually pushing code
changes to the ELPA repo.  If your package is defined as an external
repo for ELPA's build processes to fetch automatically, then you aren't
pushing *anything* to the ELPA repo at all.


> Does it sync the tags from the remotes or what?

No, it doesn't, so tags can't be a problem if ELPA is fetching the
updates itself.


> In general I don't think that something like "stop tagging your
> releases upstream" is a good solution.

Keep tagging to your heart's content in your own repository.  Just
don't push those tags to the ELPA repo (which you would need to do
explicitly with options to the "git push" command).


> Adding a prefix to the tag name (e.g. the package name) also seems
> weird in the context of a single project repository.

Again, this was purely in the context of the multi-project ELPA repo.
If someone particularly wanted tags in the ELPA repo for a package,
then the tags would need to be namespaced with a prefix in order to
avoid potential clashes.


-Phil




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  7:21               ` Phil Sainty
@ 2021-08-18  8:15                 ` Bozhidar Batsov
  0 siblings, 0 replies; 27+ messages in thread
From: Bozhidar Batsov @ 2021-08-18  8:15 UTC (permalink / raw)
  To: Emacs Devel

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

Makes perfect sense. Thanks for the response! 

I've only used (NonGNU) ELPA with remote upstreams, that's why I wasn't sure for whom
exactly does this conversation apply. 

On Wed, Aug 18, 2021, at 10:21 AM, Phil Sainty wrote:
> On 2021-08-18 18:41, Bozhidar Batsov wrote:
> > I'm a bit confused by the conversation so far. Can someone elaborate
> > on "maintainers have explicitly pushed their tags to the ELPA repo"?
> > I do tag all the releases of my packages, as that's a common (and
> > good) practice, but I don't understand why would something like this
> > be affecting ELPA negatively.
> 
> It won't.  Not unless you went out of your way to make it a problem.
> 
> Your "single project repository" is not the ELPA repo.  The ELPA repo
> contains all of the packages in that archive.
> 
> This whole discussion only applies if you are manually pushing code
> changes to the ELPA repo.  If your package is defined as an external
> repo for ELPA's build processes to fetch automatically, then you aren't
> pushing *anything* to the ELPA repo at all.
> 
> 
> > Does it sync the tags from the remotes or what?
> 
> No, it doesn't, so tags can't be a problem if ELPA is fetching the
> updates itself.
> 
> 
> > In general I don't think that something like "stop tagging your
> > releases upstream" is a good solution.
> 
> Keep tagging to your heart's content in your own repository.  Just
> don't push those tags to the ELPA repo (which you would need to do
> explicitly with options to the "git push" command).
> 
> 
> > Adding a prefix to the tag name (e.g. the package name) also seems
> > weird in the context of a single project repository.
> 
> Again, this was purely in the context of the multi-project ELPA repo.
> If someone particularly wanted tags in the ELPA repo for a package,
> then the tags would need to be namespaced with a prefix in order to
> avoid potential clashes.
> 
> 
> -Phil
> 
> 
> 

[-- Attachment #2: Type: text/html, Size: 2802 bytes --]

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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  7:03               ` Yuan Fu
@ 2021-08-18 13:25                 ` Stefan Monnier
  2021-08-18 13:31                 ` Stefan Monnier
  1 sibling, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2021-08-18 13:25 UTC (permalink / raw)
  To: Yuan Fu; +Cc: Bozhidar Batsov, Emacs Devel

Hi Yuan,

> Tags are not automatically pushed, so if you don’t explicitly push tags to
> ELPA[1], ELPA shouldn’t include tags in your upstream repo. Tags are indeed

I'd urge you to use more precise terminology.
ELPA is a set of protocols and conventions for distribution and
installation of Emacs packages.
(and GNU ELPA is an ELPA archive hosted at elpa.gnu.org).

The "ELPA" is wrote above refers to a Git repository, presumably to the
Git repository from which the code of the GNU ELPA packages is taken.
So I'd recommend you write it as `elpa.git`.


        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18  7:03               ` Yuan Fu
  2021-08-18 13:25                 ` Stefan Monnier
@ 2021-08-18 13:31                 ` Stefan Monnier
  2021-08-18 14:26                   ` Kévin Le Gouguec
  1 sibling, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2021-08-18 13:31 UTC (permalink / raw)
  To: Yuan Fu; +Cc: Bozhidar Batsov, Emacs Devel

> Tags are not automatically pushed, so if you don’t explicitly push tags to
> ELPA[1], ELPA shouldn’t include tags in your upstream repo.

Yet, elpa.git does include the following tags:

    0.10
    0.11
    0.2
    0.4
    0.5
    0.6
    0.7
    0.8
    0.9
    1.0
    1.0.0
    1.1.0
    1.2
    1.2.0
    1.3
    1.3.0
    chess.el/2.0.4
    hyperbole-6.0.2
    hyperbole-7.0.0
    hyperbole-7.0.1
    hyperbole-7.0.2

Not sure where they come from.
FWIW, `nongnu.git` doesn't have any tags currently.


        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 13:31                 ` Stefan Monnier
@ 2021-08-18 14:26                   ` Kévin Le Gouguec
  2021-08-18 14:33                     ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Kévin Le Gouguec @ 2021-08-18 14:26 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Yuan Fu, Bozhidar Batsov, Emacs Devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Not sure where they come from.

FWIW, this can be examined with Git, e.g.:

$ git branch --remote --contains 0.10
  origin/externals/eglot
$ git branch --remote --contains 1.3.0
  origin/externals/disk-usage



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 14:26                   ` Kévin Le Gouguec
@ 2021-08-18 14:33                     ` Stefan Monnier
  2021-08-18 15:52                       ` Eric Abrahamsen
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2021-08-18 14:33 UTC (permalink / raw)
  To: Kévin Le Gouguec; +Cc: Yuan Fu, Bozhidar Batsov, Emacs Devel

Kévin Le Gouguec [2021-08-18 16:26:33] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Not sure where they come from.
>
> FWIW, this can be examined with Git, e.g.:
>
> $ git branch --remote --contains 0.10
>   origin/externals/eglot
> $ git branch --remote --contains 1.3.0
>   origin/externals/disk-usage

Thanks, but by "where" I meant "which kind of operations".
IOW, how did they end up there?


        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 14:33                     ` Stefan Monnier
@ 2021-08-18 15:52                       ` Eric Abrahamsen
  2021-08-18 16:56                         ` Eric Abrahamsen
  2021-08-18 19:43                         ` Kévin Le Gouguec
  0 siblings, 2 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-18 15:52 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Yuan Fu, Emacs Devel, Bozhidar Batsov, Kévin Le Gouguec

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Kévin Le Gouguec [2021-08-18 16:26:33] wrote:
>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> Not sure where they come from.
>>
>> FWIW, this can be examined with Git, e.g.:
>>
>> $ git branch --remote --contains 0.10
>>   origin/externals/eglot
>> $ git branch --remote --contains 1.3.0
>>   origin/externals/disk-usage
>
> Thanks, but by "where" I meant "which kind of operations".
> IOW, how did they end up there?

Developers of those packages would have had to explicitly push them to
elpa.git.



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 15:52                       ` Eric Abrahamsen
@ 2021-08-18 16:56                         ` Eric Abrahamsen
  2021-08-18 19:43                         ` Kévin Le Gouguec
  1 sibling, 0 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-18 16:56 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Yuan Fu, Kévin Le Gouguec, Bozhidar Batsov, Emacs Devel

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

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>> Kévin Le Gouguec [2021-08-18 16:26:33] wrote:
>>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>>> Not sure where they come from.
>>>
>>> FWIW, this can be examined with Git, e.g.:
>>>
>>> $ git branch --remote --contains 0.10
>>>   origin/externals/eglot
>>> $ git branch --remote --contains 1.3.0
>>>   origin/externals/disk-usage
>>
>> Thanks, but by "where" I meant "which kind of operations".
>> IOW, how did they end up there?
>
> Developers of those packages would have had to explicitly push them to
> elpa.git.

How does this look?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: elpa-mention-tags.diff --]
[-- Type: text/x-patch, Size: 862 bytes --]

diff --git a/README b/README
index 8a549a6e71..4377f6a43b 100644
--- a/README
+++ b/README
@@ -212,6 +212,17 @@ if it is not your own code, make sure the author has signed the relevant
 copyright papers (for non-trivial contributions), and indicate the author
 correctly in the commit.
 
+** Tags
+
+Git tags should not be pushed to the =elpa.git= repository.  Git tags
+are global throughout a repository, and it is highly likely that tags
+in one package will clash with those in others.  Furthermore, tags
+play no functional role in ELPA repositories.
+
+Developers are welcome to continue using tags locally: so long as they
+are not pushed to the public repository, no conflicts will occur.  Git
+will not push tags without being explicitly told to do so.
+
 ** External branches
 
 A copy of the code of every package is kept in the =elpa.git= repository

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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 15:52                       ` Eric Abrahamsen
  2021-08-18 16:56                         ` Eric Abrahamsen
@ 2021-08-18 19:43                         ` Kévin Le Gouguec
  2021-08-18 23:07                           ` Stefan Monnier
  2021-08-19 20:54                           ` Jonas Bernoulli
  1 sibling, 2 replies; 27+ messages in thread
From: Kévin Le Gouguec @ 2021-08-18 19:43 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: Yuan Fu, Bozhidar Batsov, Stefan Monnier, Emacs Devel

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

>> Thanks, but by "where" I meant "which kind of operations".
>> IOW, how did they end up there?
>
> Developers of those packages would have had to explicitly push them to
> elpa.git.

Mmm, IIUC any of "git clone", "git fetch" and "git pull" can fetch tags
if not used with "--no-tags".  A quick look at elpa-admin.el shows some
occurrences of "pull" without "--no-tags", but I haven't looked hard
enough at the GNU ELPA machinery to figure if those could have fetched
the tags we observe.

Apologies for the noise if not.



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 19:43                         ` Kévin Le Gouguec
@ 2021-08-18 23:07                           ` Stefan Monnier
  2021-08-19 20:54                           ` Jonas Bernoulli
  1 sibling, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2021-08-18 23:07 UTC (permalink / raw)
  To: Kévin Le Gouguec
  Cc: Eric Abrahamsen, Yuan Fu, Bozhidar Batsov, Emacs Devel

Kévin Le Gouguec [2021-08-18 21:43:32] wrote:
> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>>> Thanks, but by "where" I meant "which kind of operations".
>>> IOW, how did they end up there?
>> Developers of those packages would have had to explicitly push them to
>> elpa.git.
> Mmm, IIUC any of "git clone", "git fetch" and "git pull" can fetch tags
> if not used with "--no-tags".  A quick look at elpa-admin.el shows some
> occurrences of "pull" without "--no-tags", but I haven't looked hard
> enough at the GNU ELPA machinery to figure if those could have fetched
> the tags we observe.

But elpa-admin.el is not run inside `elpa.git`, only inside clones
of it.  So yes, we can get tags within clones of `elpa.git` but for them
to reach `elpa.git` itself (the repository on git.sv.gnu.org) someone
needs to push them there, AFAIK.


        Stefan




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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-18 19:43                         ` Kévin Le Gouguec
  2021-08-18 23:07                           ` Stefan Monnier
@ 2021-08-19 20:54                           ` Jonas Bernoulli
  2021-08-19 23:38                             ` Eric Abrahamsen
  2021-08-19 23:44                             ` Eric Abrahamsen
  1 sibling, 2 replies; 27+ messages in thread
From: Jonas Bernoulli @ 2021-08-19 20:54 UTC (permalink / raw)
  To: Kévin Le Gouguec, Eric Abrahamsen
  Cc: Yuan Fu, Bozhidar Batsov, Stefan Monnier, Emacs Devel

Kévin Le Gouguec <kevin.legouguec@gmail.com> writes:

Let's document that tags should not be pushed; both why and how,
as described elsewhere in this thread.

But I expect that tags will still occasionally be pushed anyway.
When that happens we should figure out what upstream repository
they came from, educate the respective maintainer about how to
avoid pushing them again, and then delete them.

But [because it is going to keep happening] this is more important:

> Mmm, IIUC any of "git clone", "git fetch" and "git pull" can fetch tags
> if not used with "--no-tags".  A quick look at elpa-admin.el shows some
> occurrences of "pull" without "--no-tags", but I haven't looked hard
> enough at the GNU ELPA machinery to figure if those could have fetched
> the tags we observe.

Every occurrence of "git clone ..." and "git remote add ..." in the
documentation should be updated to mention that "--no-tags" has to be
used to prevent tags from being pulled.  We should also document how to
recover if the tags have already been pulled.  And finally we should add
an annotated tag named something like "use--no-tags" and use its
annotation to repeat the documentation about adding "--no-tags" and how
to clean up.

     Jonas



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-19 20:54                           ` Jonas Bernoulli
@ 2021-08-19 23:38                             ` Eric Abrahamsen
  2021-08-20  7:11                               ` Andreas Schwab
  2021-08-19 23:44                             ` Eric Abrahamsen
  1 sibling, 1 reply; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-19 23:38 UTC (permalink / raw)
  To: Jonas Bernoulli
  Cc: Yuan Fu, Emacs Devel, Bozhidar Batsov, Stefan Monnier,
	Kévin Le Gouguec

Jonas Bernoulli <jonas@bernoul.li> writes:

> Kévin Le Gouguec <kevin.legouguec@gmail.com> writes:
>
> Let's document that tags should not be pushed; both why and how,
> as described elsewhere in this thread.

I sent an in a README patch a couple of messages up-thread.

> But I expect that tags will still occasionally be pushed anyway.
> When that happens we should figure out what upstream repository
> they came from, educate the respective maintainer about how to
> avoid pushing them again, and then delete them.

This looks fairly simple. Tags can be deleted locally with:

git tag --delete <tagname>

and deleted from the upstream repo with:

git push origin :refs/tags/<tagname>

Apparently pushing an empty :tagname does the trick; thank you git for
more unintuitive syntax. The "refs/tags" is safer since tags and
branches have separate namespaces and we might hit a branch by accident.

> But [because it is going to keep happening] this is more important:
>
>> Mmm, IIUC any of "git clone", "git fetch" and "git pull" can fetch tags
>> if not used with "--no-tags".  A quick look at elpa-admin.el shows some
>> occurrences of "pull" without "--no-tags", but I haven't looked hard
>> enough at the GNU ELPA machinery to figure if those could have fetched
>> the tags we observe.
>
> Every occurrence of "git clone ..." and "git remote add ..." in the
> documentation should be updated to mention that "--no-tags" has to be
> used to prevent tags from being pulled.  We should also document how to
> recover if the tags have already been pulled.  And finally we should add
> an annotated tag named something like "use--no-tags" and use its
> annotation to repeat the documentation about adding "--no-tags" and how
> to clean up.
>
>      Jonas



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-19 20:54                           ` Jonas Bernoulli
  2021-08-19 23:38                             ` Eric Abrahamsen
@ 2021-08-19 23:44                             ` Eric Abrahamsen
  1 sibling, 0 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-19 23:44 UTC (permalink / raw)
  To: Jonas Bernoulli
  Cc: Yuan Fu, Emacs Devel, Bozhidar Batsov, Stefan Monnier,
	Kévin Le Gouguec

Jonas Bernoulli <jonas@bernoul.li> writes:

> Kévin Le Gouguec <kevin.legouguec@gmail.com> writes:
>
> Let's document that tags should not be pushed; both why and how,
> as described elsewhere in this thread.
>
> But I expect that tags will still occasionally be pushed anyway.
> When that happens we should figure out what upstream repository
> they came from, educate the respective maintainer about how to
> avoid pushing them again, and then delete them.
>
> But [because it is going to keep happening] this is more important:
>
>> Mmm, IIUC any of "git clone", "git fetch" and "git pull" can fetch tags
>> if not used with "--no-tags".  A quick look at elpa-admin.el shows some
>> occurrences of "pull" without "--no-tags", but I haven't looked hard
>> enough at the GNU ELPA machinery to figure if those could have fetched
>> the tags we observe.
>
> Every occurrence of "git clone ..." and "git remote add ..." in the
> documentation should be updated to mention that "--no-tags" has to be
> used to prevent tags from being pulled.  We should also document how to
> recover if the tags have already been pulled.  And finally we should add
> an annotated tag named something like "use--no-tags" and use its
> annotation to repeat the documentation about adding "--no-tags" and how
> to clean up.

I'll bet we can write a hook to reject tags. The "update.sample" hook
example in .git/hooks looks like it has most of what we'd need.



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-19 23:38                             ` Eric Abrahamsen
@ 2021-08-20  7:11                               ` Andreas Schwab
  2021-08-20 15:59                                 ` Eric Abrahamsen
  0 siblings, 1 reply; 27+ messages in thread
From: Andreas Schwab @ 2021-08-20  7:11 UTC (permalink / raw)
  To: Eric Abrahamsen
  Cc: Yuan Fu, Jonas Bernoulli, Bozhidar Batsov, Emacs Devel,
	Stefan Monnier, Kévin Le Gouguec

On Aug 19 2021, Eric Abrahamsen wrote:

> and deleted from the upstream repo with:

git push --delete origin tag <tagname>

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."



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

* Re: Don't add tags to ELPA packages -- documentation?
  2021-08-20  7:11                               ` Andreas Schwab
@ 2021-08-20 15:59                                 ` Eric Abrahamsen
  0 siblings, 0 replies; 27+ messages in thread
From: Eric Abrahamsen @ 2021-08-20 15:59 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Yuan Fu, Jonas Bernoulli, Bozhidar Batsov, Emacs Devel,
	Stefan Monnier, Kévin Le Gouguec

Andreas Schwab <schwab@linux-m68k.org> writes:

> On Aug 19 2021, Eric Abrahamsen wrote:
>
>> and deleted from the upstream repo with:
>
> git push --delete origin tag <tagname>

That's much more reasonable.



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

end of thread, other threads:[~2021-08-20 15:59 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-17 21:10 Don't add tags to ELPA packages -- documentation? Eric Abrahamsen
2021-08-17 21:24 ` Stefan Monnier
2021-08-17 21:51   ` Eric Abrahamsen
2021-08-17 22:01     ` Adam Porter
2021-08-17 22:51       ` Eric Abrahamsen
2021-08-17 23:04     ` Stefan Monnier
2021-08-17 23:15     ` Phil Sainty
2021-08-17 23:28       ` Phil Sainty
2021-08-17 23:36         ` Eric Abrahamsen
2021-08-18  2:30           ` Phil Sainty
2021-08-18  6:41             ` Bozhidar Batsov
2021-08-18  7:03               ` Yuan Fu
2021-08-18 13:25                 ` Stefan Monnier
2021-08-18 13:31                 ` Stefan Monnier
2021-08-18 14:26                   ` Kévin Le Gouguec
2021-08-18 14:33                     ` Stefan Monnier
2021-08-18 15:52                       ` Eric Abrahamsen
2021-08-18 16:56                         ` Eric Abrahamsen
2021-08-18 19:43                         ` Kévin Le Gouguec
2021-08-18 23:07                           ` Stefan Monnier
2021-08-19 20:54                           ` Jonas Bernoulli
2021-08-19 23:38                             ` Eric Abrahamsen
2021-08-20  7:11                               ` Andreas Schwab
2021-08-20 15:59                                 ` Eric Abrahamsen
2021-08-19 23:44                             ` Eric Abrahamsen
2021-08-18  7:21               ` Phil Sainty
2021-08-18  8:15                 ` Bozhidar Batsov

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).