Merge pull request #987 from kmycode/kb-draft-15.10-lts

Release: 15.10-lts
This commit is contained in:
KMY(雪あすか) 2025-03-11 12:12:51 +09:00 committed by GitHub
commit 9da6c0aa99
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 52 additions and 17 deletions

View file

@ -21,3 +21,4 @@ runs:
with: with:
ruby-version: ${{ inputs.ruby-version }} ruby-version: ${{ inputs.ruby-version }}
bundler-cache: true bundler-cache: true
cache-version: 4.3

View file

@ -131,6 +131,7 @@ jobs:
- '3.1' - '3.1'
- '3.2' - '3.2'
- '.ruby-version' - '.ruby-version'
- '3.4'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -233,6 +234,7 @@ jobs:
- '3.1' - '3.1'
- '3.2' - '3.2'
- '.ruby-version' - '.ruby-version'
- '3.4'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -313,6 +315,7 @@ jobs:
- '3.1' - '3.1'
- '3.2' - '3.2'
- '.ruby-version' - '.ruby-version'
- '3.4'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -430,6 +433,7 @@ jobs:
- '3.1' - '3.1'
- '3.2' - '3.2'
- '.ruby-version' - '.ruby-version'
- '3.4'
search-image: search-image:
- docker.elastic.co/elasticsearch/elasticsearch:7.17.13 - docker.elastic.co/elasticsearch/elasticsearch:7.17.13
include: include:

View file

