Re: ncurses version

2024-01-31 Thread Brian Inglis via Cygwin-apps

On 2024-01-31 16:05, Jon Turney via Cygwin-apps wrote:

On 31/01/2024 20:45, Brian Inglis via Cygwin-apps wrote:

On 2024-01-31 10:36, ASSI via Cygwin wrote:

Jon Turney via Cygwin writes:

If upstream really is making multiple releases called '6.4', which
we're supposed to distinguish by some other means, then there aren't
really any good answers...



There's only one official 6.4 release, but just about everyone packages
one of the roughly weekly snapshots inbetween releases (depending on
where you are looking they are also called beta versions), which are
named 6.4-mmdd upstream.  We can't have a "-" in the version number,
hence the suggestion to replace it with a "+".


[moving discussion to -apps]

Upstream developer is Thomas Dickey at invisible-island.net so no git.

My only concern is if 6.4+20240203-1 !> 6.4-20240120 as strvercmp test beds 
disagree, presumably about the effect of the delimiter, possibly because the + 
may be treated similarly to a prefix for an RC preceding the 6.4 release?


For guidance I have looked at:

 https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

which states that ~ prefixes pre-stable "snapshot" releases and ^ prefixes 
post-stable "snapshot" releases where . or nothing prefixes upstream bugfix or 
patch level releases, so perhaps we should just use version suffix .mmdd?


So, this is notionally defined here [1].

The important point there "Non-alphanumeric separators for these contiguous 
chunks are ignored" (after identifying chunks)


So '1.2.3' '1+2+3' and '1_2_3' are all equal.

[1] https://cygwin.com/packaging-package-files.html#naming

Practically, this is controlled by the version comparison which libsolv does, 
which I am expecting to also work like that.


(Perhaps naively. All the details are paged-out at the moment. I think I 
remember there's a flag which you have to give it to turn on the special 
behaviour of tilde and caret, which in any case aren't currently in the 
character set permitted for a cygwin package name)


I have downloaded and locally installed Fedora rpmdevtools package but Cygwin 
python rpm module seems to lack labelCompare():


$ rpmdev-vercmp 6.4+20240203-1 6.4-20240120
/usr/local/lib/python3.9/site-packages/rpm.py:15: UserWarning: The RPM Python 
bindings are not currently available via PyPI.


This can't be cygwin's python rpm module if it's in /usr/local/, I think?


Thanks for the hint Jon, maybe a pip dependency install needs removed, now 
works:

$ rm -f /usr/local/lib/python3.9/site-packages/rpm.py
removed '/usr/local/lib/python3.9/site-packages/rpm.py'
$ rm -rf /usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/INSTALLER'
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/LICENSE'
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/METADATA'
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/RECORD'
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/REQUESTED'
removed '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/WHEEL'
removed directory '/usr/local/lib/python3.9/site-packages/rpm-0.0.2.dist-info/'
$ rpmdev-vercmp 6.4+20240203-1 6.4-20240120
6.4+20240203-1 > 6.4-20240120


If you have calm installed, you can use:


$ calm-tool sort-versions 1.2.1 1.2.3 1+2+3 1_2_3 1.2.4
1.2.1
1.2.3 1+2+3 1_2_3
1.2.4


Thanks for that too, also works:

$ calm-tool sort-versions 6.4+20240203-1 6.4-20240120; echo
6.4-20240120
6.4+20240203-1


At this point it should be clear that 6.4+2024012 is greater than 6.4.

How are Cygwin pre-stable RC releases defined differently from post-stable 
snapshot releases and upstream patch releases?


Generally, I think that following [2], as linked from that, is a good idea. i.e.

for pre-release versions use R="0." followed by  something that's going to 
increase as prereleases do e.g. date or an incrementing ordinal and then a githash.


for post-releases you can increment R and add a similar identifier.

