Skip to content

Conversation

@oysstu
Copy link
Contributor

@oysstu oysstu commented Sep 29, 2024

This PR contains a simple workflow to generate and release a cache from each pushed tag. This would make targeting specific snapshots using rosdep and rosinstall_generator more convenient. The compressed archive is fairly small and does not take long to generate since it bases it off the current index cache.

Let me know if this makes sense to have running and if any changes are needed.

Co-authored-by: Tomoya Fujita <[email protected]>
@tfoote
Copy link
Member

tfoote commented Oct 2, 2024

Overall doing this to have the cache items with the tags sounds interesting. The tools were designed to work without a cache being necessary but they will be much slower. What do you use for configuring the tools to find the release artifacts?

@oysstu
Copy link
Contributor Author

oysstu commented Oct 3, 2024

Overall doing this to have the cache items with the tags sounds interesting. The tools were designed to work without a cache being necessary but they will be much slower. What do you use for configuring the tools to find the release artifacts?

Not sure I understand the question. Are you referring to the release artifacts output by this workflow? They should be available at the following url (if using bash).

<repo>/releases/download/${TAG}/${TAG%%/*}-${TAG#*/}-cache.yaml.gz

I've been rosinstall_generator by modifying the cache url in index-v4.yaml and setting ROSDISTRO_INDEX_URL. If I check out this repository at a specified tag and leave the cache url unmodified, it will output the wrong versions (e.g. jazzy/2024-05-23 should generate rosbag2 with version 0.26.3, but it outputs 0.26.5). I just realized that this behavior is probably a bug in rosintall_generator.

@cottsay cottsay added the persistent Issue/PR won't be marked as stale if inactive for a while. label Oct 8, 2024
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for sending a pull request to ROS distro!

This is an automated tool that helps check your pull request for correctness.
This tool checks a number of attributes associated with your ROS package and generates a report that helps our reviewers merge your pull request in a timely fashion. Here are a few things to consider when sending adding or updating a package to ROS Distro.
ROS Distro includes a very helpful CONTRIBUTING.md file that we recommend reading if it is your first time submitting a package.
Please also read the ROS Distro review guidelines which summarizes this release process.

ROS Distro Considerations

Package Considerations

Having your package included in a ROS Distro is a badge of quality, and we recommend that package developers strive to create packages of the highest quality. We recommend package developers review the following resources before submitting their package.

Need Help?

Please post your questions to Robotics Stack Exchange or refer to the #infra-help channel on our Discord server.


For changes related to yamllint:

  • ✅ All new lines of YAML pass linter checks

@mjcarroll
Copy link
Member

@tfoote @cottsay @oysstu What's the status here?

@oysstu
Copy link
Contributor Author

oysstu commented Aug 14, 2025

Looking back at this, I was thrown off a bit by rosinstall_generator returning the latest release even if ROSDISTRO_INDEX_URL pointed to a local checkout of a previous tag.

That aside, the benefit to this CI workflow is that the cache can be used to quickly resolve dependencies of packages at a given tag/release, since it includes a snapshot of the package.xml. The information is still available though, but has to be grabbed from the respective gbp release tags.

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

Labels

persistent Issue/PR won't be marked as stale if inactive for a while.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants