Commit graph libervia-backend/pyproject.toml
Author SHA1 Message Date
Goffi
831f1ad78b install: add libp2p and zeroconf dependencies for the new serverless extra:
`libp2p` will used for implementing serverless features, `zeroconf` for LAN discovery.
Lock file has been updated.

Note: `libp2p` is currently not compatible with Python 3.14 (cf.
https://github.com/libp2p/py-libp2p/issues/1100 )

rel 479
2026-07-17 23:27:47 +02:00
Goffi
8b095c1989 install: tx-xmpp dependency update:
New version of `tx-xmpp` will be needed to properly generate XEP-0115 hash.

rel 486
2026-06-08 10:44:53 +02:00
Goffi
7ecd4d8a87 install: Change urwid-satext source URL:
`uv` starts complaining about `tar.bz2` archive, so `tar.gz` is now used for
`urwid-satext`.
2026-06-08 10:44:32 +02:00
Goffi
7c8fae5703 dependencies: update Tx-XMPP to v0.14:
This version fixes upstream the empty subject bug, and handle nickname changes.
2026-04-24 17:48:00 +02:00
Goffi
fd58b78762 core, dependencies: update Tx-XMPP to v0.13.0:
`DiscoFeature.identities` format has evolved so `(category, map)` can be checked directly
again. The code using identities has been updated.
2026-04-21 12:49:30 +02:00
Goffi
f6db575ee4 core, dependencies: Update Tx-XMPP to 0.12:
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.
2026-04-17 17:26:54 +02:00
Goffi
ec2cf0a522 core, dependencies: make Libervia compatible with Python 3.14:
- work around a deprecated behaviour in `asyncio.get_event_loop` until the fix is
  integrated in a released Twisted.
- update dependencies to have versions compatible with Python 3.14
- disable `term-image` which is bounded to incompatible Pillow version. It is unmaintained
  for 1 year, and will probably be removed soon in favor of `textual-image`.
2026-04-16 21:47:36 +02:00
Goffi
51776603e0 depdencies, core: update Tx-XMPP to be version >= 10.0:
This version changes the package name, so all `wokkel` imports habe been replaced by
`tx_xmpp`
2026-03-24 16:42:27 +01:00
Goffi
9fb5912567 install (dependencies): use tx-xmpp from PyPI 2026-03-22 13:18:00 +01:00
Goffi
78d72304d5 core: bye bye sat_tmp :)
After 11 years of "temporary" monkey patches, I've finally made a friendly fork of Wokkel
at https://www.goffi.org/forge/goffi/tx-xmpp with all needed PRs merged and changes from
`sat_tmp`, using the same license as Wokkel (with agreement from contributors). No more
monkey patching, and it will also stop the deprecation warning due to outdated packages
used in Wokkel. Last but not least, it should unblock the move to the latest Twisted and
Python versions.
2026-03-20 18:32:36 +01:00
Goffi
1cf75f1126 install (dependencies): update miniupnpc and make netifaces optional:
- update `miniupnpc` as latest version have proper wheels, making installation easier.
- `netifaces` is not maintained anymore, and only used optionally in one plugin
  (plugin_misc_ip). It cause troubles during installation because it needs do be build.
  This patch make it optional, and it will probably be removed in the future.
2026-03-13 13:01:03 +01:00
Goffi
c9211fb270 install (pyproject): Remove dbus-python and make pygobject optional:
`dbus-python` is no longer used since the D-Bus bridge is now fully based on txdbus.

As a consequence, `pygobject` is no longer necessary for base features, but still
necessary for webRTC-based features (as we are using GStreamer). Making it optional makes
the installation far easier, as the GLib parts often cause trouble during installation
(mainly because they need local libraries).
2026-03-13 12:08:29 +01:00
Goffi
99377fadfc install (pyproject): add a main extra to install essential packages:
`all` install everything, `main` only the essential ones.
Also add some comments to explain what the groups are for.
2026-03-13 10:27:51 +01:00
Goffi
0d57c1bbed 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.
2026-03-10 09:43:04 +01:00
Goffi
a8ef17c5f8 doc(tor, cli/info): Add documentation on Tor feature:
- Add `autodoc_pydantic` dependency for `docs`, it renders nicely Pydantic models,
  including the settings.
- Add documentation for `li info tor`
- Add a dedicated section on Tor

fix 473
2025-12-15 11:44:26 +01:00
Goffi
c5396f0acf backend: Tor integration:
- Add the `txtorcon` optional dependency, used with `tor` extra.
- Add settings for Tor.
- Use Tor endpoint when an `.onion` XMPP domain is used, of when Tor is explicitely
  enabled in conf.
- Disable WebRTC, for now it's the safer option as WebRTC can leak IP. It should be
  possible to use it over Tor by forcing the use of a .onion relay, but this is to be
  explored later (A/V should be to slow to be usable, but that stay relevant for file
  transfer or other WebRTC powered things).
- A new `treq` instance using Tor WebAgent is used when Tor is enabled. Properties has
  been added to SatXMPPEntity to conveniently get the right instance.