You can instead add things to V to indicate post-label snapshots, but there's 
there's a risk of coming unstuck unless the upstream versioning scheme is 
totally predicable (i.e. if you create 1.2+3 for a post-release fix to 1.2, and 
then upstream releases a 1.2a which you weren't expecting because they've never 
done it before, you're boned)


[2] https://fedoraproject.org/wiki/Package_Versioning_Examples


Saw that before and know from Debian there is a need for "epoch:" prefix there.

Made necessary changes, reran local and GH Scallywag builds, and uploaded 
unannounced test release, to check all works okay behind the scenes.

Will not push master until ready to make another stable release.

Will copy this approach going forward with other i-i.net and upstream packages 
with major.minor-date releases when updated.


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

La perfection est 

Re: ncurses version

2024-01-31 Thread Jon Turney via Cygwin-apps

On 31/01/2024 20:45, Brian Inglis via Cygwin-apps wrote:

On 2024-01-31 10:36, ASSI via Cygwin wrote:

Jon Turney via Cygwin writes:

If upstream really is making multiple releases called '6.4', which
we're supposed to distinguish by some other means, then there aren't
really any good answers...



There's only one official 6.4 release, but just about everyone packages
one of the roughly weekly snapshots inbetween releases (depending on
where you are looking they are also called beta versions), which are
named 6.4-mmdd upstream.  We can't have a "-" in the version number,
hence the suggestion to replace it with a "+".


[moving discussion to -apps]

Upstream developer is Thomas Dickey at invisible-island.net so no git.

My only concern is if 6.4+20240203-1 !> 6.4-20240120 as strvercmp test 
beds disagree, presumably about the effect of the delimiter, possibly 
because the + may be treated similarly to a prefix for an RC preceding 
the 6.4 release?


For guidance I have looked at:

 https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

which states that ~ prefixes pre-stable "snapshot" releases and ^ 
prefixes post-stable "snapshot" releases where . or nothing prefixes 
upstream bugfix or patch level releases, so perhaps we should just use 
version suffix .mmdd?


So, this is notionally defined here [1].

The important point there "Non-alphanumeric separators for these 
contiguous chunks are ignored" (after identifying chunks)


So '1.2.3' '1+2+3' and '1_2_3' are all equal.

[1] https://cygwin.com/packaging-package-files.html#naming

Practically, this is controlled by the version comparison which libsolv 
does, which I am expecting to also work like that.


(Perhaps naively. All the details are paged-out at the moment. I think I 
remember there's a flag which you have to give it to turn on the special 
behaviour of tilde and caret, which in any case aren't currently in the 
character set permitted for a cygwin package name)


I have downloaded and locally installed Fedora rpmdevtools package but 
Cygwin python rpm module seems to lack labelCompare():


$ rpmdev-vercmp 6.4+20240203-1 6.4-20240120
/usr/local/lib/python3.9/site-packages/rpm.py:15: UserWarning: The RPM 
Python bindings are not currently available via PyPI.


This can't be cygwin's python rpm module if it's in /usr/local/, I think?

If you have calm installed, you can use:


$ calm-tool sort-versions 1.2.1 1.2.3 1+2+3 1_2_3 1.2.4
1.2.1
1.2.3 1+2+3 1_2_3
1.2.4


At this point it should be clear that 6.4+2024012 is greater than 6.4.

How are Cygwin pre-stable RC releases defined differently from 
post-stable snapshot releases and upstream patch releases?


Generally, I think that following [2], as linked from that, is a good 
idea. i.e.


for pre-release versions use R="0." followed by  something that's going 
to increase as prereleases do e.g. date or an incrementing ordinal and 
then a githash.


for post-releases you can increment R and add a similar identifier.

You can instead add things to V to indicate post-label snapshots, but 
there's there's a risk of coming unstuck unless the upstream versioning 
scheme is totally predicable (i.e. if you create 1.2+3 for a 
post-release fix to 1.2, and then upstream releases a 1.2a which you 
weren't expecting because they've never done it before, you're boned)


[2] https://fedoraproject.org/wiki/Package_Versioning_Examples



Re: ncurses version (was: Tmux crashes on copy)

2024-01-31 Thread Brian Inglis via Cygwin-apps

On 2024-01-31 10:36, ASSI via Cygwin wrote:

Jon Turney via Cygwin writes:

If upstream really is making multiple releases called '6.4', which
we're supposed to distinguish by some other means, then there aren't
really any good answers...



There's only one official 6.4 release, but just about everyone packages
one of the roughly weekly snapshots inbetween releases (depending on
where you are looking they are also called beta versions), which are
named 6.4-mmdd upstream.  We can't have a "-" in the version number,
hence the suggestion to replace it with a "+".


[moving discussion to -apps]

Upstream developer is Thomas Dickey at invisible-island.net so no git.

My only concern is if 6.4+20240203-1 !> 6.4-20240120 as strvercmp test beds 
disagree, presumably about the effect of the delimiter, possibly because the + 
may be treated similarly to a prefix for an RC preceding the 6.4 release?


For guidance I have looked at:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

which states that ~ prefixes pre-stable "snapshot" releases and ^ prefixes 
post-stable "snapshot" releases where . or nothing prefixes upstream bugfix or 
patch level releases, so perhaps we should just use version suffix .mmdd?


I have downloaded and locally installed Fedora rpmdevtools package but Cygwin 
python rpm module seems to lack labelCompare():


$ rpmdev-vercmp 6.4+20240203-1 6.4-20240120
/usr/local/lib/python3.9/site-packages/rpm.py:15: UserWarning: The RPM Python 
bindings are not currently available via PyPI.


Please install them with your distro package manager (typically called
'python2-rpm' or 'python3-rpm'), and ensure that any virtual environments
needing the API are configured to be able to see the system site packages
directory.

  warnings.warn(warning_msg)
Traceback (most recent call last):
  File "/home/BWI/bin/rpmdev-vercmp", line 121, in 
main()
  File "/home/BWI/bin/rpmdev-vercmp", line 108, in main
rc = rpm.labelCompare((e1 or None, v1 or None, r1 or None),
AttributeError: module 'rpm' has no attribute 'labelCompare'

I also pip3 installed SAS SW rpm_vercmp which seems okay:

$ python3 -c 'import 
rpm_vercmp;print(rpm_vercmp.vercmp("6.4+20240203-1","6.4-20240120"))

'
1

and wrote a wrapper for shell script functions I found which agrees:

$ ~/src/fedora/rpm-ver.bash 6.4+20240203-1 6.4-20240120
0 6 4 20240203 1
0 6 4 20240120
6.4+20240203-1   6.4-20240120
0 6 4 20240203 1 0 6 4 20240120
sizes 5 4 max 5
20240203 != 20240120
8 ? 8
1

How are Cygwin pre-stable RC releases defined differently from post-stable 
snapshot releases and upstream patch releases?


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