Tx-XMPP 0.12 has beaking change in `discoFeature.identities` because it now supports `xml:lang` attribute, so this update implies updating the code everywhere were this is used.
213 lines
5.4 KiB
TOML
213 lines
5.4 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",
|
|
"emoji ~= 2.8",
|
|
"html2text < 2020.2",
|
|
"jinja2 >= 3.1.2",
|
|
"langid < 2",
|
|
"lxml",
|
|
"lxml_html_clean >= 0.1.1",
|
|
"markdown >= 3.0",
|
|
"miniupnpc >= 2.3.3",
|
|
"mutagen < 2",
|
|
"oldmemo >= 1.0.0, < 2",
|
|
"omemo >= 1.0.0, < 2",
|
|
"pillow >= 11.3.0",
|
|
"progressbar2 < 3.54",
|
|
"pydantic ~= 2.12",
|
|
"pydantic-settings ~= 2.12",
|
|
"pygments < 3",
|
|
"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",
|
|
"setuptools_scm",
|
|
"shortuuid ~= 1.0.11",
|
|
"sqlalchemy >= 1.4",
|
|
"treq ~= 24.9.0",
|
|
"twisted[tls] >= 22.10",
|
|
"twomemo >= 1.0.0, < 2",
|
|
"txdbus",
|
|
"urwid >= 1.2.0, < 3",
|
|
"urwid-satext",
|
|
"xmlschema < 4.3.1",
|
|
"tx-xmpp>=0.12",
|
|
]
|
|
keywords = [
|
|
"XMPP",
|
|
"chat",
|
|
"instant_messaging",
|
|
"blogging",
|
|
"photo albums",
|
|
"ActivityPub",
|
|
"file sharing",
|
|
"events"
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
SVG = [
|
|
"CairoSVG",
|
|
]
|
|
GUI = [
|
|
"PyQt6"
|
|
]
|
|
TUI = [
|
|
# We have to disable term-image due to bounded pillow constraint, which is
|
|
# incompatible with the minimal version required for Python 3.14
|
|
# "term-image >= 0.7.1"
|
|
]
|
|
webrtc = [
|
|
"pygobject >= 3.48",
|
|
]
|
|
# legacy dependency used in `plugin_misc_ip` but not mandatory, and may cause troubles
|
|
# during isntallation. Will be removed in future.
|
|
netifaces = [
|
|
"netifaces < 0.12",
|
|
]
|
|
remote-control = [
|
|
"libervia-backend[webrtc]",
|
|
"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",
|
|
]
|
|
|
|
# Main features for a good experience
|
|
main = [
|
|
"libervia-backend[tor]",
|
|
"libervia-backend[ox]",
|
|
"libervia-backend[tui]"
|
|
]
|
|
|
|
# All features
|
|
all = [
|
|
# Only used by desktop-kivy so far
|
|
"libervia-backend[SVG]",
|
|
# Needs Qt
|
|
"libervia-backend[GUI]",
|
|
# Only used for (real) images in terminal.
|
|
"libervia-backend[TUI]",
|
|
# Necessary for A/V calls and webRTC based file transfer in local frontends
|
|
# (i.e.; everything but web).
|
|
"libervia-backend[webrtc]",
|
|
# Following 2 are experimental
|
|
"libervia-backend[remote-control]",
|
|
"libervia-backend[conferences]",
|
|
# Needs the Tor daémon
|
|
"libervia-backend[tor]",
|
|
# Used in isolated environment (on system packages, official GPGME Python binding
|
|
# should be used).
|
|
"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]
|
|
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
|