X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=CHANGELOG.md;h=7011d44dcd27256184a8c21cc0b868e9041e2255;hb=26a3f6b21290e9411d29f2269ceef384fe7861c9;hp=53f17a5871ce8a8be1cbb7503287cfe1c6a813fe;hpb=f44cd95c013c21454dc868c879c3d9230e8637c7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 53f17a587..7011d44dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,127 @@ # Changelog +## v5.1.0 + +### IMPORTANT NOTES + + * If your instance has signup enabled, user registration approval is automatically enabled by the default configuration of this release. You can change this setting in your `production.yaml` or in the configuration page in the web admin + * Update [web browsers support list](https://joinpeertube.org/faq#what-web-browsers-are-supported-by-peertube): + * Drop support of Safari 11 on iOS + * Drop support of Safari 11 on desktop + * Drop support of Firefox 68 on desktop + * Minimum recommended Redis version is 6.2. Version 6.0 should still work: see [this comment](https://github.com/Chocobozzz/PeerTube/issues/5659#issuecomment-1449607001) for more information + * Deprecate NodeJS 14: support will be removed in the next release (PeerTube 5.2) + +### Maintenance + + * [PeerTube OpenTelemetry](https://docs.joinpeertube.org/maintain/observability) + * Add BitTorrent tracker metrics + * Add ability to disable HTTP request duration metrics (can have a high tag cardinality) + * Add `x-powered-by` HTTP header in PeerTube response. Can be disabled in PeerTube configuration + +### Docker + + * Add env variables to configure object storage + +### Documentation + + * PeerTube documentation website now uses VitePress: https://docs.joinpeertube.org + * Add *Server code* documentation explaining the database model typing and how to add a new feature in PeerTube server: https://docs.joinpeertube.org/support/doc/development/server + +### Plugins/Themes/Embed API + + * Add ability to set `playbackRate` in URL (watch page and embed) [#5486](https://github.com/Chocobozzz/PeerTube/pull/5486) + * Auth plugins: + * Can set default `adminFlags`, `videoQuota` and `videoQuotaDaily` user attributes + * Introduce `userUpdater` hook function so external auth plugins can update the user on user login: https://docs.joinpeertube.org/contribute/plugins#add-external-auth-methods + * Automatically redirect to the default external auth on PeerTube refresh token expiration + * Server plugin hooks (https://docs.joinpeertube.org/api/plugins): + * Add `filter:api.user.me.subscription-videos.list.params` & `filter:api.user.me.subscription-videos.list.result` [#5648](https://github.com/Chocobozzz/PeerTube/pull/5648) + * Add `filter:activity-pub.activity.context.build.result` to update ActivityPub JSON-LD context + * Add `filter:activity-pub.video.json-ld.build.result` to update `Video` ActivityPub JSON-LD object + * Add `action:activity-pub.remote-video.created` & `action:activity-pub.remote-video.updated` to react on remote video creation/update + * Client plugin hooks (https://docs.joinpeertube.org/api/plugins): + * Add `action:video-edit.form.updated` fired every time the video upload/import/live/update form values change + * Add `filter:video-watch.video-plugin-metadata.result` to add custom video metadata in watch page + * Existing `action:video-edit.init` hook now contains a `updateForm` attribute in options that you can use to update video upload/import/live/update form values + * Add server plugin helpers: + * `getServerListeningConfig` to get PeerTube listening configuration + * Convert some colors to PeerTube CSS variables to improve theme compatibility + +### Features + + * :tada: Implement user registration approval (https://docs.joinpeertube.org/admin/managing-users#registration-approval) [#5544](https://github.com/Chocobozzz/PeerTube/pull/5544) + * If enabled, the user has to fill a *Registration reason* input + * Moderators have to to accept/reject the registration with a *Moderation response* that will be sent by email to the user + * If the registration is accepted, the user and its channel are automatically created + * Add "back to live" button in player + * The *Live* button is red when the player is synced with the live + * It becomes grey when behind the live edge + * Clicking on the grey button re-sync the player with the live edge + * Add Icelandic & Ukrainian locales + * Add *Global views* default trending algorithm option in admin configuration [#5471](https://github.com/Chocobozzz/PeerTube/pull/5471) + * Performance: + * Blocked IPs by the tracker are now stored in NodeJS memory instead of Redis, reducing PeerTube load + * Optimize video comments SQL requests + * Optimize custom markup live rendering in admin + * UI/UX: + * Add option in video/playlist share modal to create a responsive embed [#5690](https://github.com/Chocobozzz/PeerTube/pull/5690) + * Use `99+` instead of `99` when having more than `99` notifications + * Use channel display name instead of channel handle in *My videos* input filter [#5575](https://github.com/Chocobozzz/PeerTube/pull/5575) + * Display channel name in playlist element instead of account name + * Display channel as author in RSS feeds + * Improve/fix main pages keyboard navigation + * Custom markup: + * Support `mailto` links + * Support short UUID to fetch a video + * Admins can customize access and refresh tokens lifetime + + +### Bug fixes + + * Fix object storage incompatibility with some S3 providers that don't support ACL + * Fix signup limit + * Prevent `500` on invalid short UUID parameter + * Player: + * Fix live buffering with small latency setting + * More robust player "stats for nerds" popup if there is not stream available + * Don't display playback rate setting for lives + * Don't handle playback rate hotkeys for lives + * Fix clicking on PeerTube instance button + * Fix always resuming the end of the video + * Fix saving last video current time for anonymous users + * Fix player keyboard shortcuts for non latin keyboards [#5684](https://github.com/Chocobozzz/PeerTube/pull/5684) + * Process videos list requests in correct order + * Correctly fill the *Support* field when updating a video + * Fix *Auto play video* setting for anonymous users + * UI: + * Fix table columns max width + * Use *Unknown* instead of *Misc* when the video category is not set + * Prevent layout shift when listing videos + * Fix instance stats anchor link + * Fix menu content overlay on tablets + * Fix button overflows + * Handle `502` HTTP errors in client notifier + * Fix resetting chart zoom in video stats page + * Fix search page not loading all available results + * Fix confirmation modal that contains 2 text inputs + * Display the update button when the stable release of beta/alpha plugin is available + * Always list NSFW videos in playlists (the frontend is in charge to blur the video element if the NSFW setting is *Hide* or *Blur*) + * Always list NSFW videos in admin + * Improve client log report: + * Don't send client error on 404 + * Prevent sending invalid error/warn logs coming from HLS player [#5484](https://github.com/Chocobozzz/PeerTube/pull/5484) + * Fix out of sync audio when cutting a video in Studio + * Fix "unique viewers" inconsistency with countries + * Fix mention detection in comments + * Fix listing all my channels in *My library* + * Fix displaying remote avatars + * Fix 404 HTTP code in watch page when having `;threadId` param in URL + * Correctly re-inject video file token in `.m3u8` resolution playlists to fetch private mp4 video file [#5677](https://github.com/Chocobozzz/PeerTube/pull/5677) + * Don't process live when moving videos to external storage + * Handle Redis disconnection gracefully [#5599](https://github.com/Chocobozzz/PeerTube/pull/5599) + + ## v5.0.1 ### IMPORTANT NOTES @@ -33,7 +155,9 @@ * Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-5.0.js` * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-5.0.js` * Configuration changes (`config/production.yaml`): - * There is a new `secrets.peertube` configuration. You must fill it before running PeerTube v5: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L14 + * There is a new `secrets.peertube` configuration: + * Classic install: fill it before running PeerTube v5: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L14 + * Docker install: fill it using an env variable before running the containers: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env#L27 * `object_storage.upload_acl` is now a parent key that you must update: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L153 * You must update your nginx configuration: * We introduced a new `location` for plugin websocket routes: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/support/nginx/peertube#L135 @@ -326,7 +450,7 @@ * **Important** SQL migrations (in particular `0685-multiple-actor-images`) can take several minutes to complete * **Important** You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install/any-os#nginx * REST API: - * `PUT /api/v1/videos/{id}/watching` is deprecated, use `POST /api/v1/videos/videos/{id}/views` instead: https://docs.joinpeertube.org/api/rest-reference.html#operation/addView + * `PUT /api/v1/videos/{id}/watching` is deprecated, use `POST /api/v1/videos/videos/{id}/views` instead: https://docs.joinpeertube.org/api-rest-reference.html#operation/addView ### Maintenance @@ -2801,8 +2925,8 @@ This version is a pre release because it contains many important changes, and re **Important:** Before upgrading run the following commands (no need to stop PeerTube) on your PeerTube database (in this example it's *peertube_prod*): ``` -$ sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS unaccent;' -$ sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;' +sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS unaccent;' +sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;' ``` You will need [PostgreSQL Contrib](https://www.postgresql.org/docs/9.6/static/contrib.html).