Add auto-update scripts and review examples for PeerTube and PieFed, bringing total auto-updating services to three. The classifier now includes the current and target version in the prompt so it can correctly evaluate conditional upgrade notes like "follow v8.1.0 instructions if upgrading from <= v8.0.2". Without this context the model would conservatively flag patch releases as manual. All auto-update wrappers now use `bash -euo pipefail` when calling remote scripts so failures in upstream deploy/upgrade scripts propagate correctly instead of silently succeeding. test_classifier.py now accepts a service name argument and derives realistic version numbers from the release notes for testing.
120 lines
8.4 KiB
Text
120 lines
8.4 KiB
Text
action: manual
|
|
reason: Requires manually running a migration script after upgrade while PeerTube is running. Also recommends running regenerate-thumbnails and prune-storage scripts, and has configuration changes for thumbnail sizes and object storage prefixes.
|
|
---
|
|
**Blog post: https://joinpeertube.org/news/release-8.1**
|
|
|
|
### IMPORTANT NOTES
|
|
|
|
* You need to manually execute a migration script **after upgrading**, while PeerTube is running and the database migration is complete (`Migrations finished. New migration version schema: 1000` in PeerTube startup logs):
|
|
* 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-8.1.js`
|
|
* Docker installation: `cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js`
|
|
* Running [regenerate-thumbnails](https://docs.joinpeertube.org/maintain/tools#regenerate-video-thumbnails) and [prune-storage](https://docs.joinpeertube.org/maintain/tools#prune-filesystem-object-storage) scripts after the upgrade and migration script is highly recommended
|
|
* If you run PostgreSQL or Redis with TLS connection and self signed certificates, you must explicitly set `reject_unauthorized` to `true` or fill `ca`, `cert` and `key` settings in your [production.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L84)
|
|
|
|
### Maintenance
|
|
|
|
* Migrate to the `sharp` NodeJS dependency to process images. This is a native dependency that provides prebuilt binaries for most system.
|
|
FreeBSD systems, however, require an additional step after PeerTube dependencies installation:
|
|
* Install `sharp` build dependencies: https://sharp.pixelplumbing.com/install/#building-from-source
|
|
* Run `npm explore sharp -- npm run build` in `peertube-latest` directory
|
|
* Merge the `previews` directory into the `thumbnails` directory. The migration script will automatically move files
|
|
The `previews` directory and configuration are kept for compatibility reasons
|
|
* The `cache` directory is no longer deleted at PeerTube startup, to keep files cached from the previous run
|
|
|
|
### Configuration
|
|
|
|
*This section is not exhaustive*
|
|
|
|
* **Important** Generate more thumbnail sizes for videos in `thumbnails.sizes`. We recommend admins apply the same settings
|
|
* Update default object storage configuration to use different `prefix` values with the same `bucket_name` for each object type (`web_videos`, `user_exports`, etc.), so it is easier to add more object types in the future
|
|
* Use the `lucide` player theme by default
|
|
* `import.videos.http.force_ipv4` is now `true` by default to reduce rate limiting on some platforms
|
|
* Add *On Primary* color configuration (`theme.customization.on_primary_color`) to choose the foreground color when the background color is *Primary*
|
|
|
|
### Docker
|
|
|
|
* Add `va-driver-all` to the PeerTube Docker image [#7346](https://github.com/Chocobozzz/PeerTube/pull/7346)
|
|
|
|
### Plugins/Themes/Embed/REST APIs
|
|
|
|
* REST API:
|
|
* Deprecate `previewfile` when publishing a video. Use `thumbnailfile` instead
|
|
* Deprecate `thumbnailPath` and `previewPath` `Video` fields. Use the `thumbnails` array instead
|
|
* Deprecate the `thumbnailPath` `VideoPlaylist` field. Use the `thumbnails` array instead
|
|
* Remove unused `fileUrl` from `UserExport` and `VideoSource`
|
|
* Deprecate `/lazy-static/previews/:filename`. Use `/lazy-static/thumbnails/:filename` instead
|
|
* Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
|
|
* Add `filter:feed.videos.list.result` [#7355](https://github.com/Chocobozzz/PeerTube/pull/7355)
|
|
* Replace `torrentPath` with `torrentFilename` and `torrentStream` for remote torrents in `filter:api.download.torrent.allowed.result` context
|
|
|
|
### Features
|
|
|
|
* :tada: Allow uploaders to restrict domains where their video can be embedded :tada:
|
|
* Add an admin config to ensure an optimized podcast audio file is transcoded
|
|
* Support 3.0x playback speed for non-premium users :grin:
|
|
* Optimize transcoding job queue:
|
|
* Do not wait for all transcoding tasks to publish the video
|
|
* Do not wait for all transcoding tasks to move video files in object storage
|
|
* Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
|
|
* More transcoding job parallelization
|
|
* More reliable channel sync:
|
|
* Reduce youtube-dl calls to reduce rate limiting
|
|
* Handle cases where the video is not available/doesn't exist
|
|
* Handle lives that are still being post-processed
|
|
* Stop sync on get video info failure to retry at the same point next time
|
|
* UX:
|
|
* Support raw hex colors in color picker input [#7337](https://github.com/Chocobozzz/PeerTube/pull/7337)
|
|
* Group notifications by date
|
|
* Display blocked video information on the video manage page
|
|
* Add a loading icon when updating the video
|
|
* Improve the error message when the user password is too long
|
|
* Add `g l` hotkey to go to the login page
|
|
* Add ability to display video language on the `My Videos` page (column is hidden by default)
|
|
* Improve video SEO
|
|
* Support `png` and `webp` video thumbnails
|
|
* Support `svg` logos for admins
|
|
* Better email notification when a subscribed channel published a video [#7395](https://github.com/Chocobozzz/PeerTube/pull/7395)
|
|
* Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
|
|
* Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
|
|
* Support Redis TLS connections [#7404](https://github.com/Chocobozzz/PeerTube/pull/7404)
|
|
* Support PostgreSQL TLS connections [#7366](https://github.com/Chocobozzz/PeerTube/pull/7366)
|
|
* Support path style requests for object storage
|
|
* Improve channel collaboration:
|
|
* An editor can now move a video they can manage to a channel they can manage (owner/editor)
|
|
* An editor can send a *change ownership request* for a video they can manage
|
|
* Editors can add videos to playlists of collaborated channels
|
|
* Add quick actions (*Manage*, *Remove*) to the video dropdown for editors too
|
|
* Performance:
|
|
* Create video file torrents in a worker thread
|
|
* Optimize videos list SQL query with complex sort (trending, hot, etc.)
|
|
* When possible, send raw files directly instead of muxing when downloading a video
|
|
* Improve podcast feed images compatibility with Apple Podcast
|
|
* Add ability to set the default "download enabled" policy in admin configuration
|
|
|
|
### Bug fixes
|
|
|
|
* Fix videos list inconsistencies when going back to that page
|
|
* Do not display an empty details block in embed on error
|
|
* Prevent incomplete segment reads for live streams [#7333](https://github.com/Chocobozzz/PeerTube/pull/7333)
|
|
* Fix video download filename on Safari
|
|
* Fix broken P2P when updating object storage base URL
|
|
* Fix Redis sentinel support [#7365](https://github.com/Chocobozzz/PeerTube/pull/7365)
|
|
* Correctly use header colors defined by the admin
|
|
* Fix broken transcoding on remote runner when split video/audio is enabled
|
|
* Fix server config not refreshing after admin settings save [#7413](https://github.com/Chocobozzz/PeerTube/pull/7413)
|
|
* Prevent exception when the account is not loaded yet in the user moderation dropdown
|
|
* Prevent black borders when embedding a video
|
|
* Fix default scope defined by the admin when browsing videos
|
|
* Force transcoding even if the video state is not compatible
|
|
* Fix broken video studio task when updating video privacy at the same time
|
|
* Reset selected rows when loading data in tables
|
|
* Take into account channel owner video quota when an editor publishes a video to a collaborated channel
|
|
* Fix watching a password protected video as an editor
|
|
* Fix video metadata in `filter:api.video.upload.accept.result` context
|
|
* Correctly take into account the user language filter when browsing videos
|
|
* Fix `.ts` video file upload [#7458](https://github.com/Chocobozzz/PeerTube/pull/7458)
|
|
* Fix `.mkv` video file upload on latest Chrome
|
|
* Fix deleting all instance logo when deleting a specific logo
|
|
* Fix getting unsupported Node.js from PATH with yt-dlp [#7468](https://github.com/Chocobozzz/PeerTube/pull/7468)
|
|
* Inherit border color from primary color
|
|
* Fix PeerTube client that automatically updates interface language to English
|