Open secustor opened 1 year ago
Did you read our documentation on adding a package manager?
rye
, but might be supported by existing pep621
manager, see discussion
Python
7,3k stars in a few month, it had a huge community response.
pyproject.toml
for dependenciesrequirements.lock
and requirements-dev.lock
Something like ['pyproject.toml', 'requirements(-dev)?.lock']
[ ] Yes
[x] No
The tool is pretty opiniated, for now the lock file pathes are hardcoded
I don't think so
No
No
[ ] JSON
[x] TOML
[ ] YAML
[x] Custom (explain below)
lock file are custom text files, close to requirements.txt
generated by pip
pep621
manager for pyproject.tomlrequirements.txt
manager for renovateIt follows [PEP 440](https://peps.python.org/pep-0440/)
For prod dependencies, in pyproject.toml
. Exemple
dependencies = [
"fastapi>=0.103.2",
"uvicorn>=0.23.2",
"loguru>=0.7.2",
"requests>=2.31.0",
"python-engineio>=4.8.0",
"pydantic>=2.4.2",
]
For dev dependencies in pyproject.toml
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=7.4.2",
"black>=23.9.1",
"ruff>=0.0.292",
"isort>=5.12.0",
"pytest-asyncio>=0.21.1",
"pytest-cov>=4.1.0",
"pytest-mock>=3.11.1",
"pyright>=1.1.331",
"httpx>=0.25.0",
]
For lock-files, in requirements.lock
and requirements-dev.lock
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
-e file:.
annotated-types==0.6.0
anyio==3.7.1
certifi==2023.7.22
[pep440](https://peps.python.org/pep-0440/)
^1.0.0
or 1.x
?^1.0.0
or 1.x
)[ ] Yes, provide details.
[x] No.
Using existing pip solution
Yes, see [documentation](https://rye-up.com/guide/sources/)
It could be located directly in the repo in the pyproject.toml
as such:
[[tool.rye.sources]]
name = "company-internal"
url = "https://company.internal/simple/"
[[tool.rye.sources]]
name = "company-internal"
url = "https://company.internal/simple/"
type = "index" # this is implied
Or in a global config file ~/.rye/config.toml
, which can simply be configured using exiting pep621
datasource
There is also a support for environment variables in this global file, but it should be configured trough Renovate configuration I think
[[sources]]
name = "company-internal"
url = "https://${INDEX_USERNAME}:${INDEX_PASSWORD}@company.internal/simple/"
Don't think so, it is builded in rust and seems to support major platforms.
Eventually the version of the tool, since it is pretty much in beta
Yes they are used
Not mandatory but strongly encourage, rye
will recreate one if necessary.
rye lock --update <package-name>
You can only update one at a time with this commande
You can update all with rye lock --update-all
While the [maintainer has opinions](https://rye-up.com/philosophy/#metadata-caches) about it, there is no cache for now [it seems](https://github.com/mitsuhiko/rye/issues/456).
rye lock
N/A
The implementation for should be pretty similar to PDM and needs code changes here at Renovate and ContainerBase:
Pinging @dixneuf19 so I can assign them to the issue.
addind rye
to containerbase
should be easy, see pdm
sample
I'll soon add a install-pip
command, like install-npm
and install-gem
, so we don't need to add new pip based tools to containerbase when required.
Discussed in https://github.com/renovatebot/renovate/discussions/25225