jo
f394336efc
chore: move isort config to pyproject.toml
2022-12-07 15:59:52 +02:00
jo
5738edb49c
chore: split test and coverage tasks
2022-12-07 15:59:52 +02:00
Jonas L
696666475c
fix: remove systemd ProtectHome feature ( #2244 )
...
Fix #2242
2022-10-19 12:37:39 +02:00
Jonas L
959c0378d6
fix: remove systemd ProtectHome feature ( #2243 )
...
Fix #2242
2022-10-19 12:27:02 +02:00
Jonas L
7f4ce865d4
docs(playout): add simple inputs pipeline schema ( #2240 )
2022-10-17 11:57:08 +02:00
Jonas L
730548b891
test: liquidsoap package from ppa is version 1.4.2 ( #2233 )
...
The PPA was previously not properly installed in the dev container.
Partial cherry-pick from 499f4d37ed
2022-10-12 16:16:47 +02:00
jo
4ada25a3ff
fix(playout): add types
...
This reverts commit d6348d5575
.
2022-10-11 09:28:52 +02:00
jo
0e1dfaa9ff
refactor: upgrade code to Python 3.8
2022-10-11 09:28:52 +02:00
jo
ea8131ec43
feat: drop Python 3.7 support
2022-10-10 23:49:10 +02:00
jo
182d1616af
chore: add snapshot target
2022-10-10 23:29:21 +02:00
jo
1742890370
fix(playout): remove outdated liquidsoap code
...
Fixes #1482
2022-10-10 23:29:21 +02:00
Jonas L
499f4d37ed
test: liquidsoap package from ppa is version 1.4.2 ( #2223 )
...
The PPA was previously not properly installed in the dev container.
2022-10-10 21:14:41 +02:00
jo
5817750b62
feat: drop Liquidsoap 1.3 support
2022-10-10 20:11:33 +02:00
jo
ace9365e92
feat: drop Liquidsoap 1.1 support
2022-10-10 20:11:33 +02:00
jo
7d514a9306
chore: list distribution releases by release date
...
Old releases should be popped from the left/top and new releases should be added to the right/bottom of any distro release list.
2022-10-10 20:11:33 +02:00
jo
5eda6093f4
feat: drop Debian Buster support
...
Fixes #2036
2022-10-10 20:11:33 +02:00
jo
d29d837d01
feat: drop Python 3.6 support
2022-10-10 20:11:33 +02:00
jo
448cff7600
feat: drop Ubuntu Bionic support
...
Fixes #2035
2022-10-10 20:11:33 +02:00
Jonas L
96ded62c32
chore: release 3.0.0 ( #2216 )
2022-10-10 17:51:15 +02:00
renovate[bot]
019b4686ae
chore(deps): update dependency mutagen to >=1.45.1,<1.47
2022-10-10 12:21:55 +02:00
jo
04490676f6
chore: release 3.0.0-beta.2
2022-10-03 12:43:38 +02:00
Jonas L
c9bc3a1298
feat: extra systemd service hardening ( #2197 )
2022-09-27 13:17:43 +02:00
Jonas L
4c18cf5ef2
feat: systemd service hardening ( #2186 )
2022-09-27 11:51:17 +02:00
Jonas L
956d19ec95
fix: start playout service after liquidsoap ( #2164 )
...
Do not set a hard requirement on the service, only define the startup order.
2022-09-26 13:20:11 +02:00
jo
ddae3202cc
chore: release 3.0.0-beta.1
2022-09-23 13:41:14 +02:00
jo
bdc2e92454
chore: release 3.0.0-beta.0
2022-09-16 16:32:00 +02:00
jo
a79980e65f
feat(playout): move message handling to main thread
2022-09-16 13:16:06 +02:00
jo
b1c2e34ceb
fix(playout): remove shutdown_handler
2022-09-16 13:16:06 +02:00
jo
64b3d164c9
refactor(playout): move daemon flag to thread class
2022-09-16 12:33:44 +02:00
jo
d79cf00800
chore(playout): add types-backports dependency
2022-09-16 12:33:44 +02:00
Jonas L
45a131b668
chore: update outdated readmes ( #2131 )
2022-09-12 20:45:37 +02:00
jo
2afb766b41
chore: outdated python packages versions
2022-09-12 10:48:43 +02:00
Jonas L
36264ed4a5
test(playout): use snapshot testing tool ( #2115 )
2022-09-09 16:57:22 +02:00
Jonas L
03902f6aef
fix(playout): also shutdown on SIGTERM ( #2104 )
2022-09-08 12:41:56 +02:00
Jonas L
8b5749ec98
ci: build test images for debian bookworm ( #2097 )
2022-09-07 23:17:46 +02:00
Jonas L
ef1de34111
fix(playout): missing live show events ( #2087 )
2022-09-06 14:09:04 +02:00
jo
37b8b17ed3
feat(playout): allow liquidsoap listen address configuration
2022-09-06 13:21:54 +02:00
jo
c8cb100645
feat(playout): liquidsoap boostrap using new api endpoints
2022-09-06 13:21:54 +02:00
jo
2fa045a8ef
feat(playout): remove stream_setting update handler
2022-09-06 13:21:54 +02:00
jo
f5a83dbabb
feat(playout): allow updating message_offline value
2022-09-06 13:21:54 +02:00
jo
314c70a208
feat(playout): stats collector using stream config
2022-09-06 13:21:54 +02:00
jo
b9368d1b7b
feat(playout): build liquidsoap entrypoint with stream config
2022-09-06 13:21:54 +02:00
Jonas L
510d55c7c1
feat(playout): improve generate_*_events ( #2088 )
2022-09-05 18:41:04 +02:00
jo
9b40885d9f
fix(playout): py39 compatibility zoneinfo import
2022-09-01 19:17:33 +02:00
jo
d6348d5575
fix(playout): py36 compatibility broken typings
...
This partially reverts commit 5505222df6
.
2022-09-01 19:17:33 +02:00
jo
cfcfcc82e4
chore: revert pin setuptools to <64.0.0 for build backend
...
This reverts commit 2bde574487
.
2022-08-25 09:51:36 +02:00
jo
5505222df6
refactor(playout): rename vars and add typing
2022-08-21 16:13:34 +02:00
jo
1d59310156
refactor(playout): simplify legacy api check
2022-08-21 16:13:34 +02:00
jo
a9cd1fb3df
refactor(playout): move liq io to liq_client
2022-08-18 08:36:41 +02:00
jo
fd2381624a
refactor(playout): use vars setter in liq client
2022-08-18 08:36:41 +02:00
jo
da6458caea
feat(playout): integrate new liquisoap client
2022-08-17 13:18:13 +02:00
jo
624a60c4af
feat(playout): create liquidsoap client
2022-08-17 13:18:13 +02:00
jo
3ea085d351
chore: add python docker-* targets
...
This allow testing in a similar context to the github CI.
2022-08-17 13:18:13 +02:00
Jonas L
bddbdf716c
chore(playout): remove unused code ( #2058 )
2022-08-14 19:56:48 +02:00
Jonas L
a730c1b1a4
fix(playout): add thread names ( #2056 )
2022-08-14 19:55:39 +02:00
Jonas L
8897d390e1
fix(playout): use stream download when fetching files ( #2048 )
2022-08-12 15:14:19 +02:00
Jonas L
1147853c63
feat(shared): pass config data via init ( #2042 )
2022-08-12 15:12:39 +02:00
jo
2bde574487
chore: pin setuptools to <64.0.0 for build backend
2022-08-11 22:16:00 +02:00
Jonas L
4019367abc
feat(playout): rewrite stats collector ( #2028 )
...
- Replace defusedxml with lxml
2022-08-09 21:14:19 +02:00
jo
02c16de2ab
chore(playout): add missing requests types
2022-08-09 21:08:29 +02:00
jo
39941b0fd4
chore(playout): add missing python-dateutil dependency
2022-08-09 21:08:29 +02:00
Jonas L
9413bd5a29
refactor(playout): improve exceptions handling ( #2027 )
2022-08-09 21:05:21 +02:00
Jonas L
b465629977
chore: disable pylint logging-fstring-interpolation format ( #2033 )
2022-08-09 20:30:44 +02:00
Jonas L
d95a77655a
fix(playout): replace deprecated harbor.bind_addr ( #2025 )
...
Only for liquidsoap >=1.3.3
2022-08-07 08:50:42 +02:00
jo
406d42323a
feat: move stream stats status to pref table
2022-08-07 08:50:06 +02:00
Jonas L
e408237be1
refactor(playout): remove unused variable ( #2021 )
2022-08-06 07:19:47 +02:00
Jonas L
140cf4427b
test: enable logs when running pytest ( #2008 )
2022-07-31 11:23:27 +02:00
jo
22868ce158
chore: remove chdir in setup.py files
2022-07-27 15:35:57 +02:00
jo
b93e1e5570
chore: install local python deps in editable mode
2022-07-27 15:35:57 +02:00
Jonas L
e97b06496a
feat(api): don't use hyperlinked serializers ( #1984 )
2022-07-27 09:54:57 +02:00
jo
d9725003c5
feat(playout): integrate api-client v2 calls
2022-07-26 15:14:45 +02:00
Jonas L
77f5c9951e
chore: improve setuptools find_packages ( #1985 )
2022-07-25 21:19:41 +02:00
Jonas L
368350b269
feat(playout): use single clients instance ( #1980 )
...
- Use legacy_client across playout code to make the difference between the old and new clients.
- Setup clients during initialization, and pass clients down to the different apps.
2022-07-22 16:26:43 +02:00
jo
473e770e8a
feat: rename AirtimeApiClient to ApiClient
2022-07-22 15:00:38 +02:00
jo
8cb9bd5f32
chore(playout): update api-client imports
2022-07-22 15:00:38 +02:00
jo
71b3f7f065
chore: remove schedule unused independent_event
2022-07-20 12:05:01 +02:00
Jonas L
7e2f2d60f0
chore(playout): restructure modules ( #1971 )
2022-07-18 15:11:47 +02:00
jo
57046e2a9d
chore(api): rename schedule models fields
2022-07-18 00:04:54 +02:00
Jonas L
96af028daa
feat(playout): replace pytz with zoneinfo ( #1969 )
2022-07-17 22:59:49 +02:00
jo
bec5772f8b
chore(playout): update defusedxml version range
2022-07-17 21:25:37 +02:00
jo
f3af8e1163
chore(playout): remove explicit amqplib
2022-07-17 21:25:37 +02:00
jo
30c202786f
chore: update requests version range
2022-07-17 21:25:37 +02:00
jo
f256f9bd10
chore: update mutagen version range
2022-07-17 21:25:37 +02:00
jo
5729b116c0
chore(playout): pin kombu version to 4.6.11
...
This forces to use the same version as the worker.
Previously playout installed kombu>=5.2 and got instanlty
reverted back to 4.6.11 when the worker was installed.
2022-07-17 21:25:37 +02:00
jo
80218f33eb
chore: rewrite extract-requirements to python
...
Using python ast to guess requirements in the setup.py file.
2022-07-17 21:25:37 +02:00
jo
28857fbf49
refactor(playout): remove date_interval_to_seconds function
...
Replace date_interval_to_seconds function with
either timedelta.total_seconds() or seconds_between().
2022-07-17 13:29:03 +02:00
jo
db3f9bed82
chore(playout): remove module docstring
2022-07-17 13:29:03 +02:00
jo
ad5dc6caf8
refactor(playout): log level setup
2022-07-17 13:29:03 +02:00
jo
8ef6784a39
refactor(playout): use pathlib to build the path
2022-07-17 13:29:03 +02:00
jo
2bc7d64cc4
feat(playout): use liquidsoap version functions
...
- remove "packaging" package
2022-07-17 13:29:03 +02:00
jo
58ad40f997
chore(playout): use 'entrypoint' generic module name
2022-07-17 13:29:03 +02:00
jo
bd8b17a2cd
chore(playout): remove unused liquidsoap.cfg
2022-07-17 11:02:36 +02:00
jo
86a9af1bc1
chore(playout): move liquidsoap package in a module
2022-07-17 11:02:36 +02:00
jo
2f205544c2
feat: use dedicated 'libretime' user
...
BREAKING CHANGE: The default `www-data` user has been replaced by a dedicated `libretime` user to run the services. Be sure to change the ownership of the libretime files.
2022-07-07 10:51:07 +02:00
jo
b8056a9f7a
chore(playout): use EventKind enum
2022-07-01 13:16:57 +02:00
jo
97b723d0a5
chore(playout): rename variables
2022-07-01 13:16:57 +02:00
jo
2ad65bba8c
chore(playout): use comments instead of docstrings
2022-07-01 13:16:57 +02:00
jo
fa136fad97
chore: explicit schedule file metadata dict values
2022-07-01 11:07:26 +02:00
jo
34864b8623
chore(playout): update file fields
2022-06-29 13:51:07 +02:00
Jonas L
6ef941b3f2
chore(shared): explicit function name time_fromisoformat ( #1917 )
2022-06-25 17:10:59 +02:00
jo
1faf5a724b
chore: move api client get_schedule to playout
2022-06-24 17:56:24 +02:00
jo
510e978952
feat: add systemd libretime.target
...
- add wanted by
- instantly start services in vagrant
2022-06-08 23:23:08 +02:00
jo
ee98387264
feat(installer): rewrite install script
...
- remove unused root packages.ini
- write config to yaml file
- allow to set public_url during install
- force icecast start right after package install
- move config file in place at the end of installation
BREAKING CHANGE: The bash installer has been rewritten, the flags and
options changed, please run `./install --help` to get more details.
2022-06-08 23:23:08 +02:00
jo
aed6d2f294
feat: change config dir path to /etc/libretime
...
BREAKING: The configuration directory changed from `/etc/airtime` to
`/etc/libretime`. Please rename your configuration directory accordingly.
2022-06-08 23:23:08 +02:00
jo
604ff20239
feat: change config filename to config.yml
...
BREAKING: The configuration file name changed from `airtime.conf` to
`config.yml`. Please rename your configuration file accordingly.
2022-06-08 23:23:08 +02:00
Jonas L
a73084e612
feat(playout): remove unused liquidsoap_prepare_terminate.py ( #1854 )
...
Related to cde6db812f
2022-05-21 18:37:54 +02:00
jo
bc6b43c43c
feat: rotate logs using libretime user
2022-05-05 09:42:34 +02:00
jo
f58e51ec84
fix(playout): disable playout-notify log rotation
...
Let logrotate handle liquidsoap.log log rotation.
Fix #1546
2022-05-05 09:42:34 +02:00
Jonas L
d098671f3b
feat: replace click envar with auto_envvar_prefix ( #1829 )
2022-05-05 09:41:32 +02:00
Jonas L
5f4badcdeb
ci: build test images for ubuntu jammy ( #1743 )
2022-04-09 16:18:12 +02:00
Jonas L
fef38fb131
chore: rename api_client to api-client ( #1727 )
2022-04-04 10:25:38 +02:00
Jonas L
8c96c0a094
feat: remove unused python3-venv package ( #1728 )
2022-04-02 05:41:43 +02:00
Jonas L
331df277b4
docs: fix and update links ( #1714 )
2022-03-29 13:07:38 +02:00
Jonas L
be25dea447
fix(playout): add locales to libretime-playout-notify calls ( #1715 )
...
Fix python36 encoding runtime error that was failing on bionic,
see https://click.palletsprojects.com/en/8.1.x/unicode-support/ for
details.
Fixes #1606
2022-03-29 13:04:44 +02:00
jo
b38596f56e
fix(playout): remove stream_buffer_start in event dispatch
...
Related to 9fc4552cfe
2022-03-06 15:17:44 +02:00
jo
f2b9bd6fed
chore(playout): api_client schedule data log entry
2022-03-06 15:17:44 +02:00
Jonas L
d55e58e416
chore: auto generate requirements.txt ( #1651 )
...
- force LC_ALL for the sort command
2022-02-28 20:02:01 +02:00
jo
90e0bcb6f8
test(playout): add bandit linter check
2022-02-14 21:01:35 +02:00
jo
6419435601
style: format code using black
2022-02-09 17:24:36 +02:00
jo
9fc4552cfe
fix(playout): properly populate scheduled_now_webstream
...
If scheduled_now_webstream is an empty array, the webstream will automatically be stopped, so we need to make sure the scheduled_now_webstream is aways properly populated.
2022-02-02 17:13:52 +02:00
jo
51378e1e6f
fix(playout): only exclude ended file event
...
The webstream schedule logic seem to rely on already ended events to check if the stream running is the right one.
We should not exclude these webstream events from the schedule.
2022-02-02 15:15:24 +02:00
jo
348d2d81f0
fix(playout): proper logger format string
2022-02-02 15:15:24 +02:00
Jonas L
ff2c733170
feat(playout): change liquidsoap working dir ( #1547 )
...
BREAKING CHANGE: When running liquidsoap as a systemd service, the working directory is now /var/lib/libretime/playout.
2022-01-31 11:13:49 +02:00
jo
32cb67806a
chore: add pyupgrade pre-commit hook
...
- add --py3-plus flag to pyupgrade hook
- add --py36-plus flag to pyupgrade hook
2022-01-27 10:37:48 +02:00
jo
9de82bb568
chore: make linters config consistent in pyproject.toml
...
- remove mypy config from makefile
2022-01-26 10:15:35 +02:00
jo
7988b7467b
test: allow to set python linters to fail per app
2022-01-26 10:15:35 +02:00
jo
0f8cb1a5ed
chore: set python build system in pyproject.toml
...
- fix local package install
- local packages requirement url format
2022-01-26 10:15:35 +02:00
jo
441028a1d2
chore: make setup.py file chdir consistent
2022-01-26 10:15:35 +02:00
Jonas L
1924919e18
fix(shared): type is required for default config submodel ( #1536 )
...
We cannot load submodels values from environment variables without having the submodel type annotations.
2022-01-24 15:24:16 +02:00
jo
13852bb6db
refactor(playout): remove unused imports
2022-01-24 12:46:40 +02:00
jo
1c50b28500
refactor(playout): move constants in config
2022-01-24 12:46:40 +02:00
jo
fa7692071c
feat(playout): load config using shared helpers
...
- backport >=py38 Literal type
- update configuration sample
- add missing config filepath to systemd service
- make config sections optional
BREAKING CHANGE: the playout config schema has been changed like the following:
- the top section 'pypo' was renamed to 'playout'
- the 'playout.ls_*' entries were renamed to 'playout.liquidsoap_*'
- the 'playout.*_dir' entries were removed
- the 'playout.api_client' entry was removed
- the 'playout.record_file_type' entry was renamed to 'playout.record_file_format'
- the 'playout.base_recorded_files' entry was removed
- the 'playout.poll_interval' entry was removed
- the 'playout.push_interval' entry was removed
- the 'playout.cue_style' entry was removed
2022-01-24 12:46:40 +02:00
jo
12f96f5043
feat(playout): change playout working directory
...
- use working dir for storing files
BREAKING CHANGE: the playout working directory changed from '/var/tmp/airtime/pypo/' to '/var/lib/libretime/playout' when running with systemd and the current directory by default.
2022-01-24 12:46:40 +02:00
Jonas L
1561353b20
feat(shared): allow cli parametrized decorators ( #1527 )
2022-01-20 07:30:35 +02:00
Jonas L
5364911922
feat(playout): migrate notify cli to click ( #1519 )
...
Fixes #1502
- replace notify option parser with click
- refactor call from liquidsoap to playout-notify
BREAKING CHANGE: the libretime-layout-notify log file in '/var/log/airtime/pypo-liquidsoap/notify.log' was removed and merged into the existing '/var/log/libretime/liquidsoap.log' log file.
2022-01-17 11:51:32 +02:00
jo
b37f4f7509
fix(playout): optional log_file for liquidsoap
2022-01-14 19:36:40 +02:00
Jonas L
5c72f714a8
feat(playout): enhance playout logging ( #1495 )
...
Some initial work on modernizing the playout app. This replace any custom logger or
logging based logger with the logging tools from libretime_shared.logging and loguru.
Removed all the thread/function assigned logger (self.logger = ...), as this makes it
part of the logic (passing logger though function args) as it should not.
Of a dedicated logger is required for a specific task, it should use
the create_task_logger function.
- refactor: remove dead code
- refactor: remove py2 specific fix
- feat: remove unused test command
- feat: setup shared cli and logging tools
- feat: replace logging with loguru
- feat: setup shared cli and logging tools for notify
- fix: warn method deos not exist
- feat: make cli setup the entrypoint
- fix: install shared modules globally in production
use extra_requires to load local packages in dev environement
- feat: configure log path in systemd service
- feat: default behavior is to log to console only
- feat: create log dir during install
- chore: add comment
- fix: don't create useless dir in install
- fix: move notify logs to /var/log/libretime dir
- fix: update setup_logger attrs
- style: linting
- fix: replace verbosity flag with log-level flag
- feat: use shared logging tool in liquidsoap
- fix: pass logger down to api client
- feat: allow custom log_filepath in liquidsoap config
- chore: add pylintrc to playout
- refactor: fix pylint errors
- feat: set liquidsoap log filepath in systemd service
- fix: missing setup entrypoint update
BREAKING CHANGE: for playout and liquidsoap the default log file path changed to None
and will only log to the console when developing / testing. Unless you are running the
app as a systemd service (production) the default logs filepaths changed:
from "/var/log/airtime/pypo/pypo.log" to "/var/log/libretime/playout.log" and
from "/var/log/airtime/pypo-liquidsoap/ls_script.log" to "/var/log/libretime/liquidsoap.log"
BREAKING CHANGE: for playout-notify the default log file path changed
from "/var/log/airtime/pypo/notify.log" to "/var/log/libretime/playout-notify.log"
2022-01-13 17:11:37 +02:00
Jonas L
0d25a330cf
chore: rename common section to python ( #1509 )
...
this will make the section more explicite,
in addition, this allow to exclude python deps
on docker images for example.
2022-01-13 07:12:50 +02:00
jo
aa4be97312
chore: move liquidsoap logrotate in install dir
2022-01-04 09:18:58 +02:00
jo
b6795432b6
chore: fix linting in libretime_playout
2022-01-04 09:18:58 +02:00
jo
a3ad6cecc4
chore: fixes after libretime_playout rename
2022-01-04 09:18:58 +02:00
jo
318b36b6b2
chore: rename pypo dir to libretime_playout
2022-01-04 09:18:58 +02:00
jo
61a1abce0d
chore: fixes after libretime_liquidsoap rename
2022-01-04 09:18:58 +02:00
jo
4be0210026
chore: rename liquidsoap dir to libretime_liquidsoap
2022-01-04 09:18:58 +02:00
jo
c04287b7c4
chore: fixes after libretime_api_client rename
2022-01-04 09:18:58 +02:00
Kyle Robbertze
17daeebd25
fix: assume api client is installed
...
Until pip out-of-tree dependencies work with our setup and we can update
to newer versions of our dependencies, assume api client is installed
without explicitly adding it as a dependency. The install script
installs api_client anyway
Fixes : #1435
2021-12-03 00:59:40 +01:00
Kyle Robbertze
452dd64970
fix: declare pypo.notify module
...
Fixes : #1428
2021-11-08 20:58:23 +01:00
Kyle Robbertze
7182390000
feat: add support for Ubuntu Focal 20.04 ( #1168 )
...
Co-authored-by: Valerio Bozzolan <gnu@linux.it>
2021-11-04 09:55:50 +02:00
Jonas L
7384dd7a2f
feature: Use setuptools entrypoints ( #1409 )
...
* Use console_scripts entrypoint for libretimeapi
* Use console_scripts entrypoint for playout
2021-10-18 09:44:39 +02:00
Jonas L
30b3470a06
Better format enforcing ( #1391 )
...
* Add shared python format-check target
* Add .format-check to api lint target
* Format api code with makefile format target
* Add .format-check to tools lint target
* Add .format-check to analyzer lint target
* Format analyzer code with makefile format target
* Add .format-check to celery lint target
* Add .format-check to api_client lint target
* Format api_client code with makefile format target
* Add .format-check to playout lint target
* Run CI linting in parallel
* Disable isort in pre-commit
2021-10-17 16:24:37 +02:00
jo
19c816f294
Update paths after playout move
2021-10-17 08:02:47 +00:00
jo
ca12ca5c41
Move python_apps/pypo/ to playout/
2021-10-17 08:02:47 +00:00