X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=CHANGELOG.md;h=6011c17680e2d2ecb5f5aa7a45c19173e9002ada;hb=35fbb418a649b28c82c1e90f271dc61600b9a43e;hp=c603a24ec163003b0b614800359427ca86812d47;hpb=3a735f7df78e7bbf5e33fb9b6df6893aee606e8d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/CHANGELOG.md b/CHANGELOG.md index c603a24ec..6011c1768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,159 @@ # Changelog -## v3.0.0-rc.1 (mid-December, stable in January) +## v3.1.0-rc.1 (stable ~ late March) + +### IMPORTANT NOTES + + * **Important:** Deprecate NodeJS 10 + * Support NodeJS 14 and 15 + * Remove ES5 module support (breaks compatibility with web browsers we didn't support) + * PeerTube releases now contain client source maps helping client debugging (for developers and admins). + It's the reason why the release size is bigger (we think it's worth it) + * Remove deprecated static routes (`/static/avatars/`, `/static/previews/` and `/static/video-captions/`) + * PeerTube now uses a unique name for thumbnails, previews and captions allowing to correctly cache these resources. + It could break some third party clients that guessed these filenames depending on the video UUID. We'll continue this work in the future + for video filenames, so admins can easily cache these files (using multiple reverse proxies etc) + + +### CLI tools + + * Add script printing command to generate a resolution for a given file [#3507](https://github.com/Chocobozzz/PeerTube/pull/3507) + * Add `--wait-interval ` option to video-import script to wait between two video imports [#3310](https://github.com/Chocobozzz/PeerTube/pull/3310) + +### Plugins/Themes/Embed API + + * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): + * `filter:api.user.me.videos.list.params` and `filter:api.user.me.videos.list.result` + * Add server helpers: + * `videos.loadByIdOrUUID` + * Add server transcoding helpers (https://docs.joinpeertube.org/contribute-plugins?id=add-new-transcoding-profiles): + * `transcodingManager.addVODProfile` + * `transcodingManager.addVODEncoderPriority` + * `transcodingManager.addLiveProfile` + * `transcodingManager.addLiveEncoderPriority` + +### Features + + * Transcoding: + * Fair transcoding jobs priority: give an higher priority to `optimize` jobs and decrease priority of transcoding jobs depending on the amount of videos uploaded by the user during the last 7 days [#3637](https://github.com/Chocobozzz/PeerTube/pull/3637) + * Higher niceness priority for live transcoding compared to vod transcoding [#3577](https://github.com/Chocobozzz/PeerTube/pull/3577) + * Allow admins to choose a transcoding profile. New transcoding profiles can be added by PeerTube plugins that can inject custom ffmpeg encoders/parameters + * Add transcoding support for 1440p (Quad HD/QHD/WQHD) videos [#3518](https://github.com/Chocobozzz/PeerTube/pull/3518) + * Add transcoding progress in admin transcoding jobs list + * Use `veryfast` preset for default transcoding profile (same result size but faster) + * Transcode audio uploads to lower configured resolutions + * Transcode HLS playlists in a `tmp` directory (less bugs/inconsistencies) + * Allow admins to choose the transcoding jobs concurrency + * Video upload: + * Async torrent creation on video upload. We hope that it should fix some weird upload errors + * Add `.m4a` audio upload support + * Accessibility/UI: + * Move orange admin buttons on the left side + * Hide title to left menu toggle icon + * Add username information in profile settings + * Improve about page layout + * Add refresh button in jobs list + * Add ability to set a custom user quota + * Rewrite prose for JavaScript disabled message [#3684](https://github.com/Chocobozzz/PeerTube/pull/3684) + * Video import: + * Stricter youtube-dl format selectors for import (don't import HDR videos and cap to the max supported resolution) [#3516](https://github.com/Chocobozzz/PeerTube/pull/3516) + * Don't publish imported videos before the user submitted the second step form + * Allow admins to choose the import jobs concurrency + * Implement *hot* and *best* trending algorithms [#3625](https://github.com/Chocobozzz/PeerTube/pull/3625) & [#3681](https://github.com/Chocobozzz/PeerTube/pull/3681) + * Admin config: + * Add URL fragment support in admin config page to go on the appropriate tab + * Improve submit error message + * Allow admins to disable ping requests logging [#3550](https://github.com/Chocobozzz/PeerTube/pull/3550) + * Add a setting so PeerTube periodically cleans up remote AP interactions + * Add ability for admins to update plugin auth field of a particular user + * Support `webp` avatar upload + * Implement remote comment/subscription + * Register a service worker [#3464](https://github.com/Chocobozzz/PeerTube/pull/3464) + * Add ability to remove one's avatar for account and channels [#3467](https://github.com/Chocobozzz/PeerTube/pull/3467) + * Show first decimal for video views above a thousand [#3564](https://github.com/Chocobozzz/PeerTube/pull/3564) + * Allow user to search through their watch history [#3576](https://github.com/Chocobozzz/PeerTube/pull/3576) + * Allow users/visitors to search through an account's videos [#3589](https://github.com/Chocobozzz/PeerTube/pull/3589) + * Use an HTML link to display feed url + * Allow AP resolution for default account/channel pages (`/accounts/:name/video-channels` and `/video-channels/:name/videos`) + * Redirect to login on 401, display 403 variant [#3632](https://github.com/Chocobozzz/PeerTube/pull/3632) + * Performance: + * Optimize videos list API endpoint + * Optimize videos list views sort SQL query + * Avoid as much as possible to process remote thumbnail + * Proxify remote torrent requests from local clients (like we do for captions and previews) + * Optimize rate POST endpoint + * Tighten hotkeys definitions to not conflict with the web browser hotkeys [#3702](https://github.com/Chocobozzz/PeerTube/pull/3702) + * Add more AP stats to stats endpoint + * Increase jobs request timeout to 7 seconds + * Increase broadcast request concurrency to 30 + +### Bug fixes + + * Fix remote subscribe input alignment + * Fix loading bar for HTTP requests + * Fix table header overflow + * Disable wait transcoding checkbox instead of hiding it when uploading an incompatible video for the web + * Fix sendmail emailer configuration + * Add missing niceness to ffmpeg thumbnail process + * Videos with only HLS files: + * Fix RSS feed + * Correctly wait transcoding before federating + * Fix redundancy + * Correctly remove torrents + * Localize decimal separator in video miniatures [#3643](https://github.com/Chocobozzz/PeerTube/pull/3643) + * Check banned status on external authentication + * Remove all video redundancies when purging the cache + * Fix URI search admin config update + * Fix broken HLS playback with videos that contain an unknown channel layout + * Fix HLS generation after file import script + * Ensure we don't receive things from local actors + * Try to recover from network errors in HLS player + * Fix comments sorting dropdown z-index + * Fix create transcoding job script depending on the transcoding configuration + * Fix NSFW policy in my videos, account videos and channel videos pages + * Fix complete description loading of a previous video + * Fix video comments display with deleted comments + * Don't override preview image on import + * Fix Accept AP messages sending to previously accepted followers + * Fix import script when using the instance uses the search index + * Fix player freeze on Safari with a video that has many subtitles + * Fix anonymous user settings + * Fix preview upload with capitalized ext + * Fix abuses list crash on deleted video + * More robust channel change federation + * Fix emptying video tags + * Fix broken local actors that do not have a public/private key + * Live: + * Don't update live attributes if they did not change (allowing to update live metadata even if the live has started) + * Fix live RAM usage when ffmpeg is too slow to transcode the RTMP stream + * Correctly load live information (description and preview) when not started + +## v3.0.1 + +### SECURITY + + * **Important:** Fix retrieving data of another user if the username contains `_` when fetching *my information* + +### Docker + + * Fix [upgrade documentation](https://docs.joinpeertube.org/install-docker?id=upgrade) + * Add live RTMP port in docker compose + +### Bug fixes + + * Fix account feed URL + * Log RTMP server error (address already in use) + * Fix NPM theme links in admin theme page + * Don't reject AP actors with empty description + * Fix twitter admin config description + * Fix duplicate entry in job list page + * Fix `nl-NL` broken admin config page + * Fix bad tracker client IP when using a reverse proxy + + +## v3.0.0 + +**Since v2.4.0** ### IMPORTANT NOTES @@ -14,21 +167,31 @@ ### Docker - * Add nginx behind traefik to benefit nginx optimizations of some PeerTube routes [#2531](https://github.com/Chocobozzz/PeerTube/pull/2531) + * Replace traefik by nginx in our docker-compose template: + * Better consistency with our default setup (we now use the same stack) + * Use our default nginx template enabling many optimizations + * Update the documentation to take into account this change: https://docs.joinpeertube.org/install-docker ### Plugins/Themes/Embed API * Add ability for auth plugins to redirect user on logout [#32](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/32) & [#33](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/33) * Add `input-password` setting to plugins [#3375](https://github.com/Chocobozzz/PeerTube/issues/3375) + * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): + * `filter:api.accounts.videos.list.params` + * `filter:api.accounts.videos.list.result` + * `filter:api.video-channels.videos.list.params` + * `filter:api.video-channels.videos.list.result` + * Authenticate the user if possible in plugin router [#3400](https://github.com/Chocobozzz/PeerTube/pull/3400) ### Features - * :tada: :tada: :tada: Support live streaming [#3250](https://github.com/Chocobozzz/PeerTube/pull/3250) + * :tada: :tada: :tada: Support live streaming :tada: :tada: :tada: [#3250](https://github.com/Chocobozzz/PeerTube/pull/3250) * Create a live video using the PeerTube interface and start streaming using your favorite streaming software (OBS, ffmpeg...) * If the admin allows it, add ability for users to save a replay of their live * Support live transcoding in multiple resolutions * Admins can set a limit of created lives per user/instance and a duration limit * This is the first step of live streaming, we'll consolidate the feature next year + * Support Galician locale * Update left menu [#3296](https://github.com/Chocobozzz/PeerTube/pull/3296) * Add *My settings*, *My library*, *Administration* (if admin) below the username * Rename section titles to *In my account*, and *On instance name* for better block scopes identification @@ -48,24 +211,32 @@ * Allow private syndication feed of videos from subscriptions [#3074](https://github.com/Chocobozzz/PeerTube/pull/3074) * Improve default account and channel avatars [#3326](https://github.com/Chocobozzz/PeerTube/pull/3326) * Accessibility/UI: + * More explicit error messages for file uploads [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347) + * Allow to retry a failed video upload [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347) * Improve jobs and logs view [#3127](https://github.com/Chocobozzz/PeerTube/pull/3127) * Use badges for *NSFW* and *Unfederated* labels in video block list table * Improved video rating popover text if the user is not logged-in [#3168](https://github.com/Chocobozzz/PeerTube/pull/3168) * Improve markdown-it emoji list column display [#3253](https://github.com/Chocobozzz/PeerTube/pull/3253) * Add help popup for choosing a licence [#3306](https://github.com/Chocobozzz/PeerTube/pull/3306) * Change *Upload* button to *Publish* + * More player download/upload title details [#3394](https://github.com/Chocobozzz/PeerTube/pull/3394) * Create a dedicated transcoding tab in admin config + * Improve 404 page + * Improve login form [#3357](https://github.com/Chocobozzz/PeerTube/pull/3357) * Add a title attribute on views element to see the view counter [#3365](https://github.com/Chocobozzz/PeerTube/pull/3365) * Clearer titles for periods in recently added and videos from subscriptions pages * Select first available channel when accepting ownership change [#3382](https://github.com/Chocobozzz/PeerTube/pull/3382) + * Hide channel registration step if default quota is 0 [#3393](https://github.com/Chocobozzz/PeerTube/pull/3393) * Add possibility to share origin URL to video if it's not local [#3201](https://github.com/Chocobozzz/PeerTube/pull/3201) * Render markdown in email notifications for new comments [#3255](https://github.com/Chocobozzz/PeerTube/pull/3255) * Add an admin setting to force ipv4 in youtube-dl [#3311](https://github.com/Chocobozzz/PeerTube/pull/3311) * Add ability for admins to put markdown in all fields of *About* page [#3371](https://github.com/Chocobozzz/PeerTube/pull/3371) + * Support `activeMonth` and `activeHalfyear` in nodeinfo ### Bug fixes * Fix inability to delete a channel due to a bug in the confirm modal + * Fix views processing for hour 0 * Fix ownership change modal accept button * Fix incorrect ActivityPub IDs * Do not transcode videos to an higher bitrate than the source @@ -85,6 +256,7 @@ * Fix overflow of some dropdowns * Fix infinite scrollin in channel's playlists page * Fix anchors scrolling in About page + * Fix canonical URLs of videos and playlists [#3406](https://github.com/Chocobozzz/PeerTube/pull/3406) * Fix CLI import script when importing Youtube channels * Fix video tag min length validator * Fix user notification preferences column width [#3352](https://github.com/Chocobozzz/PeerTube/pull/3352) @@ -98,7 +270,37 @@ * Fix menu theme colors [#3376](https://github.com/Chocobozzz/PeerTube/pull/3376) * Fix playlist list `name`/`displayName` sort field [#3385](https://github.com/Chocobozzz/PeerTube/pull/3385) * Fix 401 error display in embeds + * Do not crash if SMTP server is down, instead log an error [#3457](https://github.com/Chocobozzz/PeerTube/issues/3457) + * Fix redundancy federation in specific cases + * Stop CLI auth failure with extra `/` [#3520](https://github.com/Chocobozzz/PeerTube/issues/3520) + * Add missing audit log if the user deletes its account + * Don't crash on youtube-dl update write error + * Fix video auto block notification issue + +**Since v3.0.0-rc.1** + +### Features + + * Support Galician locale + * Support `activeMonth` and `activeHalfyear` in nodeinfo + +### Bug fixes + * Fix views processing for hour 0 + * Fix follows pages (in admin and about) + * Don't display live max duration if disabled by admin + * Correctly display live badge in videos list + * Fix redundancy federation in specific cases + * Fix live miniatures + * Don't update player timestamp when clicking on a timecode in comments/descriptions for a live + * Fix admin table filters + * Fix some accessibility issues + * Stop CLI auth failure with extra `/` [#3520](https://github.com/Chocobozzz/PeerTube/issues/3520) + * Fix login error display + * Don't display log level in audit logs view + * Add missing audit log if the user deletes its account + * Don't crash on youtube-dl update write error + * Fix video auto block notification issue ## v2.4.0 @@ -125,16 +327,16 @@ ### Plugins/Themes/Embed API - * Add embed API (https://docs.joinpeertube.org/#/api-embed-player): + * Add embed API (https://docs.joinpeertube.org/api-embed-player): * `playNextVideo` method * `playPreviousVideo` method * `getCurrentPosition` method * Embed URL parameters * Add ability to disable PeerTube link in embed using an URL param (`peertubeLink=0`) * Add plugins support in embed - * Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins): + * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): * `action:embed.player.loaded` (for embed) - * Add custom fields in video update/upload form using `registerVideoField` (https://docs.joinpeertube.org/#/contribute-plugins?id=add-custom-fields-to-video-form) + * Add custom fields in video update/upload form using `registerVideoField` (https://docs.joinpeertube.org/contribute-plugins?id=add-custom-fields-to-video-form) ### Features @@ -344,29 +546,29 @@ A new endpoint to report videos will be created in PeerTube 2.4 and will also al ### CLI tools - * Add redundancy CLI: https://docs.joinpeertube.org/#/maintain-tools?id=peertube-redundancyjs + * Add redundancy CLI: https://docs.joinpeertube.org/maintain-tools?id=peertube-redundancyjs * Add ability to pass remaining options to youtube-dl binary in peertube-import script ([@drzraf](https://github.com/drzraf)) ### Docker - * **Important** Fix HLS storage configuration ([@xcffl](https://github.com/xcffl)): https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48 + * **Important:** Fix HLS storage configuration ([@xcffl](https://github.com/xcffl)): https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48 * Add DKIM support to Docker ([@kimsible](https://github.com/kimsible)) ### Maintenance - * Add nginx configuration to redirect videos to an S3 bucket ([@rigelk](https://github.com/rigelk)) and update of the [corresponding documentation](https://docs.joinpeertube.org/#/admin-remote-storage). + * Add nginx configuration to redirect videos to an S3 bucket ([@rigelk](https://github.com/rigelk)) and update of the [corresponding documentation](https://docs.joinpeertube.org/admin-remote-storage). ### Plugins/Themes/Embed API - * Add embed API (https://docs.joinpeertube.org/#/api-embed-player): + * Add embed API (https://docs.joinpeertube.org/api-embed-player): * `playbackState` can be `ended` * `playbackStatusUpdate` has a `duration` field * `setCaption` and `getCaptions` methods - * Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins): + * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): * `action:login.init` * `action:video-watch.video-threads.loaded` * `action:video-watch.video-thread-replies.loaded` ([@ipbc-dev](https://github.com/ipbc-dev)) - * Add server plugin hooks (https://docs.joinpeertube.org/#/api-plugins): + * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): * `filter:api.video.pre-import-url.accept.result` * `filter:api.video.pre-import-torrent.accept.result` * `filter:api.video.post-import-url.accept.result` @@ -558,13 +760,13 @@ A new endpoint to report videos will be created in PeerTube 2.4 and will also al We added some sections in the documentation website: - * S3 remote storage: https://docs.joinpeertube.org/#/admin-remote-storage - * Instances redundancy: https://docs.joinpeertube.org/#/admin-following-instances - * Moderate your instance: https://docs.joinpeertube.org/#/admin-moderation - * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/#/admin-customize-instance - * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/#/admin-logs - * Mute accounts/instances: https://docs.joinpeertube.org/#/use-mute - * Controlled player embed API: https://docs.joinpeertube.org/#/api-embed-player + * S3 remote storage: https://docs.joinpeertube.org/admin-remote-storage + * Instances redundancy: https://docs.joinpeertube.org/admin-following-instances + * Moderate your instance: https://docs.joinpeertube.org/admin-moderation + * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/admin-customize-instance + * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/admin-logs + * Mute accounts/instances: https://docs.joinpeertube.org/use-mute + * Controlled player embed API: https://docs.joinpeertube.org/api-embed-player ### Docker @@ -599,7 +801,7 @@ We added some sections in the documentation website: * PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/ * We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api - * Add ability to generate HLS videos using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/#/maintain-tools?id=create-transcoding-jobjs)) + * Add ability to generate HLS videos using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/maintain-tools?id=create-transcoding-jobjs)) * Update nginx template: (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx)) * Add streaming playlists endpoint * Add `client_body_temp_path` hint @@ -837,7 +1039,7 @@ We added some sections in the documentation website: ### IMPORTANT NOTES - * **Important** Add `plugins` directory in configuration file. **You should configure it in your production.yaml** + * **Important:** Add `plugins` directory in configuration file. **You should configure it in your production.yaml** * **Important:** Deprecate NodeJS 8 (support ends on [December 2019](https://github.com/nodejs/Release#release-schedule)). Please upgrade to NodeJS 10. * **Important:** Updated nginx template (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx)) * Fix long server responses on dual stack servers: https://github.com/Chocobozzz/PeerTube/commit/fd2ddcae8ff4eb10bf7168ac3c8801f06b37627f @@ -868,7 +1070,7 @@ We added some sections in the documentation website: ### Features * :tada: Support Finnish, Greek and Scottish Gaelic languages - * :tada: Add basic plugins and themes support (**beta**): https://docs.joinpeertube.org/#/contribute-plugins + * :tada: Add basic plugins and themes support (**beta**): https://docs.joinpeertube.org/contribute-plugins * Install plugins or themes from the administration panel * Choose a default theme for your instance * Users can choose the theme they want among the list of themes their administrator installed @@ -987,8 +1189,8 @@ We added some sections in the documentation website: ### Docker - * **Important**: Add host network mode to the reverse proxy section (without this, it could break videos views and P2P: https://github.com/Chocobozzz/PeerTube/issues/1643#issuecomment-464789666) - * **Important**: Add a network section to [docker-compose.yml template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml) + * **Important:**: Add host network mode to the reverse proxy section (without this, it could break videos views and P2P: https://github.com/Chocobozzz/PeerTube/issues/1643#issuecomment-464789666) + * **Important:**: Add a network section to [docker-compose.yml template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml) and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env#L8) to fix IP forwarding issue ([@Nutomic](https://github.com/nutomic)) * Fix SMTP default configuration ([@Nutomic](https://github.com/nutomic)) @@ -1081,7 +1283,7 @@ and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/suppo ### Bug fixes - * **Important** Fix invalid `From` email header in contact form that could lead to the blacklisting of your SMTP server + * **Important:** Fix invalid `From` email header in contact form that could lead to the blacklisting of your SMTP server * Fix too long display name overflow in menu * Fix mention notification when a remote account mention a local account that has the same username than yours * Fix access to muted servers table for moderators