Brett Smith [Tue, 16 Jan 2024 16:14:02 +0000 (11:14 -0500)]
21230: Update virtualenv in fed-migrate test
I don't believe this is strictly necessary, but `python3 -m venv` is
more likely to work than `virtualenv` and better matches all our other
code. Everything else is just style updates.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Mon, 15 Jan 2024 14:52:29 +0000 (09:52 -0500)]
21230: Activate virtualenv in arvbox doc service
Generating the PySDK docs needs to actually import pdoc, not just run
it. Given this, linking pdoc in /usr/local/bin/ is probably more
confusing than helpful, so don't.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Fri, 12 Jan 2024 19:30:45 +0000 (14:30 -0500)]
21230: Fix binstubs generation in arvbox
At some point, bundle started installing binstubs in `bin/` by
default. Various pieces of arvbox assume they go in `binstubs/` and
break when they don't. Explicitly pass options to get the old behavior
where needed.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Fri, 12 Jan 2024 15:52:00 +0000 (10:52 -0500)]
21230: Use virtualenv in arvbox
This is preparation to let us build arvbox on Debian 12, which has
adopted PEP 668 and doesn't permit installing packages outside a
virtualenv anymore.
This does move pdoc installation out of the doc service and into the
Dockerfile. The doc code currently doesn't have any way to version this
dependency, and it rarely changes in development, so this seems fine as
a code simplification.
All the code that tries to "pip install from cache only, then use the
network" is gone because as best I can tell it's already non-functional:
the pip cache isn't structured in the way that it assumes
anymore. Generally pip looks at what's installed in the virtualenv and
only installs what it *must* to satisfy dependencies, so this seems
fine.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Fri, 12 Jan 2024 14:39:41 +0000 (09:39 -0500)]
21230: Remove pip install from get-package-version
Reasons to remove this: it can't work on Debian 12+, and the code has
obviously gotten stale with its original rationale ('setuptools<45' is
definitely not "latest setuptools").
Nobody can tell me what context this runs in. I'm going to hope that it
runs in some context where setuptools is already available. If it turns
out I'm wrong, then hopefully that will break the build in a way that
lets me assess our options.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Fri, 12 Jan 2024 14:31:27 +0000 (09:31 -0500)]
21230: Clean up unnecessary Python packages from package build Dockerfiles
* python3-pip: `ensurepip` is standard as of Python 3.4+.
* python3-setuptools: We want to install this in our build
virtualenv anyway.
* python3-virtualenv: python3-venv is sufficient.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Wed, 10 Jan 2024 18:43:20 +0000 (13:43 -0500)]
21367/21230: Set up dev-jobs with virtualenv
The functional goal here is to do all pip installs inside the Dockerfile
inside a virtualenv to avoid the global pip install issues.
Changes that fall out of that:
* Installing python3-venv is all we need to go back to the -slim Debian
image.
* Stop installing other Python packages we'll just install inside the
virtualenv anyway.
* Rather than having separate arguments and code blocks for every
package we might want to install, just set up a dedicated build
context for the Docker image with all the packages we want to install,
and install them all unconditionally during the image build. This is
much less code and hopefully easier to follow.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Wed, 10 Jan 2024 18:33:36 +0000 (13:33 -0500)]
21367: Remove environment check
You only need for this for `arv-keepdocker` at the end of the process,
which can read from settings.conf just fine too. Even if it fails, the
developer will have the command handy to fix their environment and try
that again easily.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Sat, 6 Jan 2024 21:00:25 +0000 (16:00 -0500)]
20846: Use Python build variables more consistently
Rather than have the virtualenv process use its own python command,
ensure PYTHON3_EXECUTABLE points to a specific minor version, and use it
throughout the entire build process.
The changes to the virtualenv manipulation with sed are meant to clean
things up with fewer commands and tighter regexps, but not make any
functional change beyond referring to a specific minor Python version.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Fri, 5 Jan 2024 21:53:57 +0000 (16:53 -0500)]
21273: Build rocky8 Python packages against python39
We can no longer support the Python 3.6 that ships with rocky8. Building
against the latest appstream release is the most straightforward way to
continue building packages for the distro.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Tom Clegg [Thu, 4 Jan 2024 22:51:33 +0000 (17:51 -0500)]
21258: Ensure at least one boot failure.
With the previous approach, it was possible for all containers needing
a type4 instance to finish, and a different instance type to report a
quota error and cause the scheduler to shut down the now-unneeded
instance, all before the "guaranteed broken" node reached
TimeoutBooting. In such a case it would not be counted as a boot
failure.
To avoid this, the new approach induces boot failures on *all* type4
instances until 2x TimeoutBooting intervals have passed.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>
Brett Smith [Thu, 4 Jan 2024 19:15:43 +0000 (14:15 -0500)]
20846/21230: Remove Python transitional metapackages from the package build
The build process for this is relatively expensive (we set up a
dedicated virtualenv for each one) and not PEP 668-compliant (it tries
to upgrade packages globally). We don't need these packages anymore for
the Arvados 3.0 release. Stop building all of them.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Thu, 4 Jan 2024 19:00:46 +0000 (14:00 -0500)]
20846/21230: Modernize virtualenv setup in package building
This change sets up the virtualenv earlier, then does all work inside
it, starting with installing build dependencies, to comply with PEP 668.
A couple optimizations that were easy to do as part of this work:
* We install modules in as few pip commands as possible, to reduce
the overhead of determining what's currently installed, what's
available from PyPI, etc.
* Removed a special case for CentOS 7 that we no longer need.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Peter Amstutz [Wed, 3 Jan 2024 19:40:28 +0000 (14:40 -0500)]
21278: Remove the '/search.*' to '/search-results' redirect
It produces an infinite loop and I don't think the /search endpoint is
really compatible with the /search-results endpoint anyway, and it's
less likely for people to have old hyperlinks to search results than
to projects or collections.
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>
Brett Smith [Fri, 29 Dec 2023 16:16:42 +0000 (11:16 -0500)]
20846/18874: Update NodeJS/Yarn in debian12/ubuntu2204
This applies the change from c4d4088d3e7f3e3f896ed0bb482560ab702d5465 to
the debian12 and ubuntu2204 package build Dockerfiles. It uses a
slightly different yarn install recipe to avoid the "double ln" and
associated layer, but the end result is the same.
Refs #18874, #20846. These branches were in development in parallel, so
the changes from the former weren't applied to the latter.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Brett Smith [Thu, 28 Dec 2023 19:29:30 +0000 (14:29 -0500)]
Use full paths for API documentation links
Most of the cross-reference links in our documentation point to a
specific page. These links are unusual in that they point to a
directory. Lately the linkchecker has been intermittently complaining
about them:
URL `file:///tmp/workspace/developer-run-tests-doc-and-sdk-R/doc/.site/api'
Name `API documentation'
Parent URL file:///tmp/workspace/developer-run-tests-doc-and-sdk-R/doc/.site/admin/scoped-tokens.html, line 306, col 576
Real URL file:///tmp/workspace/developer-run-tests-doc-and-sdk-R/doc/.site/api/
Warning [file-missing-slash] Added trailing slash to
directory.
Result Valid: directory
This causes a test failure. Spell out the rest of the link to prevent
that. No issue #.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
Peter Amstutz [Thu, 21 Dec 2023 14:20:09 +0000 (09:20 -0500)]
21305: Add piwik and google analytics tracking to layout
This used to be a hidden branch that was cherry-picked called
"public-site-piwik", so this just brings it into the main branch to be
able to maintain it.
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>