29 KiB
29 KiB
3.0.0-beta.0 (2022-09-16)
Features
- playout: use liquidsoap version functions
- playout: replace pytz with zoneinfo (#1969)
- installer: remove allow-restart flag (#1970)
- rename AirtimeApiClient to ApiClient
- playout: use single clients instance (#1980)
- api: don't use trailing slashes (#1982)
- api: cast StreamSetting raw_value to value (#1991)
- worker: load callback details from config (#1994)
- analyzer: load callback details from config and file_id (#1993)
- api-client: rewrite api-client v2
- playout: integrate api-client v2 calls
- api: don't use hyperlinked serializers (#1984)
- shared: load env config using jsonschema
- installer: use ed for config update (#2013)
- move off_air_meta stream setting to pref table (#2023)
- move stream liquisoap status to pref table
- move stream stats status to pref table
- analyzer: override paths using env variables
- playout: rewrite stats collector (#2028)
- legacy: setup config schema validation
- legacy: add config dot notation access
- shared: pass config data via init (#2042)
- playout: create liquidsoap client
- playout: integrate new liquisoap client
- worker: rename service and package to libretime-worker (#2065)
- playout: improve generate_*_events (#2088)
- api: remove set passwords command
- remove cc_stream_setting models
- installer: deploy stream config
- legacy: read stream config from file
- api: add /info and /stream/* endpoints
- shared: create stream config models
- playout: build liquidsoap entrypoint with stream config
- playout: stats collector using stream config
- playout: allow updating message_offline value
- playout: remove stream_setting update handler
- playout: liquidsoap bootstrap using new api endpoints
- playout: allow liquidsoap listen address configuration
- api: move /api-auth to /api/browser (#2094)
- add container setup
- move timezone preference to config file (#2096)
- playout: move message handling to main thread
Bug Fixes
- api-client: get status_code from response
- analyzer: remove outdated urllib3 workaround
- api-client: fix base_url joining for client v2 (#1998)
- api: update set_icecast_passwords StreamSetting fields (#2001)
- legacy: get local logo file (#1999)
- installer: clean legacy files before copying (#2002)
- legacy: sanitize track_type_id when updating file (#2003)
- shared: validator value type can be wrong
- shared: remove unused field from rabbitmq config (#2012)
- playout: replace deprecated harbor.bind_addr (#2025)
- legacy: do not rely on undefined SERVER_NAME (#2031)
- api-client: remove unused v1 methods
- playout: use stream download when fetching files (#2048)
- playout: add thread names (#2056)
- legacy: args comma syntax error
- legacy: 404 on listeners stats
- deps: update dependency mdx-mermaid to v1.3.0 [security]
- playout: py36 compatibility broken typings
- playout: py39 compatibility zoneinfo import
- api: install gunicorn from pip for bionic
- installer: only upgrade pip packages if needed
- installer: fix compatibility with bionic
- legacy: look in /legacy for a VERSION file
- playout: missing live show events (#2087)
- legacy: config default values are not sanitized
- installer: add liquidsoap config section
- installer: move non reusable fields from default output
- legacy: consistent with docs in outputs public_url generation
- playout: also shutdown on SIGTERM (#2104)
- installer: simplify distro support notice (#2106)
- shared: install tzdata distribution package (#2105)
- installer: config dir should be read only
- installer: config should not be world readable
- legacy: track_type_id should cast to int not text (#2112)
- worker: rewrite podcast download task
- shared: load env from oneOf union schema
- deps: update dependency friendsofphp/php-cs-fixer to <3.11.1
- nginx depends on legacy in docker-compose (#2147)
- playout: remove shutdown_handler
Documentation
- remove empty section in release note
- fix missing release date
- create development section
- add releases distributions support
- add release instructions (#1995)
- use dedicated backup procedure for airtime
- add out of date warning to custom auth setup
- edit timezone during setup
- check system time config before installing (#2019)
- add ubuntu bionic deprecation notice
- add debian buster deprecation notice
- add restore procedure (#2071)
- improve config comments
- add missing storage configuration
- use brackets to refer to another field in the config
- file based stream configuration
- single restart notice for config changes (#2098)
- add warning about icecast sources limit (#2133)
- missing fields from stream config (#2146)
- add docker-compose ps command (#2150)
- add tip to use yq for configuration upgrade
Tests
- api: ignore mypy missing imports
- api: always print logs while testing (#1988)
- api: create api_client pytest fixture (#1990)
- enable logs when running pytest (#2008)
- shared: move config tests
- api: conftest at top level for global fixture access (#2038)
- legacy: enable stdout logs
- analyzer: analyze large audio files (#2050)
- worker: setup testing
- playout: use snapshot testing tool (#2115)
- worker: allow pylint and bandit to fail
CI
- website-preview use single comment (#1996)
- add custom user for dev containers
- add missing gid when running dev container
- legacy: catch syntax errors on older php versions
- add pre-commit python cache
- add check-shell python cache
- add check-shell tools cache
- add docs lint tools cache
- add housekeeping lychee cache
- build test images for debian bookworm (#2097)
- fix docusaurus monorepo config (#2101)
- add shared packages to dev container
- add containers build job
- don't run all workflows in unrelated workflows changes (#2142)
- enable containers concurrency group
- improve containers build caching
- add container tags
3.0.0-alpha.13 (2022-07-15)
Features
- remove unused python3-venv package (#1728)
- api: split api into multiple apps (#1626)
- improve apache configuration (#1784)
- api: replace uwsgi with gunicorn (#1785)
- replace exploded base_* with public_url
- shared: compress logs with gz (#1827)
- shared: remove unused abstract app (#1828)
- replace click envar with auto_envvar_prefix (#1829)
- shared: allow to disable log rotate/retention
- legacy: change logrotate config deploy path
- rotate logs using libretime user
- legacy: improve rabbitmq check (#1839)
- worker: don't run with a dedicated user
- playout: remove unused liquidsoap_prepare_terminate.py (#1854)
- legacy: check services using systemctl (#1856)
- change config file format to yaml
- change config filename to config.yml
- change config dir path to /etc/libretime
- installer: rewrite install script
- replace php migration with django migration
- drop cc_locale table
- api: create set_icecast_passwords command
- installer: post install setup instructions
- add systemd libretime.target
- move allowed cors url to configuration file
- remove php web installer
- move storage path setting to configuration file
- installer: rename shared files path to /usr/share/libretime
- shared: add config trailing slash sanitizer (#1870)
- rename default stream mount point to main
- api: rename user model fields (#1902)
- remove unused cc_sess table (#1907)
- remove unused cc_perms table (#1909)
- api: rename podcasts models fields (#1910)
- analyzer: move compute_md5 to shared library
- api: create bulk_import command
- legacy: compute md5 during early upload
- api: rename track type to library
- legacy: add Ukrainian language
- legacy: don't guess cors url from server
- installer: load .env file to persistent install config
- use dedicated 'libretime' user
- replace apache2 with nginx + php-fpm
- api: listen on unix socket with gunicorn
- api: use uvicorn as asgi server with gunicorn
- set default locale to en_US
- remove unused cc_country table
Bug Fixes
- add gettext for legacy locale generation (#1720)
- installer: install software-properties-common when required
- installer: always install fresh packages
- api: prevent timing attacke on api key (#1771)
- legacy: load vendors during config init
- legacy: bypass config validation during django migration
- legacy: the ini config parser requires a .conf ext
- playout: disable playout-notify log rotation
- don't set log folder permissions recursively
- shared: allow list settings (#1837)
- legacy: station url always has a trailing slash (#1838)
- legacy: check if libretime-api is running (#1841)
- don't add track types only on migration
- correct cc_file.artwork column size
- legacy: remove not null constraint when using default
- api: missing build-essential to build psycopg2
- drop unused sequences
- api: allow updating default_icecast_password (#1872)
- deps: update dependency @cmfcmf/docusaurus-search-local to ^0.11.0 (#1873)
- legacy: remove file directory metadata (#1887)
- api: update model fields in set_icecast_passwords (#1903)
- api: cascade when dropping table (#1908)
- legacy: station-metadata api endpoint
- legacy: don't log 'could not obtain lock' exception (#1943)
- legacy: check empty before iteration on files
- use constrained foreign key for files track_type
- deps: update dependency mermaid to v9.1.2 [security] (#1948)
- installer: update version file unless tarball (#1950)
- prevent data loose on track_types_id migration (#1949)
- use track_type_id in smartblock criteria
- legacy: no invalid track type in smartblock criteria
Documentation
- create 3.0.0-alpha.12 docs
- add version nav dropdown
- add urls redirects (#1581)
- fix broken links to celery project (#1744)
- draft architecture design document (#1736)
- start troubleshooting with syslog over libretime logs (#1783)
- update apache log filepath (#1811)
- explicitly mention lack of 22.04 support (#1858)
- add pre upgrade procedure warnings
- update install procedure
- add missing storage config upgrade procedure (#1871)
- remove packages based install (#1883)
- provide uninstall guidance (#1938)
- rename icecast to stream-configuration
- rename Libretime to LibreTime
- double 'the'
- rewrite reverse proxy guide
- uninstall /usr/lib systemd services
- troubleshoot webserver services (#1961)
- reorder upgrade steps
- add missing allowed_cors_origins config
Tests
- analyzer: recent liquidsoap version do not fail playability check
- legacy: use default rabbitmq settings (#1855)
- shared: remove bad disable no-self-use (#1862)
- api: use pytest to run api tests (#1645)
- api: allow f string format for logging
- api: disable too-few-public-methods lint error
- api: fix lint errors
- api: disable too-many-arguments lint error
- api: ignore tests file coverage
CI
- add missing python3-venv package for testing (#1729)
- generate schema and push to api-client repo (#1740)
- update api-schema generation commit message
- don't run api-schema generation on forks
- build test images for ubuntu jammy (#1743)
- fix dev images creation script (#1745)
- simplify legacy test matrix (#1749)
- test on ubuntu jammy
- ignore versioned_docs with find_closed_references (#1753)
- move docs linting to docs workflow
- only run website workflow for main branch
- add website build cache
- add website-preview workflow
- use GH actions bot for schema generation committer (#1756)
- setup command dispatcher (#1759)
- update workflow dispatch input description (#1762)
- do not cache website preview build (#1763)
- fix website preview cleanup branch (#1793)
- reduce usage (#1804)
- rename api-client repo (#1805)
- add link to next version of the docs in preview comment (#1824)
- specify python version
- replace link checker report with failing job
- check and dispatch api schema changes
- fix python packages caching (#1893)
- fix schema update commit author (#1912)
- api: fail job on linting error
- report pytest coverage in PR via codecov
- add missing codecov flags
- add api coverage report using codecov
- setup carryforward for coverage
- disable codecov project status check
- disable codecov patch status check
3.0.0-alpha.12 (2022-03-29)
Bug Fixes
- playout: add locales to libretime-playout-notify calls (#1715)
- worker: enable logfile variable expansion in ExecStart (#1717)
Documentation
- add missing data to release note
- fix and update links (#1714)
3.0.0-alpha.11 (2022-03-28)
Features
- run API tests in CI (#1421)
- add support for Ubuntu Focal 20.04 (#1168)
- debian 11 support (#1292)
- create libretime_shared package (#1349)
- enhance libretime shared (#1491)
- shared: let user provide the log level (#1493)
- replace verbosity flag with log-level flag (#1496)
- playout: enhance playout logging (#1495)
- api: update env var settings loading
- api: allow to run without log file for dev
- analyzer: enhance analyzer cli and logging (#1507)
- playout: migrate notify cli to click (#1519)
- shared: allow loading from ini config file
- shared: allow cli parametrized decorators (#1527)
- shared: add suffix to shared config models
- analyzer: load config using shared helpers
- playout: change playout working directory
- playout: load config using shared helpers
- analyzer: analyze replaygain using ffmpeg
- analyzer: analyze cuepoint using ffmpeg
- playout: change liquidsoap working dir (#1547)
- legacy: rename log filepath (#1551)
- shared: add url/dsn property to config classes (#1553)
- remove locale generation from installer (#1560)
- legacy: consolidate constants (#1558)
- legacy: add db config defaults and allow custom port (#1559)
- remove unused ubuntu ppa (#1591)
- analyzer: do verify ssl certs on requests
- analyzer: rework analyze_metadata step
- api: improve uwsgi systemd integration (#1614)
- analyzer: rework organise_file using pathlib
- shared: load config from str filepath
- shared: create general config model
- shared: create time functions
- shared: return log level and filepath
- remove unused web_server_user config entry
- legacy: clean config parsing and add defaults
- api_client: load config using shared helpers
- worker: load config using shared helpers
- shared: do not exit on missing config file
- api: remove admin app and static files
- api: load config using shared helpers
- legacy: replace massivescale/celery-php with jooola/celery-php
- worker: set celery timezone to UTC
- api: include id in file/webstream serializers
- remove uninstall script (#1682)
- worker: add service log filepath (#1640)
Bug Fixes
- remove rogue buster reference
- correct vagrantfile function call
- declare pypo.notify module
- revert removal of eval for shell commands
- add missing dependencies to celery module
- assume api client is installed
- shared: fix tests
- change filepath options type to pathlib.Path (#1506)
- legacy: validate id param in show image controller (#1510)
- playout: optional log_file for liquidsoap
- shared: require click >=8.0.3
- legacy: correct linting issues
- make vagrant source.list update idempotent (#1520)
- api: duplicate exception raising and close file
- legacy: api migration config variable name (#1522)
- shared: prevent child override by empty dict
- shared: tmp_path fixture type mismatch
- analyzer: install missing steps package
- shared: type is required for default config submodel (#1536)
- legacy: default values when array is null
- legacy: do not catch too broad exceptions
- legacy: add more null check in api live info
- legacy: only render if img creation succeed (#1540)
- shared: pin loguru version
- legacy: clean sql migrations files (#1545)
- shared: set logger encoding and dont assume encoding
- playout: proper logger format string
- playout: only exclude ended file event
- api_client: use same date format as schedule key
- api_client: properly enclose events in media dict
- playout: properly populate scheduled_now_webstream
- legacy: revert default storage path (#1563)
- legacy: update setup with new db config schema (#1567)
- shared: do not strip vhost slash (#1594)
- analyzer: remove bad attributes in shutdown handler (#1605)
- analyzer: update docstring for organise_file
- shared: fix missing port in public_url
- change celery user in worker service file (#1638)
- api: model_bakery is a dev dependency
- api: static_url settings is required in dev mode (#1662)
- api_client: comply to legacy schedule events
- playout: remove stream_buffer_start in event dispatch
- add PPA for newer liquidsoap version on Ubuntu
- upgrade python packages during install (#1707)
- installer: test and create correct log path
- installer: remove rougue reference to /var/log/airtime (#1710)
- installer: remove /var/tmp/airtime reference
- worker: drop logfile reference until environment variable expansion works correctly
Documentation
- recommend current LTS or stable distro (#1564)
- replace jekyll with docusaurus
- rename documentation files
- restructure and backup pictures
- rework docs into the new website
- fix broken links
- fix prose linting errors
- remove mention of self signed certificate
- update reverse-proxy example variables
- update structure and create links between pages (#1611)
- fix deploy to LibreTime website
- import releases notes
- update releases notes
- update configuration schema
- prevent user to clone wrong repo (#1657)
- clean cloned repo before upgrading (#1676)
- unsure we restart service after upgrade (#1677)
- adjust formatting
- reload systemd service on upgrade (#1685)
- add mermaid graph generation (#1686)
- always run django migration on upgrade (#1687)
Tests
- shared: assert key is from file
- shared: check config using optional sections
- analyzer: rename and remove unused imports
- analyzer: update fixtures
- shared: ignore pylint warning
- shared: fix linting
- allow to set python linters to fail per app
- tools: fix mypy linters
- require lint to succeed for shared/ and tools/
- api: add bandit linter check
- api_client: add bandit linter check
- playout: add bandit linter check
- shared: add missing format lint check
- shared: add bandit linter check
- worker: add bandit linter check
- analyzer: fix inconsistent return statement
- analyzer: set test logging level to trace
- analyzer: use pathlib for tmp paths
- shared: config with required submodel (#1616)
CI
- add missing focal database test run
- add closed references notificier workflow (#1467)
- add semantic pull request linting (#1472)
- pin action-semantic-pull-request version
- add shared to allowed commit scopes (#1494)
- cancel duplicate test workflow (#1513)
- add website deploy workflow
- add dependabot check on website
- only cancel same worklow
- add link-checker workflow
- setup docs prose linting with vale
- lowercase org name (#1656)
- install git in libretime-dev testing image (#1706)
- run test container as root
- use ppa in all ubuntu distributions
- don't run linting in custom testing container
- use current release notes