install: move to uv:

`uv` is now used as the main project management tool. `hatchling` is
currently kept as the build system due to the use of its dynamic
versioning feature and to make the transition easier.

Most fields used are standardised and should work with all modern
packaging tools.

Add `uv.lock` to the repository, as versioning this file is recommended.
This commit is contained in:
Goffi 2026-03-09 16:22:37 +01:00
commit 0d57c1bbed
2 changed files with 2455 additions and 29 deletions

View file

@ -53,7 +53,7 @@ dependencies = [
"python-xlib ~= 0.33",
"prompt_toolkit ~= 3.0",
"rich ~= 13.5",
"sat_tmp @ hg+https://repos.goffi.org/sat_tmp#egg=sat_tmp",
"sat-tmp",
"setuptools_scm",
"shortuuid ~= 1.0.11",
"sqlalchemy >= 1.4",
@ -65,9 +65,9 @@ dependencies = [
"twomemo >= 1.0.0, < 2",
"txdbus",
"urwid >= 1.2.0, < 3",
"urwid-satext @ hg+https://repos.goffi.org/urwid-satext#egg=urwid-satext",
"urwid-satext",
"wokkel >= 18.0.0, < 19.0.0",
"xmlschema",
"xmlschema < 4.3.1",
]
keywords = [
"XMPP",
@ -99,6 +99,30 @@ conferences = [
tor = [
"txtorcon ~= 24.8.0"
]
ox = [
# Use when virtual environment is isolated from system package. Otherwise, official
# GPGME python bidings are used.
"python-gnupg>=0.5.6",
]
# All features
all = [
"libervia-backend[SVG]",
"libervia-backend[GUI]",
"libervia-backend[TUI]",
"libervia-backend[remote-control]",
"libervia-backend[conferences]",
"libervia-backend[tor]",
"libervia-backend[ox]"
]
[dependency-groups]
dev = [
{include-group = "debugging"},
{include-group = "tests"},
{include-group = "docs"},
]
debugging = [
"ipdb", "pudb"
@ -115,30 +139,17 @@ docs = [
"autodoc_pydantic ~= 2.2"
]
dev = [
"libervia-backend[debugging]",
"libervia-backend[tests]",
"libervia-backend[docs]",
]
# All features but dev ones
all = [
"libervia-backend[SVG]",
"libervia-backend[GUI]",
"libervia-backend[TUI]",
"libervia-backend[remote-control]",
"libervia-backend[conferences]",
"libervia-backend[tor]"
]
[project.scripts]
# Legacy name, will be removed in future version
jp = "libervia.cli.base:LiberviaCli.run"
li = "libervia.cli.base:LiberviaCli.run"
libervia-backend = "libervia.backend.core.launcher:Launcher.run"
libervia-cli = "libervia.cli.base:LiberviaCli.run"
libervia-tui = "libervia.tui.base:LiberviaTUIApp.run"
# Legacy name, will be removed in future version
primitivus = "libervia.tui.base:LiberviaTUIApp.run"
# Legacy name, will be removed in future version
sat = "libervia.backend.core.launcher:Launcher.run"
[project.urls]
@ -150,21 +161,15 @@ Roadmap = "https://libervia.org/roadmap"
[tool.hatch.build.targets.wheel]
packages = ["libervia", "twisted"]
[tool.hatch.envs.default]
# we need system-package for GPG
system-packages = true
features = ["all"]
[tool.hatch.envs.dev]
dependencies = [
"libervia-backend[dev]",
]
[tool.pytest.ini_options]
# We need to use AsyncIO reactor with pytest-twisted, otherwise AsyncIO calls like for
# memory.sqla can't be done.
addopts = "--reactor asyncio"
[tool.uv.sources]
sat-tmp = { url = "https://repos.goffi.org/sat_tmp/archive/tip.tar.bz2" }
urwid-satext = { url = "https://repos.goffi.org/urwid-satext/archive/tip.tar.bz2" }
[tool.hatch.version]
path = "libervia/backend/__init__.py"

2421
uv.lock generated Normal file

File diff suppressed because it is too large Load diff