In addition to cleaning up old distros that we want to remove we should
have testing for modern distro releases.
Change-Id: I66a388bcde01d5b96e352dcea28c3fb969a59ff6
The OpenDev team is planning to remove OpenSUSE LEAP 15 images as our
node builds and mirrors are for 15.2 which is ancient and no one is
currently working to modernize these test environments. On top of that
LEAP is apparently going away in the future and will be replaced with
another distro.
Bindep's unittesting of platforms with mocked out /etc/os-release based
distro detection should be sufficient testing for suse going forward.
Change-Id: I9f8f79bc6957932725f6da28934d4494c3335d15
This drops Python 2.7 testing from bindep and removes trove labels for
Python 2.7 in setup.cfg. We also remove Python 3.5 trove labels as we
stopped testing 3.5 some time ago. Additionally, we stop producing
universal wheels as this is now a python 3 only project.
This has been a long time coming. With Debian Bookworm not shipping a
python2 at all this is a good indication it is time for us to stop using
python2 with Bindep. Those that need Bindep with Python 2 or 3.5 can do
so using older releases. To help make this almost automagic we set
python_requires >= 3.6 which will make pip select an appropriate version
based on the python version being used.
Change-Id: Ief77df0b210c6d236adab2ba6659f181eea17459
OpenDev is dropping fedora test nodes. That means bindep cannot continue
to run test jobs atop fedora-latest. Note that fedora-latest isn't
working anyway due to upstream removing package mirrors for fedora-36.
Longer term a good improvement to bindep may be to move the platform
testing into containers then we can run a single functional job that
spawns a container for every platform we want to test and get coverage
that way. Until then our unittests that fake in /etc/os-release content
should be sufficient coverage for fedora.
Change-Id: I0513fe13fe55b34667012efe88752f0a1f7c1037
packaging 22.0 removed the LegacyVersion object which was the fallback
when an invalid version was found. Now when an invalid version is found
packaging raises and exception. This appears to be a problem for rolling
release distros like Arch and Manjaro as they don't have versions.
To fix this we catch the exception and set our object value to None.
This will cause us to error later should we actually need the version
for some reason. When we don't need it as with Arch/Manjaro we continue
along just fine.
Change-Id: Ic9ec6a3a492a7f95cf9d2865f88d79c6c5de796c
This illustrates the use of nox in a simpler project. It can build docs,
run linters, and execute unittests simply and effectively.
Note we pin the packaging package as newer versions have changed
behavior on rolling release distros that don't have proper version. This
is necessary to fix gating. The followup change fixes it properly.
Change-Id: I795e4d73f60d90b0f027df43a80ebda773ee9194
The Sphinx autodoc extension now wants testtools installed, so docs
builds are breaking. The value of autodoc'd unit tests is basically
nil, since contributors should be able to read the source code
anyway, so let's just get rid of this section.
Change-Id: Iec379fa0680c7552fa2a5ad77b4f23748f6afceb
We normally publish documentation updates in the promote pipeline,
using documentation built in the gate. As a result, the published
docs tend to lag behind release events until the next post-release
change lands. Run a separate docs build and publish it on release,
so that release notes and version information included in the
documentation reflect the most recent tag prior to the next change
merging (which for stable projects like this one, could be a while).
Override the tag jobvar to force publication to the branch path
rather than using a version-specific tree.
Also remove ubuntu-focal node overrides for release builds, as this
is now our default anyway.
Change-Id: I36409682049946bc3f2c9be7af88ba78f01bd8f0
Depends-On: https://review.opendev.org/838525
The 1.7.0 release of distro moves the source code around [0] which
requires us to update our monkey patching of distro to make tests work.
Because distro 1.7.0 does not support python < 3.6 we update bindep's
testing to accomodate both old and new distro to enable python 2.7 and
3.5 testing.
[0] 4d76bd160f
Change-Id: I6cc3bedaa9753dc86d6560d32961b5a22cf3a36e
CentOS 8 is EOL and should be replace dwith CentOS 8 Stream or another
RHEL alike. We're doing stream here because it is easy.
Change-Id: I0c699ad153d25f0e0c3abc99e99072ac6b144ef0
SetupTools expects its options in setup.cfg to use underscores
instead of hyphens these days, but when revisiting the file in
Ib509016b532ec7cf65472cf3ee9a5e1b29949534 the author-email option
was overlooked. Correct it to author_email in per the deprecation
warnings.
Change-Id: Iaf1172ef120beb1293d99a027fac6f402c2ee278
We've seen people whose editors don't add newlines to files for whatever
reason. Make bindep handle this case since users are running into it.
Note that we could theoretically modify the existing parsley grammar to
accept a missing newline and instead find EOF but adding rules like that
seems to interact with whitespace processing in ways that I don't
understand. Rather than spend a ton of time learning parsley internals I
figure the fix here is simple and easy to understand and limits
potential fallout from changes to the grammar.
Change-Id: I960e579a603d1a4612d859451df1f559e950ac31
The packaging package doesn't support python3.5 or older anymore. Bindep
is still occasionally used on systems without newer python. Add an
environment marker to our requirements to install older packaging on
those systems.
Change-Id: I28949b0bb7d4978fc7f71109d0c65b9b76d6563f
If applied, this commit will add test support for Manjaro Linux. The
test suite for Manjaro is based on the test suite for Arch Linux since
these two distros share a package manager. In addition to a package
manager, Manjaro also shares a vast majority of its packages with Arch
Linux and does not offer any that override package names in the base
Arch Linux repositories. Like Arch, Manjaro is a rolling release, so the
test fixture, (a copy of /etc/os-release), should remain consistent over
time, as it lacks any version information.
Change-Id: I07195f9300459339ebe62c7871fae9a770bd97f2
If applied, this commit adds support for Manjaro Linux, an Arch Linux
downstream variant. Both use pacman as their package manager.
Change-Id: Ib95834bf919b045a871e919973871f5303a4c6c9
Apparently distutils.version.LooseVersion does not supply a version
attribute in newer Python stdlib. The code we have already prefers
packaging.version.parse over it anyway if packaging is installed, so
declare it as an actual requirement. Clean up the old distutils
alternative now that it should no longer be called.
Change-Id: I9409f2b0e076e5def3fffb1149665df71c0c5508
This fixes incorrect block quoting, title level, and other minor
formatting issues with the generated docs.
Change-Id: I07d62e54ec837793119fa9f80d610d715bcafdbd
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The default nodeset in OpenDev is still ubuntu-bionic, which has
older setuptools and wheel packages lacking some newer features we'd
like to make use of. Explicitly call out ubuntu-bionic as our
required nodeset for building release artifacts so we use newer
versions of these tools.
Change-Id: I0995336bcb02160360a42919f3594ba9708dac31
Fix some outdated references to OpenStack CI, and correct legacy
URLs to their modern equivalents.
Change-Id: I1d5d35e71702273ac3c2c119147da7ac2d6f1fab
Modernize our package metadata in the following ways:
* switch from description-file to long_description with the file
attribute, and specify an explicit content type and encoding
* replace the home-page parameter with the newer general url one
* add specific labelled project links for improved navigation from
PyPI's summary sidebar
* include some appropriate keywords to help folks searching
* use the specific license metadata in addition to the corresponding
trove classifier for it
* make sure wheels when built also incorporate the LICENSE and
AUTHORS files so that we're not distributing them without a copy
of the license text
* indicate support for MacOS X/Darwin in trove classifiers
https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html
Also adjust tox.ini to no longer pick a specific Python 3.x
interpreter in the default envs list, instead making it use whatever
python3 the developer has on hand since that's probably "good
enough" for local testing.
Change-Id: Ib509016b532ec7cf65472cf3ee9a5e1b29949534
As discussed at length in IRC, the feature implemented by
I7e47ee956e9496d9f47a98f9595790797c8d1789 is incomplete and
undocumented, so we should not include any release note advertising
it for now.
Change-Id: I3e992d9f0e937a0226701c52a5c6f8642a86def7
Since OpenDev has its own docs site now, publish there instead of
the old docs.openstack.org/infra tree.
Change-Id: I991ae85d9aaec59b28a071731049fc12add97445
As part of relocating to the opendev Zuul tenant, declare our jobs
inside the repository now. This duplicates how opendev/gear is
currently configured.
Change-Id: I5d4b899665702f7a43bfe028a790dc13d0572230
Depends-On: https://review.opendev.org/773793
Since we have release notes for bindep, we should publish them
alongside our documentation. Also update to more modern patterns for
invoking Sphinx, splitting documentation build requirements to their
own file. Drop use of the openstackdocstheme and just rely on the
default Alibaster theme like other OpenDev tools do. Remove a few
other OpenStackisms in the Sphinx configuration too, and drop the
autogenerated date included in the copyright value (not only is it
unnecessary, it's bad practice from a rebuildability standpoint, and
inaccurate since the date docs were built is not necessarily the
date the content was written).
Change-Id: I84ab856dc92d0546653fe7ca7c4e9683835c9c4a
A number of user-facing improvements and fixes have merged since the
most recent release without release notes, so attempt to summarize
them accurately in preparation for an upcoming release.
Change-Id: I387cc4c5544f685f9d59f663734b44f3987cb1d5
- assure we can all bindep as a module (python -m bindep)
- add test the assures output is the same regardless how is called
- include argparse fix which needs to know executable name when
called as modules.
- enables use of bindep without needing to have it in PATH
Change-Id: Ib2aac359e2f23cb0ac7857835905e0a02e90888d
It seems that `pacman -Q` may output warning lines if you have a
file with the same name as the package, like so:
$ mkdir cmake
$ pacman -Q cmake
error: package 'cmake' was not found
warning: 'cmake' is a file, you might want to use -p/--file.
This confuses bindep's output parsing when looking simply for lines
ending in "was not found" so match more strictly instead on lines
containing something like:
error: package 'cmake' was not found
See the original patch supplied by Jakob Lykke Andersen in this
mailing list post:
http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019404.html
Change-Id: I70287418ce034690a7fd34f4127a24fe8d7a33d2
Co-Authored-By: Jakob Lykke Andersen <jlandersen@imada.sdu.dk>
Upgraded hacking and fixed issues with code. This fixes pep8 job
which was failing on py38 as dependencies were too old.
Change-Id: I1b1a980eb1cb7ad0a6754b3aebfb3e3e1617c3be
When added with 2152331ebf this was a
copy of the externally hosted bindep fallback file which was
deprecated.
So this now represents a big collection of things that we're not
maintaining. When we add new python3 only distros to testing it all
breaks.
I think the point of this test is to ensure the callouts to the tools
for installation are working; there's no need to install the whole
world. Cull this to a simlified list that exercises a few common
paths with packages that should be stable for the forseeable future.
Change-Id: Ib87425a5010e6cc781731512473e3db2461c1faf
When just trying to determine the list of possible platform profiles, it
seems silly to need to `touch bindep.txt`.
Note that we'll still log the error about how neither bindep.txt nor
other-requirements.txt exists
Change-Id: I6ab187cdfb7d8fc5638880bcffea6800f5227c79