@ -2,6 +2,19 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [4.3.5] - 2025-03-10
### Changed
- Change hashtag suggestion to prefer personal history capitalization (#34070 by @ClearlyClaire)
### Fixed
- Fix processing errors for some HEIF images from iOS 18 (#34086 by @renchap)
- Fix streaming server not filtering unknown-language posts from public timelines (#33774 by @ClearlyClaire)
- Fix preview cards under Content Warnings not being shown in detailed statuses (#34068 by @ClearlyClaire)
- Fix username and display name being hidden on narrow screens in moderation interface (#33064 by @ClearlyClaire)
## [4.3.4] - 2025-02-27 ## [4.3.4] - 2025-02-27
### Security ### Security

View file

@ -92,6 +92,9 @@ RUN \
# Set /opt/mastodon as working directory # Set /opt/mastodon as working directory
WORKDIR /opt/mastodon WORKDIR /opt/mastodon
# Add backport repository for some specific packages where we need the latest version
RUN echo 'deb http://deb.debian.org/debian bookworm-backports main' >> /etc/apt/sources.list
# hadolint ignore=DL3008,DL3005 # hadolint ignore=DL3008,DL3005
RUN \ RUN \
# Mount Apt cache and lib directories from Docker buildx caches # Mount Apt cache and lib directories from Docker buildx caches
@ -161,7 +164,7 @@ RUN \
libexif-dev \ libexif-dev \
libexpat1-dev \ libexpat1-dev \
libgirepository1.0-dev \ libgirepository1.0-dev \
libheif-dev \ libheif-dev/bookworm-backports \
libimagequant-dev \ libimagequant-dev \
libjpeg62-turbo-dev \ libjpeg62-turbo-dev \
liblcms2-dev \ liblcms2-dev \
@ -344,7 +347,7 @@ RUN \
# libvips components # libvips components
libcgif0 \ libcgif0 \
libexif12 \ libexif12 \
libheif1 \ libheif1/bookworm-backports \
libimagequant0 \ libimagequant0 \
libjpeg62-turbo \ libjpeg62-turbo \
liblcms2-2 \ liblcms2-2 \

View file

@ -270,11 +270,11 @@ GEM
ffi-compiler (1.3.2) ffi-compiler (1.3.2)
ffi (>= 1.15.5) ffi (>= 1.15.5)
rake rake
flatware (2.3.3) flatware (2.3.4)
drb drb
thor (< 2.0) thor (< 2.0)
flatware-rspec (2.3.3) flatware-rspec (2.3.4)
flatware (= 2.3.3) flatware (= 2.3.4)
rspec (>= 3.6) rspec (>= 3.6)
fog-core (2.5.0) fog-core (2.5.0)
builder builder
@ -1065,4 +1065,4 @@ RUBY VERSION
ruby 3.3.4p94 ruby 3.3.4p94
BUNDLED WITH BUNDLED WITH
2.5.18 2.6.5

View file

@ -235,7 +235,7 @@ export const DetailedStatus: React.FC<{
<Card <Card
sensitive={status.get('sensitive') && !status.get('spoiler_text')} sensitive={status.get('sensitive') && !status.get('spoiler_text')}
onOpenMedia={onOpenMedia} onOpenMedia={onOpenMedia}
card={status.get('card', null)} card={status.get('card')}
/> />
); );
} }

View file

@ -354,12 +354,26 @@ const expiresInFromExpiresAt = expires_at => {
const mergeLocalHashtagResults = (suggestions, prefix, tagHistory) => { const mergeLocalHashtagResults = (suggestions, prefix, tagHistory) => {
prefix = prefix.toLowerCase(); prefix = prefix.toLowerCase();
if (suggestions.length < 4) { if (suggestions.length < 4) {
const localTags = tagHistory.filter(tag => tag.toLowerCase().startsWith(prefix) && !suggestions.some(suggestion => suggestion.type === 'hashtag' && suggestion.name.toLowerCase() === tag.toLowerCase())); const localTags = tagHistory.filter(tag => tag.toLowerCase().startsWith(prefix) && !suggestions.some(suggestion => suggestion.type === 'hashtag' && suggestion.name.toLowerCase() === tag.toLowerCase()));
return suggestions.concat(localTags.slice(0, 4 - suggestions.length).toJS().map(tag => ({ type: 'hashtag', name: tag }))); suggestions = suggestions.concat(localTags.slice(0, 4 - suggestions.length).toJS().map(tag => ({ type: 'hashtag', name: tag })));
} else {
return suggestions;
} }
// Prefer capitalization from personal history, unless personal history is all lower-case
const fixSuggestionCapitalization = (suggestion) => {
if (suggestion.type !== 'hashtag')
return suggestion;
const tagFromHistory = tagHistory.find((tag) => tag.localeCompare(suggestion.name, undefined, { sensitivity: 'accent' }) === 0);
if (!tagFromHistory || tagFromHistory.toLowerCase() === tagFromHistory)
return suggestion;
return { ...suggestion, name: tagFromHistory };
};
return suggestions.map(fixSuggestionCapitalization);
}; };
const normalizeSuggestions = (state, { accounts, emojis, tags, token }) => { const normalizeSuggestions = (state, { accounts, emojis, tags, token }) => {

View file

@ -82,9 +82,9 @@
.accounts-table { .accounts-table {
width: 100%; width: 100%;
table-layout: fixed;
.account { .account {
max-width: calc(56px + 30ch);
padding: 0; padding: 0;
border: 0; border: 0;
} }

View file

@ -59,7 +59,7 @@ services:
web: web:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
build: . build: .
image: kmyblue:15.9-lts image: kmyblue:15.10-lts
restart: always restart: always
env_file: .env.production env_file: .env.production
command: bundle exec puma -C config/puma.rb command: bundle exec puma -C config/puma.rb
@ -83,7 +83,7 @@ services:
build: build:
dockerfile: ./streaming/Dockerfile dockerfile: ./streaming/Dockerfile
context: . context: .
image: kmyblue-streaming:15.9-lts image: kmyblue-streaming:15.10-lts
restart: always restart: always
env_file: .env.production env_file: .env.production
command: node ./streaming/index.js command: node ./streaming/index.js
@ -101,7 +101,7 @@ services:
sidekiq: sidekiq:
build: . build: .
image: kmyblue:15.9-lts image: kmyblue:15.10-lts
restart: always restart: always
env_file: .env.production env_file: .env.production
command: bundle exec sidekiq command: bundle exec sidekiq

View file

@ -13,7 +13,7 @@ module Mastodon
end end
def kmyblue_minor def kmyblue_minor
9 10
end end
def kmyblue_flag def kmyblue_flag
@ -31,7 +31,7 @@ module Mastodon
end end
def patch def patch
4 5
end end
def default_prerelease def default_prerelease

View file

@ -688,7 +688,7 @@ const startServer = async () => {
// filtering of statuses: // filtering of statuses:
// Filter based on language: // Filter based on language:
if (Array.isArray(req.chosenLanguages) && payload.language !== null && req.chosenLanguages.indexOf(payload.language) === -1) { if (Array.isArray(req.chosenLanguages) && req.chosenLanguages.indexOf(payload.language) === -1) {
log.debug(`Message ${payload.id} filtered by language (${payload.language})`); log.debug(`Message ${payload.id} filtered by language (${payload.language})`);
return; return;
} }