Age | Commit message (Collapse) | Author |
|
This fixes the tests if a local /git/cygwin-packages happens to exist,
and adds some test coverage of code which examines repodir.
|
|
This avoids flake B034: sub should pass `count` and `flags` as keyword
arguments to avoid confusion due to unintuitive argument positions.
|
|
|
|
Generalize the perl rebuild report logic to work for any version provide:
|
|
|
|
Fix test data to satisfy that.
|
|
It would be nice to also show rdepends and rbuild_depends, but those
could be huge lists.
|
|
|
|
Drop Eric Blake as inactive
Add Achim Gratz
|
|
Also add equivalent config keys for cgit
|
|
|
|
|
|
The data ordered by package name is the one we use the most often, so
make that the primary form.
Also use mtime_cache for the result of parsing cygwin-pkg-maint.
v2:
Fix mkgitolite and reports
Keep maintainers in a list, not a set, because we need "first named
maintainer".
Don't write permissions lines with an empty list of names, as that's
syntactically incorrect.
|
|
At the moment, calm.process_relarea() is expected to keep going,
although we might later fail due to package set validation problemss.
(In particular tests just assume that we ignore various problematic
packages, although we don't actually check that they are being rejected
with the epxected problem)
|
|
Rename orphanmaint -> trustedmaint
Also revise and relax logic so it's more consistent: trusted maintainers
can do these things via a shell, so don't stop doing them more easily
via calm.
Drop convulted "add trusted maintainers as maintainers of orphaned
packages so they can upload them", and just check directly against
trusted maintainer list to determine if an upload is permitted.
|
|
Stop looking in x86/
Stop generating setup.ini in x86/
Stop generating webpage for x86/
|
|
|
|
Also add a test for that.
|
|
Synthesize depends: from requires: in a way which doesn't mess up any
version-constraint present while sorting.
Future work:
Store the depends: hint decomposed into a list, rather than a string
which needs to get split everywhere it's used.
|
|
Drop all remaining internal uses of requires: hint, use the
(synthesized) depends: hint instead.
|
|
There's never been anything that generates it, apart from internally
from the requires: hint.
|
|
|
|
For setup versions later than 2.885, it's superseded by depends2:
Dropping this reduces the size of setup.ini by about 5%
|
|
|
|
|
|
Look in a different directory for packages being deployed by scallywag.
Future work: this will allow disabling the uploading of local builds (on
a per-package basis), whilst still allowing automated build uploads.
Update tests appropriately.
|
|
Remove empty subdirectories in release and upload areas.
|
|
Allow 'license:' key in source hint, and check it contains a valid SPDX
license expression.
Show the key value in source package summary page, and in repology JSON
output.
Update tests appropriately
Future work: Add 'license:' to the set of mandatory keys for a source
package.
|
|
Allow maintainers get reporting on changes and problems with their
packages, even if it's something occurring spontaneously in calm.
e.g. being vaulted due to change in expiry mechanisms, failing package
set validation due to tighter constraints, etc.
Add a generic filter as a context manager, which sets log record attrs
specified as kwargs.
Use that to send each maintainer log entries caused by their actions, or
pertaining to their packages.
|
|
Preparatory to dropping signing with old key, since 2.903 is the first
version supporting signing with the new key.
|
|
Give unmaintained packages the 'unmaintained' pseudo-category in
setup.ini
|
|
Record all package names persistently, to determine the set of names of
packages which have been removed.
This allows removing packages whilst still validating the names in an
obsoletes: hint, without having to manually maintain a list of those
names.
|
|
Follow up to d8869d2e.
Since d863c1a2, 3cc08991 and 27852b24 these 'stability levels' can't be
set in override.hint, so they are just determined by sorting by version.
Update tests as 'keep-count: 0' is now effective, rather than having an
minimum of 1 (the curr: version, or 2 before prev: was also dropped).
|
|
|
|
Disallow requires: and obsoletes: in src.hint files, as noted in bb467a09
These are being ignored, and are only present in src.hint files created
from .hint files for old packages.
Update test data appropriately for dropped hints, and for the hint
fixing backup files created during upload.
|
|
Also update test data appropriately
|
|
Ignore the 'skip' hint, as it's meaningless, now we properly classify
packages as source or install.
Instead, if installing a non-obsolete package will do nothing, mark it
as not_for_output.
Future work: also allow the 'does nothing' check to apply to '_obsolete'
packages. At the moment this would catch a few more packages which
probably need to be obsoleted: by something before they can be safely
removed.
(It's not safe to simply vault them as we need to ensure any existing
installed files owned by that package are removed when a system with
them installed is updated.)
|
|
Since a package now only contains either all source or all install
archives, we can drop the 'category' indirection that vermap provides.
Drop Package.vermap
Drop the category argument to Package.tar(), and drop checks that it's
the expected value before calling that.
Drop the filename index (which came from vermap) into Package.tars, and
rename it to Package.tarfiles ensure we've caught all references.
|
|
An empty install package without depends should be in the '_obsolete'
category.
(We're now checking all install packages, not just ones without
external-source: (which we ignored here for somewhat bogus reasons), so
add additional exceptions to past_mistakes.)
An empty install package with depends should be in the 'virtual'
category (but there are many old obsoletion packages which look like
that, so allow '_obsolete' as well).
Also check for empty source packages (and then fix the empty rpm-doc-src
we have in test data).
|
|
html files aren't generated if they already exist, so clean the
test_html_writer output directory before the test, to ensure files are
always generated.
|
|
|
|
Use the xtarfile module to handle zstd compressed archive.
Note this isn't quite as straightforward as 'import xtarfile as
tarfile', because it isn't precisely a drop-in replacement for tarfile,
because:
(i) the 'mode' argument to xtarfile.open() is mandatory, and
(ii) it doesn't re-export tarfile exception classes such as tarfile.ReadError
|
|
Stop permitting the upload of a 0-byte compressed file in the place of
an empty compressed archive. (Such files existing in the release are are
still accepted for historical compatibility).
Cygport stopped generating these historical anomalies a few years ago.
|
|
Include build date (strictly, the package archive mtime) in the package
summary HTML page.
Also refine package size units to KiB, since that's what we actually
use.
Use a fixed timestamp (in UTC) for all packages in test data.
|
|
provides: isn't supported by setup earlier than 2.891, so we can't
install anything which requires: something that is provides:ed with that
version.
|
|
Once a Package object no longer contains any files (archives or hints),
it can be removed from the package set.
(This fixes calm complaining when it wants to vault a stale package
which had source, but no kept version does. Otherwise it complains that
the source package has no versions)
Also remove removed hints from version_hints, since we iterate over that
in some places. This also prevents removed versions from bogusly
appearing in packages.json, so update test data appropriately.
|
|
A002 "object" is used as an argument and thus shadows a python builtin, consider renaming the argument
|
|
|
|
We start to raise the minimum setup version, to hopefully cause people
to stop using those old versions, in anticipation of dropping signing
with the key those old version expect.
Unfortunately, this doesn't help with the very old versions which don't
support setup-minimum-version:. which ~1% of IP activity is still using.
|
|
We're not writing C++, they are still scoped to the module namespace, so
making them @staticmethod just makes using them require more verbiage.
|