`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.
193 lines
4.9 KiB
TOML
193 lines
4.9 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "libervia-backend"
|
|
dynamic = ["version"]
|
|
description = "Libervia: A feature-rich XMPP client showcasing diverse frontends, uniting instant messaging, blogging, file sharing, and ActivityPub-XMPP interactions seamlessly."
|
|
readme = "README.md"
|
|
license = "AGPL-3.0-or-later"
|
|
requires-python = ">=3.11"
|
|
authors = [
|
|
{ name = "Libervia Dev Team", email = "contact@goffi.org" },
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Environment :: Console",
|
|
"Framework :: Twisted",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Topic :: Communications :: Chat",
|
|
"Topic :: Internet :: XMPP"
|
|
]
|
|
dependencies = [
|
|
"aiosqlite",
|
|
"alembic",
|
|
"babel < 3",
|
|
"cryptography >= 41.0.1",
|
|
"dbus-python < 1.3",
|
|
"emoji ~= 2.8",
|
|
"html2text < 2020.2",
|
|
"jinja2 >= 3.1.2",
|
|
"langid < 2",
|
|
"lxml ~= 5.2",
|
|
"lxml_html_clean >= 0.1.1",
|
|
"markdown >= 3.0",
|
|
"miniupnpc < 2.1",
|
|
"mutagen < 2",
|
|
"netifaces < 0.12",
|
|
"oldmemo >= 1.0.0, < 2",
|
|
"omemo >= 1.0.0, < 2",
|
|
"pillow >= 6.0.0",
|
|
"progressbar2 < 3.54",
|
|
"pydantic ~= 2.12",
|
|
"pydantic-settings ~= 2.12",
|
|
"pygments < 3",
|
|
"pygobject ~= 3.48",
|
|
"pyopenssl ~= 24.1",
|
|
"python-dateutil >= 2.8.1, < 3",
|
|
# currently disabled due to incompatibility, OTR feature may be removed in
|
|
# the close future
|
|
# "python-potr < 1.1",
|
|
"pyyaml < 7.0.0",
|
|
"python-xlib ~= 0.33",
|
|
"prompt_toolkit ~= 3.0",
|
|
"rich ~= 13.5",
|
|
"sat-tmp",
|
|
"setuptools_scm",
|
|
"shortuuid ~= 1.0.11",
|
|
"sqlalchemy >= 1.4",
|
|
"treq ~= 24.9.0",
|
|
# We have to restrict to a version < 24.11.0 due to Wokkel being unmaintained (it
|
|
# depends on twisted.python.constants which has been removed). This is temporary until
|
|
# a solution is found for Wokkel.
|
|
"twisted[tls] >= 22.10, < 24.11.0",
|
|
"twomemo >= 1.0.0, < 2",
|
|
"txdbus",
|
|
"urwid >= 1.2.0, < 3",
|
|
"urwid-satext",
|
|
"wokkel >= 18.0.0, < 19.0.0",
|
|
"xmlschema < 4.3.1",
|
|
]
|
|
keywords = [
|
|
"XMPP",
|
|
"chat",
|
|
"instant_messaging",
|
|
"blogging",
|
|
"photo albums",
|
|
"ActivityPub",
|
|
"file sharing",
|
|
"events"
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
SVG = [
|
|
"CairoSVG",
|
|
]
|
|
GUI = [
|
|
"PyQt6"
|
|
]
|
|
TUI = [
|
|
"term-image ~= 0.7.1"
|
|
]
|
|
remote-control = [
|
|
"cbor2"
|
|
]
|
|
conferences = [
|
|
"autobahn ~= 23.6"
|
|
]
|
|
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"
|
|
]
|
|
|
|
tests = [
|
|
"pytest ~= 9.0",
|
|
"pytest-twisted",
|
|
"aiosmtpd"
|
|
]
|
|
|
|
docs = [
|
|
"sphinx ~= 9.0",
|
|
"autodoc_pydantic ~= 2.2"
|
|
]
|
|
|
|
|
|
[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]
|
|
Homepage = "https://libervia.org"
|
|
Documentation = "https://libervia.org/documentation"
|
|
Repository = "https://repos.goffi.org/libervia-backend/"
|
|
Roadmap = "https://libervia.org/roadmap"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["libervia", "twisted"]
|
|
|
|
[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"
|
|
|
|
[tool.hatch.build]
|
|
artifacts = [
|
|
"*.ini",
|
|
"*.yaml"
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel.shared-data]
|
|
"i18n/fr/LC_MESSAGES/libervia_backend.mo" = "share/locale/fr/LC_MESSAGES/libervia_backend.mo"
|
|
CHANGELOG = "share/doc/libervia-backend/CHANGELOG"
|
|
COPYING = "share/doc/libervia-backend/COPYING"
|
|
INSTALL = "share/doc/libervia-backend/INSTALL"
|
|
README = "share/doc/libervia-backend/README"
|
|
README4TRANSLATORS = "share/doc/libervia-backend/README4TRANSLATORS"
|
|
"misc/org.libervia.Libervia.service" = "share/dbus-1/services/org.libervia.Libervia.service"
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|