feat: Add PeerTube & PieFed auto-update, improve classifier

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.
This commit is contained in:
Jeena 2026-04-12 23:13:26 +00:00
parent f55f3d8e91
commit 67a9509eaa
13 changed files with 376 additions and 10 deletions

View file

@ -0,0 +1,97 @@
action: manual
reason: Major release with long-running database migrations (up to 30 minutes), a required post-upgrade migration script, package manager change from yarn to pnpm that must be installed beforehand, and NodeJS version requirements.
---
### IMPORTANT NOTES
* Database migrations of this version can take a long time (up to 30 minutes on an instance with many users/federation actors and a slow database disk)
* You need to manually execute a migration script **after your upgrade** while PeerTube is running and the database migration is complete (`Migrations finished. New migration version schema: 970` 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.0.js`
* Docker installation: `cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.0.js`
* `yarn` NodeJS packages manager has been removed in favor of `pnpm`. Follow the [dependencies guide](https://docs.joinpeertube.org/support/doc/dependencies) to install `pnpm` on your system **before the upgrade**
* Ensure `storage.uploads` directory is set in your [production.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L139)
* Supported NodeJS versions are `>= 20.19 and < 21` or `>= 22.12 and <23`
* For Docker users, please read the Docker section below
### Configuration
* Remove `http_server` unused section from `.yaml` configuration files
* Introduce `views.videos.local.max_age` configuration to cleanup old views from local videos
* Add more STUN Servers to `webrtc.stun_servers` to improve P2P robustness
* Add ability to increase video transcription timeout in `video_transcription.timeout`
* Add `client.new_features_info` configuration to disable popups explaining new features to users
* Add `user.password_constraints.min_length` config to specify user password minimum length [#6945](https://github.com/Chocobozzz/PeerTube/pull/6945)
### Docker
* PeerTube Dockerfile is now based on Debian Trixie. `chocobozzz/peertube:production` can be used instead of `chocobozzz/peertube:production-trixie` (Debian suffix version is deprecated)
* PostgreSQL version has been upgraded in [Docker Compose](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml). Please follow [this guide](https://docs.joinpeertube.org/install/docker#upgrade-postgresql-container) if you want to upgrade PostgreSQL in your Docker Compose
* Redis version has been upgraded in [Docker Compose](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml). No maintenance task is required if you upgrade Redis in your Docker Compose
### Plugins/Themes/Embed/REST APIs
* REST API:
* Remove deprecated `filename` field from `VideoSource` object
* Remove deprecated `commentsEnabled` field from `Video` object
* Remove deprecated `redundancies.files`field from `VideoRedundancy` object
* Deprecate `captionPath` field from `VideoCaption` object. Use `fileUrl` instead
* Deprecate `storyboardPath` from `Storyboard` object. Use `fileUrl` instead
* Deprecate `path` from `ActorImage` object (avatars, banners). Use `fileUrl` instead
* The HTTP response code for password-protected videos can be either 401 or 403, depending on the request headers
* Theme:
* Rename `--input-placeholder` CSS variables into `--input-placeholder-color`
* Introduce `--input-placeholder-font-size` CSS variable
### Features
* :tada: Add channel collaboration :tada:
* Channel owners can invite users of their instance to become editors of their channel
* Editors can accept or reject the invitation
* Editors can manage videos, playlists & comments of the channel
* An *Activity* page has been added to list actions performed within a channel
* :tada: Video player redesign :tada:
* Introduce a new clean and modern theme named **Lucide**
* Original theme is still used by default, and has been renamed to **Galaxy**
* The player theme can be changed by the admin for the entire instance or by the channel for all its videos. It can also be changed for individual videos.
* Use vertical audio volume control for **Galaxy** player theme
* Improve video imports UX
* Introduce an *Import failed* state to clearly identify failed imports
* Display import state in video manage page and watch page
* Add ability to retry video imports
* Channel synchronization automatically retry failed imports
* Redesign notifications popup and page
* Replace `yarn` package manager by `pnpm` to provide faster PeerTube installation/upgrade and faster plugin installation/upgrade
* Add admin options to customize default *Browse videos* behaviour [#7193](https://github.com/Chocobozzz/PeerTube/pull/7193)
* Add ability to handle storyboard generation job by runners [#7191](https://github.com/Chocobozzz/PeerTube/pull/7191)
* Add *Resend verification email* button to admin users list [#7272](https://github.com/Chocobozzz/PeerTube/pull/7272)
* Improve video manage and admin config forms accessibility
* Add ability to insert a new playlist at first position in the channel
* Add ability to copy codecs, if possible, for HLS transcoding
* Also search by account name when searching for channels
* Faster start time seek on HLS videos
### Bug fixes
* Fix avatar max size information
* Fix scroll issue when navigating from homepage
* Fix viewers stats date filter label after a reset
* Fix select languages component label
* Correctly load user video language settings in video filters
* Accept non-HTTPS URLs for the search index
* Fix admin abuse URL in emails
* Show videos to owners even if they are muted on the instance
* Correctly sort scheduled videos when listing my videos
* Fix account mention redirection
* Display all countries/regions labels in viewer stats graph
* Keep videos order after user import
* Fix HTML headings hierarchy to improve SEO
* Users logged-in by an external auth plugin can choose to display their email publicly (required by Apple for the podcast feed)
* Fix podcast feed video bitrate attribute that can be refused by some podcast applications
* Fix video quota information estimation
* Translate RSS feeds title
* Fix transcription CORS issue if the caption file is stored externally
* Do no uppercase video tags
* Fix resetting instance categories/languages
* Fix black screen when updating web video resolution in player
* Fix displaying more than 100 live sessions
* Reload page after login to respect user lang
* Do not run storyboard/transcription jobs without the appropriate stream