-
Notifications
You must be signed in to change notification settings - Fork 22
feat: migrate to uv and use nu shell #306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Technically requirements.txt is not used by
|
resolves #305
reusable workflow does not use uv (yet)
We might remove requirements.txt by installing action deps by |
cpp-linter-action/.readthedocs.yaml Line 19 in 659d314
https://docs.readthedocs.com/platform/stable/build-customization.html#id15 Here also support |
If existing requirements.txt could be replaced by pyproject.toml file, that would be great! |
I had no idea this was supported. I need to investigate what version of pip introduced this option.
I often forget about updating RTD config. Nice catch! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I found a way to prevent adding env:
UV_NO_MODIFY_PATH: 1 Using UV in action.yml can also make caching the venv (and action deps) rather easy. This would also resolve #234 . We also wouldn't require runners to have python installed because I'm a bit distracted right now. I'll pick this up later. |
💯 No rush |
Cpp-Linter Report
|
includes doc'd `minimum-version` for the new input option
I looked at the source for hustcer/setup-nu, and it does exactly what I would have to do manually:
Fortunately, hustcer/setup-nu already does steps 1-3. It also adds the downloaded asset to somewhere in PATH, so step 4 is not really needed. If the user's workflow already uses a version of nushell, then we may have a conflict on our hands. However, nu shell doesn't seem widely used because it is still in v0.x. I'll just have to keep updating the pinned version of nushell here: Lines 254 to 256 in 86d4fb5
|
I forgot to review the README. A follow up PR is coming. |
follow-up to #306 Python is no longer required to be installed on the runner anymore. `uv sync` will automatically download the latest supported stable version of Python.
follow-up to #306 Python is no longer required to be installed on the runner anymore. `uv sync` will automatically download the latest supported stable version of Python.
Why not set |
Back when we did that, we got bug reports from people using a windows runner (probably self-hosted) that didn't have bash available (at least not in PATH). Only GithHub's windows runners have bash guaranteed to be available. That is what caused us to start writing duplicate steps in each native shell, which is not very sustainable. |
|
|
I'd recommend using the official runner images as sys reqs for your action, everyone using self-hosted runners should be capable of adding git bash to the path properly. You are in the good situation to have such a nice baseline, so make use of it! (on the contrary in Arrow we have ~250 nightly jobs to ensure compatibility... 😓) |
This is not up to us. We try to support whatever users throw at us. The real problem here is that the C/C++ language itself never adopted a package manager nor build system. So, running static analysis is a very hairy situation in this project's scope; people end up using very different workflows that are often specifically tailored to their project(s).
I understand. We pinned the action using the tagged commit's SHA in an effort to avoid security concerns. Again, I personally reviewed the source of the |
resolves #305
closes #234
This uses dependabot's newer option to combine multiple package ecosystems into 1 group. This means that updates to uv.lock, pyproject.toml, and **/requirements.txt should be submitted in 1 PR.
uv
requires pyproject.toml to specify dependency groups. The specified[project]
in pyproject.toml shall be considered "virtual" because nobuild-backend
is specified.Install all dependencies as before with
uv
:Summary by CodeRabbit
New Features
Documentation
Chores