cygwin-apps/calm.git
2 days agoUpdate tests main master
Jon Turney [Sat, 16 Aug 2025 13:26:32 +0000 (14:26 +0100)]
Update tests

Adjust date assigned to rpm-doc-999-1 package so it doesn't qualify as
'old enough to be converted to new style obsolete'

5 days agoAdd 'epoch' hint
Jon Turney [Mon, 27 Oct 2025 17:00:12 +0000 (17:00 +0000)]
Add 'epoch' hint

2 months agoDrop some no longer needed past_mistakes
Jon Turney [Fri, 15 Aug 2025 17:00:48 +0000 (18:00 +0100)]
Drop some no longer needed past_mistakes

2 months agoWind the obsolete package exipry threshold age forward
Jon Turney [Fri, 15 Aug 2025 13:16:13 +0000 (14:16 +0100)]
Wind the obsolete package exipry threshold age forward

Wind the obsolete package exipry threshold age forward to the value
being used in production.

3 months agoUse the 'good' version of pidlockfile
Jon Turney [Sat, 26 Jul 2025 12:57:04 +0000 (13:57 +0100)]
Use the 'good' version of pidlockfile

Use the improved version of pidlockfile, where locks are implicitly
released when the process is no longer running.

Otherwise we are prevented from starting just by the existence of the
lockfile, even if the previous process was terminated abnormally.

3 months agoLoiter before exiting on unhandled exception
Jon Turney [Thu, 24 Jul 2025 15:31:45 +0000 (16:31 +0100)]
Loiter before exiting on unhandled exception

3 months agoHandle replology versions for some more slotted packages
Jon Turney [Sat, 19 Jul 2025 13:22:34 +0000 (14:22 +0100)]
Handle replology versions for some more slotted packages

Also make sure we consider the newest version as a possibility, for
cases where we actually have a slot for that.

3 months agoGeneralize getting versions for slotted packages from repology
Jon Turney [Thu, 10 Jul 2025 15:21:11 +0000 (16:21 +0100)]
Generalize getting versions for slotted packages from repology

Add automake to the list of slotted packages.

(This also fixed the legacy package version being reported correctly,
rather than jsut the first character, as we didn't turn it into a list
when we added support for repology reporting multiple newest versions)

Fixes: 4ec728554663 ("Handle multiple 'newest' versions reported by repology")

3 months agoRecord repology project name, even if newest version isn't known
Jon Turney [Thu, 10 Jul 2025 12:29:21 +0000 (13:29 +0100)]
Record repology project name, even if newest version isn't known

Also record if newest version is unknown specifically because project is
noscheme, unique to cygwin, or unclassified by repology.

3 months agoActually mark the upload/deploy as errored if pre-authorization fails
Jon Turney [Wed, 9 Jul 2025 16:07:47 +0000 (17:07 +0100)]
Actually mark the upload/deploy as errored if pre-authorization fails

This ensures correct feedback to scallywag when a user attempts a deploy
which they are not authorized for.

Also, update tests appropriately.
Also, fix a typo noticed while investigating.

3 months agoOmit source packages from generated announce mail
Jon Turney [Wed, 9 Jul 2025 15:58:46 +0000 (16:58 +0100)]
Omit source packages from generated announce mail

https://cygwin.com/pipermail/cygwin-announce/2025-June/012393.html

Also, add 'ChangeLog' to the list of files checked for announce message.

4 months agoRemove old multiarch considerations
Jon Turney [Sun, 15 Jun 2025 20:32:30 +0000 (21:32 +0100)]
Remove old multiarch considerations

Remove old multiarch considerations, preparatory to adding them back
again, done right.

We only have x86_64 at the moment, this just makes everything more
complex.

In particular, this removes a few complex knots, where we struggle with
our data model being inside-out (arch contains packages, rather than
vice versa).

Also, update tests and test data appropriately.

Also, as a side-effect, this makes !ready files at any level in the
upload directory heirarchy work, rather than being limited to the
arch/release directory and below.

After this change, website search function will need updating to look in
noarch/ and src/ directories.

4 months agoHandle the existence of modules for test version in python rebuild report
Jon Turney [Mon, 9 Jun 2025 11:51:22 +0000 (12:51 +0100)]
Handle the existence of modules for test version in python rebuild report

Better handle the existence of modules for a higher, test version of
python in the python rebuild report.

4 months agoHandle multiple 'newest' versions reported by repology
Jon Turney [Thu, 5 Jun 2025 17:59:44 +0000 (18:59 +0100)]
Handle multiple 'newest' versions reported by repology

repology can now report multiple 'newest' versions, due to altver
schemes. Handle that better by employing a simple heuristic (equal
number of alphanumeric sequences) to find which one matches our version.

4 months agoGenerate a per-maintainer packages report
Jon Turney [Wed, 4 Jun 2025 15:53:27 +0000 (16:53 +0100)]
Generate a per-maintainer packages report

Refactor orphaned packages report so we can generate a per-maintainer
report as well.

4 months agoAdd repology link to package summary
Jon Turney [Wed, 4 Jun 2025 13:09:24 +0000 (14:09 +0100)]
Add repology link to package summary

4 months agoRecord repology project name as well as upstream version
Jon Turney [Wed, 4 Jun 2025 15:20:40 +0000 (16:20 +0100)]
Record repology project name as well as upstream version

4 months agoFix sorting maintainer report by number of packages
Jon Turney [Tue, 3 Jun 2025 12:30:51 +0000 (13:30 +0100)]
Fix sorting maintainer report by number of packages

Add a hint so sorting maintainer report by number of packages works
correctly.

4 months agoImprove maintainer last activity estimate
Jon Turney [Fri, 6 Jun 2025 12:23:49 +0000 (13:23 +0100)]
Improve maintainer last activity estimate

Ignore timestamp of co-maintained packages when estimating last date of
maintainer activity.  This helps the inactive mainainter tool not to be
so easily fooled by co-maintainership.

(This is still not perfect, but... well, eventually we'll be in a world
where we have ssh activity timestamps for all maintainers and don't have
to resort to guessing based on package timestamps)

5 months agoWind the inactive maintainer threshold forward a bit
Jon Turney [Mon, 2 Jun 2025 16:18:16 +0000 (17:18 +0100)]
Wind the inactive maintainer threshold forward a bit

Adjust the grammar slightly now we've worked through the ridiculously
old maintainer accounts.

Also, don't send the mail for maintainers with no packages

5 months agoAccommodate historic Cygwin READMEs with version in filename
Jon Turney [Sat, 31 May 2025 18:11:40 +0000 (19:11 +0100)]
Accommodate historic Cygwin READMEs with version in filename

Also, sort versions so highest gets extracted last
Also, downgrade a piece of logging to something more sensible
Also, rewrite document list inclusion fragment when forced

5 months agoActually do the "no current version" test before issuing the warning
Jon Turney [Sat, 31 May 2025 18:09:48 +0000 (19:09 +0100)]
Actually do the "no current version" test before issuing the warning

5 months agoExtract /usr/share/doc/Cygwin/ files
Jon Turney [Wed, 28 May 2025 16:39:03 +0000 (17:39 +0100)]
Extract /usr/share/doc/Cygwin/ files

Extract /usr/share/doc/Cygwin/ files, and write a includable HTML
fragment listing them all.

v2: Put extracted READMEs in a per package directory

This maintains the association between the README file and the package
name, and lets us handle README files which *aren't* named after the
package (e.g. cygserver.README in the cygwin package).

5 months agoOnly issue the 'no curr: version' warning at upload time
Jon Turney [Wed, 28 May 2025 12:40:35 +0000 (13:40 +0100)]
Only issue the 'no curr: version' warning at upload time

Not sure if this warning if very useful, since the #1 intervention I
have to make is configuring supression for it when it's expected.

Avoid that bit of work, by only issuing the warning at upload time.

7 months agoUpdate version to 20250329 20250329
Jon Turney [Sat, 29 Mar 2025 22:03:15 +0000 (22:03 +0000)]
Update version to 20250329

7 months agoFix untest for arch-tagged hint filenames
Jon Turney [Mon, 24 Mar 2025 19:33:09 +0000 (19:33 +0000)]
Fix untest for arch-tagged hint filenames

7 months agoAdjust timestamp of rpm-doc-999-1
Jon Turney [Tue, 25 Mar 2025 18:21:08 +0000 (18:21 +0000)]
Adjust timestamp of rpm-doc-999-1

This needs to be less than OBSOLETE_AGE_THRESHOLD_YEARS ago, otherwise
the package gets removed. (Maybe we need to switch tests around so it's
checking that instead?)

7 months agoAdd 'Takashi Yano' to trusted maintainers list
Jon Turney [Sun, 16 Mar 2025 18:19:55 +0000 (18:19 +0000)]
Add 'Takashi Yano' to trusted maintainers list

8 months agomkgitolite: Also allow push to 'main' branch
Jon Turney [Sat, 1 Mar 2025 17:00:33 +0000 (17:00 +0000)]
mkgitolite: Also allow push to 'main' branch

'master' and 'main' should be the same via a symbolic reference, so it
shouldn't matter which is used.

8 months agomail-inactive-maintainers: Improve grammar
Jon Turney [Sat, 1 Mar 2025 16:59:19 +0000 (16:59 +0000)]
mail-inactive-maintainers: Improve grammar

Also wind threshold forwards a bit
Also improve debug output

8 months agoSet Maintainer._homedirs earlier
Jon Turney [Sun, 16 Feb 2025 15:47:36 +0000 (15:47 +0000)]
Set Maintainer._homedirs earlier

This is needed for last_seen values to be retrieved correctly on the
first call to maintainer_list()

8 months agoUpdate package summary package when hints change as well
Jon Turney [Sat, 1 Feb 2025 18:05:08 +0000 (18:05 +0000)]
Update package summary package when hints change as well

8 months agoCI: Drop testing on python 3.7
Jon Turney [Wed, 18 Dec 2024 17:20:46 +0000 (17:20 +0000)]
CI: Drop testing on python 3.7

Drop testing on python 3.7, not available on ubuntu-latest.

8 months agoImprove reliability of detecting upload available.
Jon Turney [Wed, 18 Dec 2024 17:09:08 +0000 (17:09 +0000)]
Improve reliability of detecting upload available.

Detecting a !ready file being placed into the upload directory is
problematic, due to possible races in setting watches on a just created
directory.

So instead, we just watch for a file touched when the sftp session ends.

This means we more reliably detect when a !ready file has been uploaded,
at the cost of doing extra scans (in the probably rare case) when a sftp
session hasn't uploaded a !ready file.

8 months agomkgitolite: Define a group for all packages
Jon Turney [Sun, 17 Mar 2024 13:44:04 +0000 (13:44 +0000)]
mkgitolite: Define a group for all packages

Define a group of all package repositories, rather than just using @all,
so gitolite can be used to control access to other cygwin repositories
as well.

Also define a per-repo post-recieve hook to perform package builds.

Also rearrange things so comments in giolite configuration file
consistently preceed the what they are commenting on.

8 months agoHandle transient ConnectionRefusedError from repology
Jon Turney [Sun, 21 Jul 2024 11:24:18 +0000 (12:24 +0100)]
Handle transient ConnectionRefusedError from repology

Also: use a timeout on urlopen(), so we don't pause indefinitely if the
far end drops the connection.

Also: reuse the last successfully fetched data if fetching fails.

v2:
timeout on urlopen(), not Request()

15 months agoAlso rate-limit invidual repology API calls
Jon Turney [Thu, 11 Jul 2024 17:40:30 +0000 (18:40 +0100)]
Also rate-limit invidual repology API calls

Also rate-limit invidual repology API calls, so we do not exceed
repology's rate-limit instantaneously, as well as on average...

15 months agoHandle errors from repology API slightly better
Jon Turney [Thu, 11 Jul 2024 15:07:21 +0000 (16:07 +0100)]
Handle errors from repology API slightly better

16 months agoFix mail intactive maintainers tool
Jon Turney [Fri, 21 Jun 2024 14:28:12 +0000 (15:28 +0100)]
Fix mail intactive maintainers tool

Also a few tweaks to text

16 months agoWind the obsolete package exipry threshold age forward
Jon Turney [Tue, 18 Jun 2024 14:13:41 +0000 (15:13 +0100)]
Wind the obsolete package exipry threshold age forward

Wind the obsolete package exipry threshold age forward, and update tests
appropriately.

16 months agoImprove mail inactive maintainers tool
Jon Turney [Sun, 2 Jun 2024 16:37:11 +0000 (17:37 +0100)]
Improve mail inactive maintainers tool

17 months agoAdd Brian Inglis to NMU maintainers list
Jon Turney [Sun, 2 Jun 2024 13:35:59 +0000 (14:35 +0100)]
Add Brian Inglis to NMU maintainers list

17 months agoAdd a tool for mailing long-inactive maintainers
Jon Turney [Fri, 31 May 2024 13:39:55 +0000 (14:39 +0100)]
Add a tool for mailing long-inactive maintainers

17 months agoProduce a report to help identify long-inactive maintainers
Jon Turney [Mon, 27 May 2024 14:19:00 +0000 (15:19 +0100)]
Produce a report to help identify long-inactive maintainers

17 months agoAlso allow remembered, synthetic obsoletes: in valid_requires
Jon Turney [Sat, 4 May 2024 16:36:20 +0000 (17:36 +0100)]
Also allow remembered, synthetic obsoletes: in valid_requires

17 months agoWind the obsolete package exipry threshold age forward
Jon Turney [Sat, 4 May 2024 15:28:17 +0000 (16:28 +0100)]
Wind the obsolete package exipry threshold age forward

18 months agoInclude arch into package summary versions table
Jon Turney [Thu, 2 May 2024 17:41:53 +0000 (18:41 +0100)]
Include arch into package summary versions table

18 months agoSimplify the way arch_re is made
Jon Turney [Thu, 2 May 2024 12:38:56 +0000 (13:38 +0100)]
Simplify the way arch_re is made

(There's actually a thinko in the previous implementation, as it doesn't
add the '-' in the right place if the ARCHES list has more than one
element.)

18 months agoImprove fix-requires-by-linkage tool
Jon Turney [Wed, 1 May 2024 18:23:56 +0000 (19:23 +0100)]
Improve fix-requires-by-linkage tool

* allow to only consider packages which already have some dependency
* also consider loadable modules built with .so extension

18 months agoInclude obsoletes: in the set of valid things to depends: on
Jon Turney [Sun, 28 Apr 2024 20:20:52 +0000 (21:20 +0100)]
Include obsoletes: in the set of valid things to depends: on

It's OK to depends: on something which only exists as an obsoletes: on
some package, after the original package providing it has been removed.

18 months agoClarify missing obsoletes reminder
Jon Turney [Wed, 24 Apr 2024 12:20:39 +0000 (13:20 +0100)]
Clarify missing obsoletes reminder

Make it clearer that if calm has to provide missing obsoletes, that is a
packaging defect.

18 months agoDon't retain obsolete packages
Jon Turney [Sun, 19 Jun 2022 12:11:44 +0000 (13:11 +0100)]
Don't retain obsolete packages

Don't retain obsolete packages over a certain age threshold (when they
are effectively just adding an obsolete: to another package).

This is safe, as commit 17dc61e9 (persisting missing_obsoletes) ensures
that if the obsoletion was old-style (and thus only recorded in the
obsoleted package, with the new-style obsoletes: hint in the obsoleteing
package being synthesized by commit eca3a88d), the fact of that
obsoletion isn't forgotten once the obsolete package itself is removed.

18 months agoMisspellings re-uploaded since last fixed
Jon Turney [Wed, 23 Feb 2022 23:39:23 +0000 (23:39 +0000)]
Misspellings re-uploaded since last fixed

18 months agoAdjust log-level of some debug output
Jon Turney [Tue, 23 Apr 2024 19:16:08 +0000 (20:16 +0100)]
Adjust log-level of some debug output

18 months agoBe a bit more aggressive about expiring old soversions
Jon Turney [Wed, 17 Apr 2024 22:08:31 +0000 (23:08 +0100)]
Be a bit more aggressive about expiring old soversions

Allow the source package responsible for the old soversion to be
completely expired if it wouldn't normally be kept, and all of it's
install packages have no external rdepends.

18 months agoDrop 'noretain' hint
Jon Turney [Wed, 17 Apr 2024 13:19:57 +0000 (14:19 +0100)]
Drop 'noretain' hint

This was pretty much useless, even more so now we have the 'vault'
command to do the same thing.

