Skip to content

pull upstream - #1

Merged
LeroyR merged 19 commits into
CentralLabFacilities:masterfrom
colcon:master
Jun 25, 2026
Merged

pull upstream#1
LeroyR merged 19 commits into
CentralLabFacilities:masterfrom
colcon:master

Conversation

@LeroyR

@LeroyR LeroyR commented Jun 25, 2026

Copy link
Copy Markdown
Member

No description provided.

cottsay and others added 19 commits November 17, 2025 15:26
This repository doesn't currently generate or validate the API
documentation generated by Sphinx, but I found that there were problems
doing so when manually attempted.

We may consider adding API documentation generation in the future, but I
found it useful to fix the problems we're carrying today.
Previously, we checked if the leading or trailing character was a colon
and then used a wildcard to remove it.

It is simpler to just remove a leading or trailing colon. This has the
added benefit of only using shell built-in functions.

Co-authored-by: Rob Woolley <rob.woolley@windriver.com>
Because this is a template, it isn't automatically checked by our
linters. This change cleans up a handful of violations and should not
result in any change in behavior.
This dependency ensures that the installed state of a package is exposed
to the test operation for that package. Dependency enumerations are
currently compatible with bare strings, but use of a
DependencyDescriptor instance is preferred.
At present, the package name and the job identifier hold the same value
throughout the colcon codebase, which is why this should result in no
difference in behavior today. Later in this file, we're already using
the job identifier when emitting JobSkipped events.
The existing tests exercise much of the code for implementing colcon's
shell subsystem, but don't validate the results. If the platform
supports the shell, we should check that the code for appending and
prepending paths to lists function as intended.
To date, all dependencies throughout the colcon codebase are always
identified by package name, which aligns with the fact that all job
identifiers are also package names. To support scenarios where there are
jobs which aren't identified by package names, we'll also need to
specify dependencies which aren't package names.

To eventually support this scenario, all primary shells (which implement
command_prefix templates) should make a similar change to support the
new attribute on the DependencyDescriptor class.

Note that at present, dependencies may also be bare strings, though
DependencyDescriptor instances are preferred.
This non-breaking API change to the TaskExtension plugin allows tasks to
control the creation of TaskContext instances, which are then used to
create Job instances for execution.

In particular this allows tasks to schedule any number of jobs, where
they currently always schedule one.
This is a simple compatibility fix for Python versions prior to 3.8,
where `patch.dict()` did not return the patched instance of the object.
Since it has just been patched, we can refer to it directly.
It seems that older linter versions complain about this import, and
newer linters don't mind the suppression.
This package was previously using three different temporary directory
allocation strategies:
- Manual `TemporaryDirectory` management
- pytest `tmpdir` fixture
- pytest `tmp_path` fixture

This commit changes all temporary directory allocation in tests to use
the `tmp_path` fixture, and includes a compatibility definition of that
fixture so that the tests will continue to work properly on RHEL 8.
The latest releases of setuptools drop support for the `--editable`
option to the `develop` verb, which colcon relies on when performing a
`--symlink-install`. While colcon declares incompatibility with newer
setuptools versions, it's certainly possible to end up in a situation
where colcon is used with newer setuptools versions. When that happens,
we should behave similarly to how colcon handles versions of setuptools
which are too old to support `--symlink-install` and fall back to a full
install.
Ubuntu Resolute (26.04) is the next LTS release of Ubuntu.
In order for colcon to consume wheels produced by PEP 517 build
backends, we'll need to explicitly uninstall existing Python packages
from the install space. This primarily stems from the differences in
metadata representation, where the previous setuptools-only Python build
mechanisms wrote `.egg-link` and `.egg-info` metadata, and wheels will
use `.dist-info` metadata.

There should be only one metadata representation in the install space
for a given package. The legacy setuptools build logic already has a
special case for dealing with a switch from `.egg-info` to `.egg-link`
and vice-versa. As we toss `.dist-info` into the mix, the need arises
for a more robust solution.

This new functionality is not currently used by colcon, but will be used
as part of the transition to standards-based Python build support.
This implementation is copied nearly verbatim from the prototype
colcon_python_project package.
It looks like Python 3.15 is adding some additional checks on entry
point values, and the hyphen character in `eC-prime` makes it invalid.
Just convert it to an underscore instead.
@LeroyR
LeroyR merged commit ab33c60 into CentralLabFacilities:master Jun 25, 2026
44 checks passed
@codecov-commenter

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants