12.0 RC1
π Jellyfin Server 12.0 RC1
We are pleased to announce the first release candidate preview release of Jellyfin 12.0!
This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.
As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!
A note about versioning
Starting with this release, we are dropping the preceeding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was.
Thus, we are now on two digits:
- The first digit is the major release. Expect signifiant changes between major releases. Do not ever auto-update to a new major release without first checking the release notes, and always take a backup of your server data and config before a major release upgrade.
- The second digit is the minor release. These are primarily bug and security fix releases, and do not introduce significant feature or functionality changes. You can, usually, safely auto-update between minor releases and should not need a full backup, but it is prudent just in case. You should also ALWAYS strive to run the latest point release as security fixes are embargo'd for at most 2 weeks after the release.
What's new?
The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.
There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests.
Note: You must be on Jellyfin 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. I have been informed that I was wrong here, and upgrades from 10.10.7 are also possible, same as 10.11.x!
Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process.
Note: If you install the RC, you should disable all plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.
Installing
This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.
- For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
- For Docker, you can pull the
12.0-rc1orpreviewtags.
What's Changed (since v10.11.x)
- Update CODEOWNERS to capture bump_version by @joshuaboniface in #15236
- Update Jellyfin Server version in issue template by @dpieski in #15398
- Add all 10.11 versions to issue template by @anthonylavado in #15565
- Add version to StartupUI by @JPVenson in #15246
- Disable legacy authorization methods by default by @nielsvanvelzen in #15559
- Deprecate HasPassword property on UserDto by @nielsvanvelzen in #14950
- Add support for more embedded metadata tags by @allmazz in #15437
- Fix TV Series parsing containing only numbers. by @CodyEngel in #14824
- refactor(StreamInfo): reorganize subtitle URL logic and conditions by @sususu98 in #13977
- Add milliseconds to default console output format by @kevgrig in #15227
- Remove special client behavior for API response fields by @nielsvanvelzen in #15638
- Add subtitle extraction timeout configuration option by @KarkaLT in #15538
- Add CPU to issue template by @theguymadmax in #15704
- Fix episodes showing up on recently added shows by @theguymadmax in #15433
- Fix: normalize punctuation when computing CleanName so searches without punctuation match (closes #1674) by @audrey-inglish in #14879
- Locking cleaning by @MarkCiliaVincenti in #15713
- Add ability to sort and filter activity log entries by @crobibero in #15583
- Fix typo in CheckOrCreateMarker exception by @Xinerki in #15341
- avoid Take(0) when Limit == 0 in #14608
- Proper pinning of SkiaSharp to prevent accidental updates by @MarkCiliaVincenti in #15736
- Optimize GetUniqueFlags() by @stevenaw in #15774
- Remove legacy API route middleware by @nielsvanvelzen in #15669
- parse more information from book filenames by @dkanada in #15655
- Library: Async the SaveImages function by @luigi311 in #15718
- Update issue template version to 10.11.5 by @theguymadmax in #15798
- Fixed Multi Sort in New ActivityManager by @bjorntp in #15820
- Add myself to CONTRIBUTORS.md by @allmazz in #15831
- Fix GET MetadataEditor ContentTypeOptions for mixed content by @Smeagolworms4 in #15797
- Fixed issue with ABI Compatability - Difference not completing by @PeachesMLG in #15924
- Upgrade Swashbuckle and fix OpenAPI spec by @Shadowghost in #15886
- Optimize
StringHelper.FirstToUpper()by @stevenaw in #15916 - Fix API diff workflow by @Shadowghost in #15888
- Fix KeyNotFoundException in CryptographyProvider when iterations parameter is missing by @ZeusCraft10 in #15958
- Add TrueHD and DTS codes string for HLS by @nyanmisaka in #15959
- fix: Handle unknown item types gracefully in DeserializeBaseItem by @ZeusCraft10 in #15956
- Update to .NET 10.0 by @Bond-009 in #15475
- Refactor HLS transcode seeking by @abitofevrything in #15926
- Fix zh-CN subtitle language display by @ZeusCraft10 in #15947
- Fix typos in XML documentation comments by @vignesh1507 in #15997
- Update issue template version to 10.11.6 by @theguymadmax in #16059
- fix: prevent premature disposal of HTTP subtitle streams by @lostb1t in #14809
- SessionManager: Log when playback is started by @jpds in #15908
- extract local metadata from OPF and EPUB files by @dkanada in #15604
- Remove some deprecated API members by @nielsvanvelzen in #16110
- Fix: Resolve CA1849 synchronous IO in EpubImageProvider by @Gladtbam in #16124
- Fix TMDB language handling: support full ISO 639-1 + ISO 3166-1 codes (e.g. zh-CN, zh-TW) by @Daydreamer-riri in #16151
- Add curly brace and parentheses support for parsing attribute values by @nileshp87 in #14927
- Skip validation for empty landing preferences by @theguymadmax in #16178
- Trim names and roles for people by @theguymadmax in #16181
- Fix container and updated by @JPVenson in #16202
- Fix: Add 'Kairon; IRSE!' to artist whitelist by @loop95 in #14709
- Add moveToTop option to IPlaylistManager.AddItemToPlaylistAsync by @kevgrig in #15138
- TmdbSeriesProvider: Set ProductionYear field by @DerMaddis in #16144
- Fix episodes appearing in Season Unknown incorrectly and prevent unnecessary virtual season creation by @theguymadmax in #16236
- Mitigate pull_request_target privilege escalation by @andrewrabert in #16263
- Upgrade Swashbuckle to v10 by @Shadowghost in #16256
- Fix malformed query string in StreamInfo.ToUrl() causing 500 error via proxies by @cosu in #16255
- Revise note on hosting web client for development by @JPVenson in #16281
- Update JetBrains logo link in README.md by @anthonylavado in #16323
- AIFF support: add .aifc as audio file type, remove .aiff as image file type in #16274
- Use artist images for music library thumbnail by @theguymadmax in #16240
- Fix near-1:1 SAR values falsely flagged as anamorphic by @NoFear0411 in #16318
- Add missing ProducesResponseType(401) to QuickConnectController.InitiateQuickConnect by @JuanCalderon-17 in #16331
- Fix ItemValues Type checks by @Shadowghost in #16160
- Return BadRequest when an invalid set of filters is given by @Bond-009 in #16398
- Use generic Enum overloads to resolve CA2263 warnings by @jaxx2104 in #16395
- Respect library country code for parental ratings by @theguymadmax in #16388
- Fix remote image language priority to prefer English over no-language by @redinsch in #16368
- Recognize ".m4b", ".m4a", ".aac", ".flac", ".mp3", and ".opus" as an audio-book formats by @lousando in #15377
- include external IDs and URLs for book providers by @dkanada in #15593
- Fix int32 overflow in QSV rate-control parameter computation by @scheilch in #16376
- fix crashes on devices that don't support ipv6 by @JanzenJohn in #15841
- Fix filename truncation when bracketed tags appear mid-filename by @tyage in #16222
- Add spec-compliant dvh1 HLS variant for Dolby Vision Profile 5 by @NoFear0411 in #16362
- Fix attachment extraction of files without video or audio stream by @Shadowghost in #16312
- More robust date handling in Library DB migration by @Shadowghost in #16474
- Add ignore patterns for Hungarian sample files by @furdiburd in #16238
- fix: cap GetVideoBitrateParamValue at 400 Mbps by @scheilch in #16467
- recognize underscore and dot separators for multi-version grouping by @upscaylman in #16465
- split openapi workflows between pull request and merge by @dkanada in #16463
- Only set IsAvc for video streams by @Bond-009 in #16507
- Cleanup trickplay cache dir on failure by @Shadowghost in #16365
- remove nested directory for openapi workflows by @dkanada in #16524
- Update issue template version to 10.11.7 by @theguymadmax in #16530
- Add callback for segment data pruning to IMediaSegmentProvider by @Shadowghost in #16419
- fix openapi report and publish workflows by @dkanada in #16556
- Fix parental ratings not working on music albums by @theguymadmax in #16553
- Fix UDP Auto-Discovery returning IPv6 for cross-subnet IPv4 requests by @ZeusCraft10 in #15902
- fix invalid workflow on openapi report job by @dkanada in #16561
- edit openapi files in place with sed by @dkanada in #16569
- add StartIndex and ParentId to person search by @dkanada in #16397
- Add AlbumNormalizationGain field to BaseItemDto by @HeroBrine1st in #14745
- Reverse check for track changed by @bilbofroggins in #16501
- Fix BoxSet parentId being ignored in item queries by @theguymadmax in #16490
- Update issue template version to 10.11.8 by @theguymadmax in #16573
- Don't spam debug log with items without rating by @Bond-009 in #16342
- Backport security fixes by @Bond-009 in #16577
- Fix FolderStorageInfo to show parent filesystem by @joshuaboniface in #16456
- Fix HDR tonemapping for BDMV content by @ddemarco5 in #16609
- Fix language display for ISO 639-2-only codes (e.g. mul, und, mis, zxx) by @shocklateboy92 in #16567
- Respect EnableSubtitleExtraction setting in subtitle delivery by @LTe in #16380
- add NameStartsWith and NameLessThan filters to Person search by @dkanada in #16619
- Fix in-process restart by @Shadowghost in #16482
- Fix artist metadata not being fetched on initial library scan by @theguymadmax in #16606
- chore(ci): Add permissions grant by @jsoref in #13443
- fix: retain subtitles spanning HLS segment boundaries by @LiHRaM in #16594
- Don't allow library name with leading or trailing space by @gnattu in #13491
- Added Tanzania countries.json by @ewkonzo in #14406
- Move rename command permission check to script by @felix920506 in #11231
- Set XmlTvProgram.IsLive by @SenorSmartyPants in #8890
- Remove global subtitle configuration by @KGT1 in #14957
- Update to Jellyfin.XmlTv 10.12.0-pre1 by @Bond-009 in #16659
- Enable jellyfin.db customized path by @twsouthwick in #15355
- Include item path in provider error log messages by @johnpc in #16667
- Skip libraries without enabled subtitle providers in SubtitleScheduledTask by @MBR-0001 in #16649
- fix: add image/jpg to MIME type extension lookup by @jskoetsier in #16658
- Remove all JF contributors from Emby list by @Bond-009 in #16694
- Upgrade to xunit v3 by @Shadowghost in #16666
- Fix watched status resetting on re-watch by @MSalman5230 in #15762
- improve openapi endpoint categorization by @dkanada in #16698
- Fix IPv6 prefixes not recognized as proxy by @dwandw in #16672
- hide HLS controllers and deprecate unused endpoints by @dkanada in #16715
- fix: use symmetric 15s default for skip forward/backward lengths by @tcsenpai in #16739
- Avoid SSA to ASS conversion and loss of styles by @nyanmisaka in #16744
- feat/audiobook_chapters by @sevenrats in #16518
- Query Performance Improvements by @Shadowghost in #16062
- Fix FFProbeVideoInfo downloading subtitles without considering internal streams by @MBR-0001 in #16747
- Fix triple digit episode number handling by @Shadowghost in #16475
- fix person TotalRecordCount when limit is applied by @dkanada in #16616
- Fix Playlist and Boxset query, save and count performance by @Shadowghost in #16761
- Fix keyframe duration overshoot breaking playback by @dyld-w in #16704
- Implement ignore rule caching by @Shadowghost in #16166
- Honor episode NFO season during metadata merge by @itz4blitz in #16702
- Fix dummy chapter handling for videos with a single chapter or short duration. by @ExpctING in #16695
- Add CACHEDIR.tag support by @Shadowghost in #16478
- Keep legacy authorization enabled by @nielsvanvelzen in #16754
- Fix use of thread-unsafe List.Sort() by @gabeluci in #16777
- Guard against null-overwrite of saved audio/subtitle track selections by @llaforest in #16769
- Speed-up LatestItems for Music by @Shadowghost in #16756
- Fix EPG issues by @Shadowghost in #16220
- Fix rewatch query by @Shadowghost in #16778
- Remove unnecessary ToList calls in TrickplayManager by @poytiis in #16322
- Add different Slovak and Czech translation of Season for parsing by @Biosias in #16646
- Add the filename to exceptions in DeserializeFromFile() by @lcorbasson in #16246
- Fix UserManager after EFcore refactor (backport #15368) by @JPVenson in #16782
- Fix subtitle save path by @Shadowghost in #16779
- Move MusicBrainz Query client to plugin instance by @Shadowghost in #16780
- Fix unique people response for query if no item ID is supplied by @Shadowghost in #16783
- Ignore season directories with no video for TV Shows by @LmanTW in #16611
- Fix #16308: Community ratings not updating after changing .nfo file. by @PERSONALPANCHIWIRIS in #16466
- Remove DigitalOcean from sponsors section by @theguymadmax in #16788
- Fix Canadian rating and fallback to unrated if we have a CountryCode but no matching rating by @Shadowghost in #16328
- Add startup mode to migrate or seed the database on cmd by @JPVenson in #16319
- Fix live stream consumer leak on negative PositionTicks by @WizardOfYendor1 in #16321
- Parse provider IDs from season and episode folder/file names by @IDisposable in #16472
- Fix MusicBrainz test. by @IDisposable in #16789
- fix person type exclusion in api response by @dkanada in #16784
- Switch to new version scheme by @Shadowghost in #16758
- Allow tmdb as an alias for tmdbid provider id by @theguymadmax in #16433
- Add OriginalLanguage as option to PreferredAudioLanguage by @Lampan-git in #12579
- Fix CA1051 and CA1815 warnings, Change public fields to auto properties by @tjwalkr3 in #14847
- Fix Segment Provider Configuration by @Shadowghost in #16798
- IOException with STRM HTTP URLs by @benbenmoss in #16290
- Fix artist duplicates by @Shadowghost in #16807
- Add videoRotation profile condition by @nyanmisaka in #16803
- Print warning on invalid Subnets in Network/Proxy configuration by @Shadowghost in #16793
- Suppress CA2213 false positive on ApplicationHost._pluginManager (#2149) by @bittoby in #16792
- Use SortName when sorting by name by @Shadowghost in #16804
- Safeguard against invalid GUIDs by @Shadowghost in #16813
- consolidate OpenAPI categories and deprecate startup routes by @dkanada in #16757
- Reference correct .NET version in README by @Bond-009 in #16831
- return music artists from person endpoints by @dkanada in #16721
- Update log for user session related concurrency update fails by @JPVenson in #16835
- Add Accept-Language header support and cleanup translations by @Shadowghost in #16488
- Implement similarity providers by @Shadowghost in #15970
- Implement multiple versions for episodes. by @Shadowghost in #16828
- New filters for audio and subtitle languages by @TheMelmacian in #9787
- Set max rating for splashscreen to 13 by @theguymadmax in #16852
- Fix CA1819 warnings in ChannelFeatures by using IReadOnlyList by @jtvhd6 in #16853
- fix: add null check for non-existent program in GetProgram by @BrunoSync in #16858
- Misc fixes by @Shadowghost in #16837
- fix: write livetv recording NFO dateadded as UTC by @tayfun-akguc in #16863
- Embed external subtitles into MKV when transcoding by @LTe in #16448
- Use --batch --yes for installing jellyfin keyring in devcontainer by @IDisposable in #16878
- Fix integrated provider images by @Shadowghost in #16855
- Modernize version display in UI by @JPVenson in #16862
- Have device deletion take list of ids by @LePips in #12834
- Add support for filtering boxsets by parentId by @Shadowghost in #16882
- Reorder Migrations and fix failing migration by @JPVenson in #16861
- Add CI format check by @jakobkukla in #15250
- Fix Merge Conflict Labeler by @Bond-009 in #16892
- Add support for filtering playlists by parentId by @Shadowghost in #16893
- Update issue template version to 10.11.9 by @theguymadmax in #16897
- fix: suppress repeated PriorityClass warning in MediaEncoder by @psavarmattas in #16872
- Backport: Fix/user manager collation by @Bond-009 in #16919
- Update issue template version to 10.11.10 by @theguymadmax in #16927
- Fix inconsistent extradata generated by hevc_vaapi on AMD driver by @nyanmisaka in #16913
- Improve OriginalLanguage normalization and inheritance by @Lampan-git in #16829
- Fix movie recommendations by @Shadowghost in #16856
- Fix A/V desync when resuming HLS with video transcode + audio copy by @LTe in #16580
- Fix Merge Conflict Labeler #2 by @Bond-009 in #16963
- Add new viewtypes options by @theguymadmax in #16177
- Add a collection API for
Included Infeature by @XSAM in #15516 - Fix CA2007 warnings in InstallationManager by @jonesy827 in #16946
- Use ConfigureAwait(false) in CollectionController by @PCEWLKR in #16953
- Remove NowPlayingQueueFullItems from session DTOs by @PCEWLKR in #16976
- Compare old file byte-by-byte to new stream by @IDisposable in #16936
- Add support for VobSub subtitle streams by @altqx in #16552
- Fix inaccessible artist when they exist in multiple libraries by @theguymadmax in #16977
- Fix similarity by @Shadowghost in #16942
- Fix Schedules Direct API Error Codes by @arazilsongweaver in #16920
- Fix folders being identified as seasons in mixed libraries by @theguymadmax in #16259
- Only resolve symlinks on playback by @Shadowghost in #16965
- Re-disable legacy authorization methods by default by @theguymadmax in #16992
- Write subtitles using SubtitleEdit by @Bond-009 in #16805
- Fix recently added episode links and posters by @Shadowghost in #16967
- Trim tags by @theguymadmax in #16994
- Fix incorrect list capacity by @theguymadmax in #16996
- Only default recursive to true if we have includeItemTypes by @Shadowghost in #16999
- Make EncoderPreset non nullable by @nyanmisaka in #17007
- Extract attachments in one ffmpeg command when dumping by @Shadowghost in #16915
- Fix season unknown for flat TV structures by @theguymadmax in #16995
- Improve Merge Conflict Labeler by @Bond-009 in #17018
- Prefer subtitle extension over codec by @Bond-009 in #16998
- Enforce parental filtering on additional endpoints by @Shadowghost in #17019
- Fix playlist visibility by @Shadowghost in #17025
- Fix subtitle replacement not invalidating cache by @Shadowghost in #17028
- Fix external data pruning on item deletion by @Shadowghost in #16941
- Discover existing trickplay files on scan by @Shadowghost in #16945
- Update issue template version to 10.11.11 by @theguymadmax in #17035
- Fix xUnit1051 in UserManagerLockHelperTests by @Shadowghost in #17043
- fix(dto): prefer PlaylistsFolder primary image for playlists tiles by @beateixeira04 in #16520
- Implement search providers by @Shadowghost in #16121
- Refresh live TV channel image when remapped (alt #7843) (fixes #7834) by @Bond-009 in #10841
- Media source handling fixes by @Shadowghost in #17041
- Prefer local alternate versions when deduplicating linked children by @Shadowghost in #17042
- Add code assistance section to PR template by @nielsvanvelzen in #17054
- migrate local comic providers to server codebase by @dkanada in #16444
- Fix duplicate trickplay images for interlaced videos by @nyanmisaka in #17058
- Fix CleanName and CleanValue refresh by @Shadowghost in #17064
- Assign correct season info to new episodes by @ivanjx in #17051
- Fix duplicate key collision by @theguymadmax in #17083
- Fix AudioDb album description not displayed for English (mirror of #16606) by @Gadnief in #17081
- Add support for background images and episode thumbnails from XMLTV by @SheaSmith in #17077
- Fix AlbumIds filtering by Name instead of by Id by @matt-teahan in #17085
- Replace usage of SharpCompress by @Bond-009 in #17089
- Fetch TV Shows creators from TMDB by @Rant423 in #17107
- Always apply recursive when filters are requested by @Shadowghost in #17088
- Extend TranscodingReason reporting by @Shadowghost in #17106
- improve book resolution from filename by @dkanada in #17087
- Follow native interoperability best practices by @Bond-009 in #17099
- Fix episode air date offset after initial scan by @theguymadmax in #17121
- Fix series year lost during name parsing by @theguymadmax in #17112
- Fixed "Deleting media that is still being watched in SyncPlay results in errors" by @pokreman06 in #14935
- Skip parsing root-level folders in SeriesResolver by @theguymadmax in #17116
- Deprecate the redundant /Trailers endpoint by @moontwister in #17094
- Fix audio sample rate forced to 48 kHz for non-Opus codecs by @moontwister in #17090
- Fix Identify returning wrong results by @theguymadmax in #17146
New Contributors
- @dpieski made their first contribution in #15398
- @allmazz made their first contribution in #15437
- @CodyEngel made their first contribution in #14824
- @kevgrig made their first contribution in #15227
- @KarkaLT made their first contribution in #15538
- @audrey-inglish made their first contribution in #14879
- @Xinerki made their first contribution in #15341
- @stevenaw made their first contribution in #15774
- @luigi311 made their first contribution in #15718
- @bjorntp made their first contribution in #15820
- @Smeagolworms4 made their first contribution in #15797
- @ZeusCraft10 made their first contribution in #15958
- @abitofevrything made their first contribution in #15926
- @vignesh1507 made their first contribution in #15997
- @jpds made their first contribution in #15908
- @Gladtbam made their first contribution in #16124
- @Daydreamer-riri made their first contribution in #16151
- @nileshp87 made their first contribution in #14927
- @loop95 made their first contribution in #14709
- @DerMaddis made their first contribution in #16144
- @cosu made their first contribution in #16255
- @NoFear0411 made their first contribution in #16318
- @JuanCalderon-17 made their first contribution in #16331
- @jaxx2104 made their first contribution in #16395
- @redinsch made their first contribution in #16368
- @lousando made their first contribution in #15377
- @scheilch made their first contribution in #16376
- @JanzenJohn made their first contribution in #15841
- @tyage made their first contribution in #16222
- @furdiburd made their first contribution in #16238
- @upscaylman made their first contribution in #16465
- @HeroBrine1st made their first contribution in #14745
- @bilbofroggins made their first contribution in #16501
- @ddemarco5 made their first contribution in #16609
- @shocklateboy92 made their first contribution in #16567
- @LTe made their first contribution in #16380
- @LiHRaM made their first contribution in #16594
- @ewkonzo made their first contribution in #14406
- @twsouthwick made their first contribution in #15355
- @johnpc made their first contribution in #16667
- @jskoetsier made their first contribution in #16658
- @MSalman5230 made their first contribution in #15762
- @dwandw made their first contribution in #16672
- @tcsenpai made their first contribution in #16739
- @sevenrats made their first contribution in #16518
- @dyld-w made their first contribution in #16704
- @itz4blitz made their first contribution in #16702
- @ExpctING made their first contribution in #16695
- @gabeluci made their first contribution in #16777
- @llaforest made their first contribution in #16769
- @poytiis made their first contribution in #16322
- @Biosias made their first contribution in #16646
- @lcorbasson made their first contribution in #16246
- @LmanTW made their first contribution in #16611
- @PERSONALPANCHIWIRIS made their first contribution in #16466
- @WizardOfYendor1 made their first contribution in #16321
- @benbenmoss made their first contribution in #16290
- @bittoby made their first contribution in #16792
- @jtvhd6 made their first contribution in #16853
- @BrunoSync made their first contribution in #16858
- @tayfun-akguc made their first contribution in #16863
- @psavarmattas made their first contribution in #16872
- @XSAM made their first contribution in #15516
- @jonesy827 made their first contribution in #16946
- @PCEWLKR made their first contribution in #16953
- @altqx made their first contribution in #16552
- @arazilsongweaver made their first contribution in #16920
- @beateixeira04 made their first contribution in #16520
- @Gadnief made their first contribution in #17081
- @SheaSmith made their first contribution in #17077
- @matt-teahan made their first contribution in #17085
- @Rant423 made their first contribution in #17107
- @pokreman06 made their first contribution in #14935
- @moontwister made their first contribution in #17094
Full Changelog: v10.11.11...v12.0-rc1