sintonia/CHANGELOG.md

33 KiB

3.0.1 (2022-12-20)

Bug Fixes

  • remove systemd ProtectHome feature (#2244)
  • installer: install missing sudo
  • installer: set home and login when running as postgres
  • legacy: add log entry on task run (#2316)
  • legacy: log errors on connect check failure (#2317)
  • worker: replace deprecated cgi.parse_header

Documentation

  • no need to update release note path

Tests

  • liquidsoap package from ppa is version 1.4.2 (#2233)

CI

  • run tests on 3.0.x
  • enable renovate bot on 3.0.x
  • sync docs with libretime/website repository
  • pin vale version to v2.21.3

3.0.0 (2022-10-10)

Bug Fixes

  • clean exit by catching keyboard interrupt (#2206)
  • legacy: missing plupload uk_UA translation
  • legacy: jquery i18n translations for plupload
  • legacy: gracefully handle missing asset checksum
  • disable some systemd security features on bionic (#2219)

Documentation

  • legacy: how to add a new language

Tests

  • analyzer: fix wrong bit_rate values

3.0.0-beta.2 (2022-10-03)

Features

  • systemd service hardening (#2186)
  • extra systemd service hardening (#2197)

Bug Fixes

  • start playout service after liquidsoap (#2164)
  • include version variable inside containers
  • change version format
  • legacy: add play button to stream player (#2190)
  • legacy: correct log levels (#2196)

Documentation

  • remove breaking change warning (#2180)
  • fix vale linting errors
  • fix vale linting error

CI

  • allow failure when linting /docs/releases
  • use github.ref_name to get tag

3.0.0-beta.1 (2022-09-23)

Features

  • legacy: disable services check when missing systemctl (#2160)
  • legacy: invalidate cached assets using md5sum (#2161)
  • use libretime/icecast container image (#2165)

Bug Fixes

  • legacy: number of tracks displayed initially (#2168)
  • legacy: rebuild favicon (#2167)
  • worker: configure celery timezone (#2169)
  • legacy: update or remove broken links
  • legacy: prepend file id in tmp upload filename (#2173)
  • legacy: fail when uploading wma files (#2172)

Documentation

  • remove UI timezone configuration suggestion (#2158)
  • add default user credentials
  • first blog post, v3 beta.0 (#1939)
  • fix release commands

CI

  • ignore changelog for closed reference notifier
  • don't check github.com/libretime/libretime/(issues|pulls) links
  • run docs workflow on vale files changes

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