public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Brian Inglis <Brian.Inglis@Shaw.ca>
To: cygwin-apps@cygwin.com
Subject: Re: Version string of package
Date: Fri, 13 Jan 2023 12:11:40 -0700	[thread overview]
Message-ID: <39045b05-6a82-6fa9-37c4-82d725af2b02@Shaw.ca> (raw)
In-Reply-To: <20230113232142.fe8ce6fef4f83d397fd2b23b@nifty.ne.jp>

On 2023-01-13 07:21, Takashi Yano via Cygwin-apps wrote:
> On Fri, 13 Jan 2023 13:22:44 +0000
> Jon Turney wrote:
>> On 13/01/2023 11:52, Takashi Yano via Cygwin-apps wrote:
>>> Hi,
>>>
>>> Is it allowed to include '-' in version string (e.g. '20230113-stable')?
>>> I'm asking because mksetupini warns:
>>>
>>> mksetupini: file 'xxx.tar.xz' in package yyy contains '-' in version
>>>
>>> though it works as expected.
>>
>> Short answer:
>>
>> It's a bug that this isn't a fatal error.  Please don't do it!
>>
>> Long answer:
>>
>> Package naming in Cygwin has a long and tangled history. This isn't
>> explicitly precluded by the rules at [1], but probably should be.
>>
>> (Fedora, which we generally follow for packaging rules, now doesn't
>> allow '-' in versions, just digits, letters and '.')
>>
>> We need to be able to unambiguously separate a NVR string into the
>> package name, version and release.
>>
>> Underscores are allowed in package names, so the simple approach of
>> splitting on the rightmost two hyphens would work, if we don't allow
>> exceptions like this.
>>
>> (We can get it right in this case, because we have a piece of extra
>> information: the directory the package is in, which happens to always be
>> named N in the current scheme of things, but we might want to change that)
>>
>> [1] https://cygwin.com/packaging-package-files.html
>>
>>
>> In any case, you should be suspicious of using upstream version names of
>> this form.  They may expect the 'stable' string to sort against other
>> strings based on meaning, rather than alphabetically (e.g.
>> '20230113-testing' is considered greater, which is probably not what's
>> wanted)
> 
> Thanks for the answer.
> 
> I'll use version 20230113 with release 1.g<git hash tag>
> e.g. package-name-20230113-1.g123456789abc like
> cygwin test package.

We typically use *stable* commit dates of unambiguous commits or incremental 
versions rather than hashes even when packages are pulled from repos which do 
not provide releases e.g. ca-certificates, libhsts, publicsuffix-list.

We also have packages where the versions have been frozen for historical reasons 
and new versions have release numbers like 1.yyyymmdd, 2.YYYYMMDD, etc.

Status like stable is assumed of current releases, as test releases can be 
promoted to current stable release using 'untest'.

Other suffixes normally use release 0 and imply never being promoted to current 
from pre-release candidates, like Cygwin snapshots and interim test releases.

You can keep the hash info around in your build or cygport but it does not help 
users, as you are already using a date version and a release, so you might as 
well drop it from the package.

We can handle numbering issues using cygport SRC_URI, SRC_DIR, 
CYGPORT_USE_UNSTABLE_API source hooks, and src_... script overrides.

-- 
Take care. Thanks, Brian Inglis			Calgary, Alberta, Canada

La perfection est atteinte			Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter	not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer	but when there is no more to cut
			-- Antoine de Saint-Exupéry

  reply	other threads:[~2023-01-13 19:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-13 11:52 Takashi Yano
2023-01-13 13:22 ` Jon Turney
2023-01-13 14:21   ` Takashi Yano
2023-01-13 19:11     ` Brian Inglis [this message]
2023-01-17 23:59   ` Adam Dinwoodie
2023-01-18 16:17     ` Jon Turney

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

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

  git send-email \
    --in-reply-to=39045b05-6a82-6fa9-37c4-82d725af2b02@Shaw.ca \
    --to=brian.inglis@shaw.ca \
    --cc=cygwin-apps@cygwin.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.
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).