- Another `tor_mode` property has been added with corresponding bridge methods, to see if
  Tor is activated and in which mode for a given profile. For now there are only two modes
  (disabled, and enabled with WebRTC disabled), but in the future it may be possible to
  activate WebRTC over Tor, or to use Tor only to connect to XMPP server, while using
  clearnet for other connections.
- Tor dedicated models have been added, and bridge methods have been added to build and
  get them.
- Fix tests.

rel 473
2025-12-15 11:35:19 +01:00
Goffi
6a7b7bc36a core: Replace legacy INI config system with Pydantic-based TOML configuration.
This is a huge configuration refactoring.

The configuration system now uses Pydantic settings, with better validation, better
support for environment variables and other goodies.

The main config files now use TOML instead of INI, this allow for better handling of
complex types, notably dict.

Plugins, components and frontends can declare their config settings in a class which will
be imported dynamically.
2025-11-30 12:27:35 +01:00
Goffi
a37101adc7 install [pyproject.toml]: update treq version. 2025-10-01 16:07:51 +02:00
Goffi
acd46d1bf8 install [pyproject.toml]: restrict Twisted maximum version. 2025-10-01 15:50:00 +02:00
Goffi
14f50afa64 tests (unit/sqla): Add test for keyword filtering:
rel 458
2025-06-06 10:45:54 +02:00
Goffi
80ec968740 plugin XEP-0131: Stanza Headers and Internet Metadata implementation:
- SHIM is now supported and put in `msg_data["extra"]["headers"]`.
- `Keywords` are converted from and to list of string in `msg_data["extra"]["keywords"]`
field (if present in headers on message sending, values are merged).
- Python minimal version upgraded to 3.11 due to use of `StrEnum`.

rel 451
2024-09-28 15:56:04 +02:00
Goffi
ba170701f0 component Conferences: implementation of SFU component to make multi-party A/V conferences:
This component wrap `Galène` SFU and translate its signaling to XMPP Jingle in both
direction.

rel 445
2024-07-05 17:18:37 +02:00
Goffi
b259137603 frontends: remote control implementation:
This is the frontends common part of remote control implementation. It handle the creation
of WebRTC session, and management of inputs. For now the reception use freedesktop.org
Desktop portal, and works mostly with Wayland based Desktop Environments.

rel 436
2024-05-11 13:52:43 +02:00
Goffi
5bf34b4744 core: update pygobject version and replace deprecated configparser.SafeConfigParser 2024-05-11 13:16:13 +02:00
Goffi
6634c917bd install (pyproject): update lxml and add lxml_html_clean which is now a separate project. 2024-04-06 15:04:07 +02:00
Goffi
430f2d9354 cli (call): tui output implementation:
- Moved original UI to a separated class, and use if with the `simple` output
- By default, best output is automatically selected. For now `gui` is selected if possible,
  and `simple` is used as fallback.
- The new `tui` output can be used to have the videos directly embedded in the terminal,
  either with real videos for compatible terminal emulators, or with Unicode blocks.
- Text contrôls are used for both `simple` and `tui` outputs
- several options can be used with `--oo` (will be documented in next commit).

rel 428
2024-02-16 18:46:06 +01:00
Goffi
3fecc07a7e frontends (tools): module to handle display servers:
rel 433
2024-01-16 10:41:58 +01:00
Goffi
2b501c70d7 plugin XEP-0444: complete implementation:
"Message Reactions" implementation is now working and updating history. The
`message_reactions_set` bridge method can be used by frontend to `replace`, `add`,
`remove` or `toggle` reactions. History is properly updated, and signal are sent when
necessary.
2023-11-22 15:10:04 +01:00
Goffi
5f826f0505 core: introduce Pydantic based models in libervia.backend.models.core 2023-11-22 14:31:05 +01:00
Goffi
934450168a cli: call command:
This command has 2 subcommands: `make` and `receive` to make a new call or wait for one.
When call is in progress, a window will be created to show incoming stream and local
feedback, and a text UI is available to (un)mute audio or video, and hang up.

rel 426
2023-11-01 14:10:00 +01:00
Goffi
a57624cba6 install: add test dependencies to dev env 2023-11-01 13:57:08 +01:00
Goffi
ab7a7832c2 install: add rich dependency 2023-10-16 17:37:11 +02:00
Goffi
adfb02505d install: bump minimum python version 2023-06-30 15:10:05 +02:00
Goffi
eae0e4958e build: explicitely set packages so doc is not accidentaly included 2023-06-08 21:30:57 +02:00
Goffi
edbd8466f3 build: add missing .ini and .yaml files in all build, needed for wheel 2023-06-07 22:31:20 +02:00
Goffi
918eb05907 build: create a dev env with debugging tools 2023-06-07 22:25:49 +02:00
Goffi
7c6a675435 installation: moved from setup.py to pyproject.toml:
- updated installation to use the now standard `pyproject.toml` instead of legacy
`setup.py`. `setup.py` and other legacy files have been deleted.
- removed outdated README4PACKAGERS
- removed pylintrc which has not been correctly reviewed. Linter conf should go to
  `pyproject.toml` now.
- [hatch](https://hatch.pypa.io) is now used as main building tool. However, thanks to the
use of standards, other tools can be used too.
- update .hgignore
- several dependencies version bump, with code update to adapt to changes.
2023-06-06 16:45:16 +02:00