Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This migrates CI, readthedocs, and eventually the build documentation to use uv.
uv should have a better experience for both experienced devs and newcomers. The current documented build process has users installing packages globally, which is prone to package conflicts. It also uses poetry only for dependency resolution and a separate step to generate the requirements.txt for readthedocs. Using uv for everything makes building easy - after installing uv,
uv run make htmlwill install dependencies into a local venv and build like normal, and dependencies can be managed directly through pyproject.toml. uv will also automatically download and use a compatible python version if the local install is not compatible with the project. I've kept my system python at 3.12 because frc-docs needed it to build; with this that isn't necessary.This isn't 100% done, I wanted to open this and see if this was something we'd be willing to do.
Readthedocs documents using uv to install build dependencies. I've also tested it and it looks to be working fine: https://app.readthedocs.org/projects/rzblue-frc-docs/builds/
I've migrated the lockfile using
migrate-to-uv, and generated a new requirements.txt. once hashes and comments are removed and contents sorted, the old and new files are line-for-line identical save for a one-line difference that doesn't change behavior (poetry includesfonttoolsandfonttools[woff]as well as their dependencies, while uv just resolvesfonttools[woff]'s extra dependencies). I've also added a CI job to generate and make sure it's up to date.I'd also like to make corresponding updates to frc-docs-translations for consistency and to eventually remove the requirements.txt. In order to do that without needing to merge PRs in lockstep, I've left the requirements.txt in this repo for the time being. Once this is merged, a PR can be made to -translations, and after that is merged, requirements.txt can be removed.
This also updates everything to ubuntu 24.04.