Commit Graph

223 Commits

Author SHA1 Message Date
Clark Boylan 6d2761a4b8 Add centos-9-stream and ubuntu-jammy functional testing
In addition to cleaning up old distros that we want to remove we should
have testing for modern distro releases.

Change-Id: I66a388bcde01d5b96e352dcea28c3fb969a59ff6
2024-02-26 14:43:40 -08:00
Clark Boylan 0ed0e569d0 Drop centos-7 and ubuntu-xenial testing
This is in preparation for future cleanup of these distros as test
platforms for opendev.

Change-Id: I99bdc0c051b5d27b48c0bed28ec635cea598f66f
2024-02-26 14:42:21 -08:00
Clark Boylan aa33e73f1b Drop bindep-opensuse-15 job
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
2024-02-21 09:15:05 -08:00
Clark Boylan 1d4f5113a3 Drop Python 2.7/3.5 testing and support
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
2023-08-22 14:54:19 -07:00
Clark Boylan a6e808f67f Drop fedora-latest test job
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
2023-08-22 09:31:42 -07:00
Zuul 2a9a8b0751 Merge "Update formatting of author_email in setup.cfg" 2023-01-26 03:45:32 +00:00
Zuul 5785d21908 Merge "Fix spelling of "unknown"" 2023-01-26 03:45:30 +00:00
Clark Boylan b10c2f4003 Fix bindep on Arch with packaging>=22.0
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
2023-01-25 16:10:13 -08:00
Clark Boylan 697af0b17a Use nox
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
2023-01-25 16:09:12 -08:00
Lars Kellogg-Stedman 48bcd405dd
Fix spelling of "unknown"
This jumped out at me while running bindep recently.

Change-Id: Iebc33fa396940e1064205241f00136376b71bb57
2023-01-25 13:24:25 -05:00
Zuul 69c7262259 Merge "Add support for popos" 2022-10-04 16:12:32 +00:00
Jeremy Stanley 5e99e4fd9c Drop unit tests autodoc from contributor docs
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
2022-10-04 15:30:51 +00:00
Sean Mooney 3427c34728 Add support for popos
This change simply adds pop os to the list of debian derived
distros.

Change-Id: I7cfb3743b21de49a9a6152c4e9dff45d6dac148c
2022-05-26 13:25:35 +01:00
Zuul 7de26cda09 Merge "Update test tool to use stestr" 2022-04-20 15:37:42 +00:00
Jeremy Stanley e12f9e4f57 Publish documentation at every release
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
2022-04-19 15:54:40 +00:00
Erik Berg 5d6a6c58b0 Add AlmaLinux support
Depends-On: I6cc3bedaa9753dc86d6560d32961b5a22cf3a36e
Change-Id: I037e1b0306315f7d12af0a4b6cba4226c24e6748
2022-04-11 12:21:18 -07:00
Erik Berg 186f6e4035 Fix bindep testing with distro 1.7.0 and greater
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
2022-04-11 12:19:56 -07:00
Clark Boylan d23778fcd7 Replace centos-8 with centos-8-stream
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
2022-01-12 09:02:33 -08:00
Jeremy Stanley ba5ac5025b Update formatting of author_email in setup.cfg
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
2021-11-20 18:59:13 +00:00
Clark Boylan 818227c23f Update test tool to use stestr
testrepository isn't maintained at this point but stestr is. Switch to
stestr.

Change-Id: I545cb1598cd232220aa4b61d0155ab5a2846fd29
2021-11-18 08:32:52 -08:00
Clark Boylan c4c2bf1afe Handle no newline at the end of bindep.txt
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
2021-10-20 17:28:12 -07:00
Clark Boylan 0bd79b1d5d Add old python packaging pin
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
2021-10-19 16:09:02 -07:00
Clark Boylan 36e28c76fa Add release note for rocky and manjaro
A short note indicating why the new release is being made.

Change-Id: I710028696794f754740bcbbccdd835008cce5fc0
2021-10-18 07:20:18 -07:00
Cody Lee Cochran 314b303b6e feat: Add test support for Manjaro Linux
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
2021-10-15 21:34:13 -05:00
Cody Lee Cochran 80d82a4456 feat: Add support for Manjaro Linux
If applied, this commit adds support for Manjaro Linux, an Arch Linux
downstream variant. Both use pacman as their package manager.

Change-Id: Ib95834bf919b045a871e919973871f5303a4c6c9
2021-10-15 08:54:45 -05:00
Jeremy Stanley d0fba55d50 Require packaging
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
2021-10-02 12:46:56 +00:00
Michał Nasiadka 53bf817ffc Add Rocky Linux support
Change-Id: Id5b6b02736ff368698dde33336c2570de2a2834f
2021-09-16 12:11:10 +02:00
Jeremy Stanley 623c2e0486 Correctly skip sdist building in tox.ini
The skipsdist option was misspelled in tox.ini, correct it.

Change-Id: I008783dfc025c3ff9d93c57dff48d6db4cafdd96
2021-04-23 17:00:43 +00:00
Sean McGinnis 3bee5129d7 Fix formatting issues in docs
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>
2021-02-06 01:42:46 +00:00
Jeremy Stanley e49d015f24 Build releases on ubuntu-focal
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
2021-02-05 19:23:54 +00:00
Jeremy Stanley d06e9fd292 Update contributor doc and readme
Fix some outdated references to OpenStack CI, and correct legacy
URLs to their modern equivalents.

Change-Id: I1d5d35e71702273ac3c2c119147da7ac2d6f1fab
2021-02-04 17:12:29 +00:00
Jeremy Stanley cad541f4fe Overhaul Python package metadata
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
2021-02-04 17:02:56 +00:00
Jeremy Stanley 7fb65c5c22 Remove release note about rpm path references
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
2021-02-04 01:51:50 +00:00
Jeremy Stanley 41c6f1ee3d Build docs for OpenDev
Since OpenDev has its own docs site now, publish there instead of
the old docs.openstack.org/infra tree.

Change-Id: I991ae85d9aaec59b28a071731049fc12add97445
2021-02-04 01:51:50 +00:00
Jeremy Stanley ed77a829f0 Move all jobs in-repo
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
2021-02-04 01:51:48 +00:00
Jeremy Stanley 5a1fb0fbfe Publish release notes
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
2021-02-02 19:53:17 +00:00
Jeremy Stanley d571d56c70 Add missing release notes
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
2021-01-29 20:01:36 +00:00
Sorin Sbarnea 6deb027936 Assure bindep can be called as a module
- 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
2021-01-27 17:18:05 +00:00
Zuul a1f30f40ab Merge "Tolerate missing bindep.txt when using --profiles" 2021-01-22 20:58:06 +00:00
Jeremy Stanley 7c7ea77e8b ArchLinux: ignore unrelated warnings from pacman
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>
2021-01-16 16:23:05 +00:00
Zuul 5e75b1b99b Merge "Add OracleLinux support" 2020-09-21 15:32:38 +00:00
Sorin Sbarnea 509d18edae Fixed pep8 job
Upgraded hacking and fixed issues with code. This fixes pep8 job
which was failing on py38 as dependencies were too old.

Change-Id: I1b1a980eb1cb7ad0a6754b3aebfb3e3e1617c3be
2020-09-11 16:37:47 +01:00
Ian Wienand 75541dad5b Add centos 8 and focal testing
Change-Id: Ib6efd3c03643a46465394aaa0af5095cd2d2f6b9
2020-06-23 08:38:28 +10:00
Ian Wienand 2083b8b1a3 Cull the test bindep file
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
2020-06-23 08:38:23 +10:00
Ian Wienand d4cdaae8d9 Use abstracted virtualenv_command from ensure-pip
This will use venv and Python 3 on platforms where that is supported.

Change-Id: I8293d3299e47e9221d37eb36db6ce5f056824b0e
2020-06-12 10:40:50 +10:00
Tim Burke d5ee0cbb58 Tolerate missing bindep.txt when using --profiles
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
2020-06-10 21:00:03 -07:00
Paul Bourke 32e890e844 Add OracleLinux support
Story: 2001492
Change-Id: I72da98d95a6fecff682236887fd06931066063fe
2020-04-30 09:29:22 +00:00
Zuul 8c489f141d Merge "Fix test execution failure on Darwin" 2019-09-11 18:21:39 +00:00
Zuul 11a69845ac Merge "Fix apk handling of warnings/output problems" 2019-09-09 20:50:21 +00:00
Zuul a3924539e2 Merge "Fix emerge testcases" 2019-09-09 20:12:39 +00:00