This effectively reverts commit aec1dcf7.

18 months agoIgnore sighup when daemonized
Jon Turney [Mon, 22 Apr 2024 18:14:18 +0000 (19:14 +0100)]
Ignore sighup when daemonized

It seems like systemd sends this as well as SIGTERM, so make sure to
ignore it so we shut down cleanly.

18 months agoDon't update setup.ini if we can't sign it
Jon Turney [Sat, 17 Feb 2024 19:26:03 +0000 (19:26 +0000)]
Don't update setup.ini if we can't sign it

Check with gpg-agent if the signing key(s) are available, and don't
update setup.ini if we can't sign it.

Also, since we want to do some logging about keygrips before we
daemonize, move logging_setup earlier, and don't close the file
descriptors it opens when we darmonize.

18 months agoAdd a test of upload auth failure
Jon Turney [Wed, 17 Apr 2024 16:16:58 +0000 (17:16 +0100)]
Add a test of upload auth failure

18 months agoAdd the ability to ingest arch-tagged package filenames
Jon Turney [Thu, 11 Apr 2024 23:02:12 +0000 (00:02 +0100)]
Add the ability to ingest arch-tagged package filenames

Change to deriving the name of the listing file from package name and
version, rather than from the tar archive filename, because that would
include the arch tag.

That exposes an interesting anomaly: We are ignoring any version:
override when generating the listing filename. Since it's taken into
account where the link is made to that file on the package summary page,
that seems like a bug which this change accidentally fixes.

Adjust the test data to reflect this fix.

18 months agoSeparate collect and read package files steps
Jon Turney [Fri, 16 Sep 2022 15:38:33 +0000 (16:38 +0100)]
Separate collect and read package files steps

This is necessary when different versions of a src package might exist
in both arch/ and src/ paths.

Update test data for change to Package() repr, as we no longer have
pkgpath, just then package name

This is preparatory work for allowing a couple of things: putting new
source packages in src/ (without moving the existing ones under arch/),
re-structuring the data model so that arch is inside package, rather
than containing a collection of them.

This improves package authorization so it's possible for a package can
replace parts of another package (without needing rearrangement of the
package locations), by requiring authorization for *all* paths at which
a package exists.

Change to using a class rather than named tuple to hold scan results, so
it can be mutable in uploads.auth_check()

Also: drop no longer needed use of a defaultdict for holding packages in
uploads.scan()

18 months agoFix typo
Jon Turney [Wed, 17 Apr 2024 13:18:10 +0000 (14:18 +0100)]
Fix typo

18 months agoDrop age threshold for 'upgrade old-style obsoletes'
Jon Turney [Thu, 11 Apr 2024 15:10:26 +0000 (16:10 +0100)]
Drop age threshold for 'upgrade old-style obsoletes'

18 months agoMake formatting of 'conflicts:' lines in setup.ini consistent
Jon Turney [Fri, 12 Apr 2024 13:00:38 +0000 (14:00 +0100)]
Make formatting of 'conflicts:' lines in setup.ini consistent

Make formatting of 'conflicts:' lines in setup.ini consistent with
everything else.

18 months agoUtility function to drop version constraints from a package list
Jon Turney [Thu, 11 Apr 2024 15:05:17 +0000 (16:05 +0100)]
Utility function to drop version constraints from a package list

Factor out "strip out version constraints from a package list" into a
utility function.

18 months agoAdd some more old-style obsoletion upgrade information
Jon Turney [Tue, 9 Apr 2024 20:16:58 +0000 (21:16 +0100)]
Add some more old-style obsoletion upgrade information

These packages weren't being noticed before as being "obsolete, but no
replacement" due to the way split() can produce a list containing an
empty string, rather than an empty list.

18 months agoConvert package lists in hints to actual lists
Jon Turney [Tue, 9 Apr 2024 18:43:08 +0000 (19:43 +0100)]
Convert package lists in hints to actual lists

Convert package lists in hints to actual lists in one place, rather than
doing it every time we need to use the value.

This fixes the bug that build-requires wasn't written to JSON as a list.

Update test data appropriately.

Future work: Factor out "strip out version constraints from a package
list" into a utility function.

18 months agoAdd repr for RepoPath objects to aid debugging
Jon Turney [Mon, 8 Apr 2024 15:34:04 +0000 (16:34 +0100)]
Add repr for RepoPath objects to aid debugging

18 months agoFix a bug in 'remove obsoleting package from depends of package it obsoletes'
Jon Turney [Tue, 9 Apr 2024 22:35:06 +0000 (23:35 +0100)]
Fix a bug in 'remove obsoleting package from depends of package it obsoletes'

Fix a bug in 'remove obsoleting package from depends of package it
obsoletes' code.  This wasn't applying correctly if the dependency
wasn't the first one, and left extraneous whitespace when it was.

18 months agoAdd dependencies etc. to JSON output
Jon Turney [Sun, 7 Apr 2024 15:45:39 +0000 (16:45 +0100)]
Add dependencies etc. to JSON output

18 months agoProduce a subreport for each solib
Jon Turney [Sat, 6 Apr 2024 16:19:48 +0000 (17:19 +0100)]
Produce a subreport for each solib

Initially I wanted to put this information directly into the solib
report, but some sort of disclosure widget which spans the whole table
width is hard to do in just HTML.

18 months agoMake fix-requires-by-linkage quieter
Jon Turney [Sat, 6 Apr 2024 16:17:41 +0000 (17:17 +0100)]
Make fix-requires-by-linkage quieter

19 months agoFix package name checking in fix-requires-by-path
Jon Turney [Tue, 2 Apr 2024 15:05:29 +0000 (16:05 +0100)]
Fix package name checking in fix-requires-by-path

Also add a bit of more verbose output,
Also make it possible to run on just a named package

19 months agoClean up all empty directories in stagingdir
Jon Turney [Tue, 2 Apr 2024 15:03:44 +0000 (16:03 +0100)]
Clean up all empty directories in stagingdir

19 months agoExpire python35
Jon Turney [Mon, 1 Apr 2024 13:55:12 +0000 (14:55 +0100)]
Expire python35

19 months agoExpire python34 left-overs
Jon Turney [Sun, 31 Mar 2024 14:24:29 +0000 (15:24 +0100)]
Expire python34 left-overs

19 months agoIgnore InotifyError exceptions
Jon Turney [Sat, 30 Mar 2024 20:20:08 +0000 (20:20 +0000)]
Ignore InotifyError exceptions

19 months agoOnly consider files in fix-requires-by-path
Jon Turney [Wed, 27 Mar 2024 13:46:56 +0000 (13:46 +0000)]
Only consider files in fix-requires-by-path

This makes it practical to use complex regex e.g. ending with a negative
lookahead.

19 months agoAdd replace option to fix-requires-by-path tool as well
Jon Turney [Tue, 26 Mar 2024 13:49:27 +0000 (13:49 +0000)]
Add replace option to fix-requires-by-path tool as well

19 months agoPreparations for python3.5 removal
Jon Turney [Mon, 25 Mar 2024 21:57:22 +0000 (21:57 +0000)]
Preparations for python3.5 removal

19 months agoImprove fix-requires-by-linkage tool to allow it to run on entire relarea
Jon Turney [Sun, 24 Mar 2024 22:22:38 +0000 (22:22 +0000)]
Improve fix-requires-by-linkage tool to allow it to run on entire relarea

Also: allow replacing an existing dependency (e.g python3 -> python35)
Also: don't spam with objdump warnings for symlinks

19 months agoSupport an easy way to trigger a relarea rescan via a .touch file
Jon Turney [Sun, 24 Mar 2024 16:52:53 +0000 (16:52 +0000)]
Support an easy way to trigger a relarea rescan via a .touch file

This will be used by vault and scan-relarea

19 months agoAdd a report of python packages which need rebuilding
Jon Turney [Sat, 23 Mar 2024 21:40:03 +0000 (21:40 +0000)]
Add a report of python packages which need rebuilding

19 months agoFuture proof the re for "python modules for old python versions"
Jon Turney [Sat, 23 Mar 2024 15:49:26 +0000 (15:49 +0000)]
Future proof the re for "python modules for old python versions"

19 months agoRelocate lockfile
Jon Turney [Sun, 24 Mar 2024 14:10:14 +0000 (14:10 +0000)]
Relocate lockfile

Relocate lockfile somewhere writeable by cygwin-admin uid

19 months agoRecord reason for calm daemon stopping in logfile
Jon Turney [Sat, 23 Mar 2024 15:42:26 +0000 (15:42 +0000)]
Record reason for calm daemon stopping in logfile

19 months agoUse inotify to detect when there's work to be done
Jon Turney [Sun, 17 Mar 2024 13:46:28 +0000 (13:46 +0000)]
Use inotify to detect when there's work to be done

Rather than signals (which can only be sent by the same uid), use
inotify to detect when there's work to process in upload or staging
directory, or when a change has been made in the relarea.

19 months agoTolerate package html directories being owned by someone else
Jon Turney [Sat, 9 Mar 2024 12:27:25 +0000 (12:27 +0000)]
Tolerate package html directories being owned by someone else

As a consequence of the cygwin-admin/cygwin split, we might not own an
existing package listing/summary HTML directory. Ignore any error trying
to set permissions in that case.

19 months agoDon't warn if license expression canonicalization just changes case
Jon Turney [Sat, 17 Feb 2024 19:24:45 +0000 (19:24 +0000)]
Don't warn if license expression canonicalization just changes case

Also: consistently indicate if a problem warned about in hints is fixed

19 months agoAdd a report of package lingering in test/unstable status
Jon Turney [Sat, 20 Jan 2024 16:45:02 +0000 (16:45 +0000)]
Add a report of package lingering in test/unstable status

21 months agoIgnore new flake B038
Jon Turney [Fri, 19 Jan 2024 18:12:42 +0000 (18:12 +0000)]
Ignore new flake B038

Ignore new flake B038: "editing a loop's mutable iterable often leads to
unexpected results/bugs".  The instances this reports are all false
positives.

21 months agoRewrite dependencies on removed python packages
Jon Turney [Thu, 18 Jan 2024 20:25:41 +0000 (20:25 +0000)]
Rewrite dependencies on removed python packages

Using the now removed, obsoleted package name causes the solver to want
to uninstall anything which depends on these, which isn't helpful right
now.

Theoretically, the information to generate these exists in our "retired
old-style obsoleting packages" data, but do it manually for speed right
now.

21 months agoAnchor nonexistent_provides at the end
Jon Turney [Thu, 18 Jan 2024 20:50:18 +0000 (20:50 +0000)]
Anchor nonexistent_provides at the end

Anchor the nonexistent_provides regex at the end, so it matches the
whole provide name, avoiding unpleasant surprises.

21 months agoExpunge all python2 modules
Jon Turney [Tue, 17 Oct 2023 12:37:14 +0000 (13:37 +0100)]
Expunge all python2 modules

21 months agoEnsure announce mail ends with a blank line
Jon Turney [Sat, 6 Jan 2024 14:58:14 +0000 (14:58 +0000)]
Ensure announce mail ends with a blank line

21 months agoImprove rendering of minimal Markdown for description in package summary
Jon Turney [Wed, 13 Dec 2023 13:26:31 +0000 (13:26 +0000)]
Improve rendering of minimal Markdown for description in package summary

Retain the heuristic which makes URLs in the description, and improve
it's handling of some cases.

21 months agoAdd rdepends and build_rdepends to package summary
Jon Turney [Wed, 3 Jan 2024 19:33:24 +0000 (19:33 +0000)]
Add rdepends and build_rdepends to package summary

Use the HTML <details> widget to avoid showing large lists by default.

21 months agoFactor out writing the details in the package summary page
Jon Turney [Wed, 3 Jan 2024 19:25:32 +0000 (19:25 +0000)]
Factor out writing the details in the package summary page

Contain the details in a table of class 'pkgdetails' for more layout
control.

21 months agoIsolate tests from a local repodir
Jon Turney [Thu, 4 Jan 2024 14:30:01 +0000 (14:30 +0000)]
Isolate tests from a local repodir

This fixes the tests if a local /git/cygwin-packages happens to exist,
and adds some test coverage of code which examines repodir.

21 months agoAvoid an exception if package.merge() fails and returns None
Jon Turney [Wed, 3 Jan 2024 18:25:08 +0000 (18:25 +0000)]
Avoid an exception if package.merge() fails and returns None

This page took 0.060385 seconds and 5 git commands to generate.