Skip to content

Commit f3a3452

Browse files
committed
Merge tag '2024.10.1' into nyadev
2 parents a2b8920 + d2e8dc4 commit f3a3452

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+3359
-113
lines changed

.github/labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'packages/backend:test':
77
- any:
88
- changed-files:
9-
- any-glob-to-any-file: ['packages/backend/test/**/*']
9+
- any-glob-to-any-file: ['packages/backend/test/**/*', 'packages/backend/test-federation/**/*']
1010

1111
'packages/frontend':
1212
- any:

.github/workflows/test-federation.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Test (federation)
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- develop
8+
paths:
9+
- packages/backend/**
10+
- packages/misskey-js/**
11+
- .github/workflows/test-federation.yml
12+
pull_request:
13+
paths:
14+
- packages/backend/**
15+
- packages/misskey-js/**
16+
- .github/workflows/test-federation.yml
17+
18+
jobs:
19+
test:
20+
runs-on: ubuntu-latest
21+
strategy:
22+
matrix:
23+
node-version: [20.16.0]
24+
steps:
25+
- uses: actions/checkout@v4
26+
with:
27+
submodules: true
28+
- name: Install pnpm
29+
uses: pnpm/action-setup@v4
30+
- name: Install FFmpeg
31+
uses: FedericoCarboni/setup-ffmpeg@v3
32+
- name: Use Node.js ${{ matrix.node-version }}
33+
uses: actions/[email protected]
34+
with:
35+
node-version: ${{ matrix.node-version }}
36+
cache: 'pnpm'
37+
- name: Build Misskey
38+
run: |
39+
corepack enable && corepack prepare
40+
pnpm i --frozen-lockfile
41+
pnpm build
42+
- name: Setup
43+
run: |
44+
cd packages/backend/test-federation
45+
bash ./setup.sh
46+
sudo chmod 644 ./certificates/*.test.key
47+
- name: Start servers
48+
# https://github.com/docker/compose/issues/1294#issuecomment-374847206
49+
run: |
50+
cd packages/backend/test-federation
51+
docker compose up -d --scale tester=0
52+
- name: Test
53+
run: |
54+
cd packages/backend/test-federation
55+
docker compose run --no-deps tester
56+
- name: Stop servers
57+
run: |
58+
cd packages/backend/test-federation
59+
docker compose down

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ coverage
3838
!/.config/docker_example.env
3939
!/.config/cypress-devcontainer.yml
4040
docker-compose.yml
41-
compose.yml
41+
./compose.yml
4242
.devcontainer/compose.yml
4343
!/.devcontainer/compose.yml
4444

CHANGELOG.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
## 2024.10.1
2+
23
### Note
3-
- 悪質なユーザからサーバを守る措置の一環として、モデレータ権限を持つユーザの最終アクティブ日時を確認し、
4-
7日間活動していない場合は自動的に招待制へと移行(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)するようになりました。
5-
詳細な経緯は https://github.com/misskey-dev/misskey/issues/13437 をご確認ください。
4+
- スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 )
5+
- 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。
66

77
### General
88
- Feat: ユーザーの名前に禁止ワードを設定できるように
99

1010
### Client
11+
- Enhance: タイムライン表示時のパフォーマンスを向上
12+
- Enhance: アーカイブした個人宛のお知らせを表示・編集できるように
1113
- Enhance: l10nの更新
1214
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
1315

1416
### Server
15-
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと移行するように ( #13437 )
17+
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 )
18+
- Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように
1619
- Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正
17-
18-
### Server
20+
- Fix: RBT有効時、リノートのリアクションが反映されない問題を修正
1921
- Fix: キューのエラーログを簡略化するように
2022
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649)
2123

CONTRIBUTING.md

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -181,31 +181,45 @@ MK_DEV_PREFER=backend pnpm dev
181181
- HMR may not work in some environments such as Windows.
182182

183183
## Testing
184-
- Test codes are located in [`/packages/backend/test`](/packages/backend/test).
185-
186-
### Run test
187-
Create a config file.
184+
You can run non-backend tests by executing following commands:
185+
```sh
186+
pnpm --filter frontend test
187+
pnpm --filter misskey-js test
188188
```
189+
190+
Backend tests require manual preparation of servers. See the next section for more on this.
191+
192+
### Backend
193+
There are three types of test codes for the backend:
194+
- Unit tests: [`/packages/backend/test/unit`](/packages/backend/test/unit)
195+
- Single-server E2E tests: [`/packages/backend/test/e2e`](/packages/backend/test/e2e)
196+
- Multiple-server E2E tests: [`/packages/backend/test-federation`](/packages/backend/test-federation)
197+
198+
#### Running Unit Tests or Single-server E2E Tests
199+
1. Create a config file:
200+
```sh
189201
cp .github/misskey/test.yml .config/
190202
```
191-
Prepare DB/Redis for testing.
192-
```
193-
docker compose -f packages/backend/test/compose.yml up
194-
```
195-
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
196203

197-
Run all test.
198-
```
199-
pnpm test
204+
2. Start DB and Redis servers for testing:
205+
```sh
206+
docker compose -f packages/backend/test/compose.yml up
200207
```
208+
Instead, you can prepare an empty (data can be erased) DB and edit `.config/test.yml` appropriately.
201209

202-
#### Run specify test
210+
3. Run all tests:
211+
```sh
212+
pnpm --filter backend test # unit tests
213+
pnpm --filter backend test:e2e # single-server E2E tests
203214
```
204-
pnpm jest -- foo.ts
215+
If you want to run a specific test, run as a following command:
216+
```sh
217+
pnpm --filter backend test -- packages/backend/test/unit/activitypub.ts
218+
pnpm --filter backend test:e2e -- packages/backend/test/e2e/nodeinfo.ts
205219
```
206220

207-
### e2e tests
208-
TODO
221+
#### Running Multiple-server E2E Tests
222+
See [`/packages/backend/test-federation/README.md`](/packages/backend/test-federation/README.md).
209223

210224
## Environment Variable
211225

locales/ca-ES.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,6 +1286,7 @@ passkeyVerificationFailed: "La verificació a fallat"
12861286
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verificació de la passkey a estat correcta, però s'ha deshabilitat l'inici de sessió sense contrasenya."
12871287
messageToFollower: "Missatge als meus seguidors"
12881288
target: "Assumpte "
1289+
testCaptchaWarning: "És una característica dissenyada per a la prova de CAPTCHA. <strong>No l'utilitzes en l'entorn real.</strong>"
12891290
_abuseUserReport:
12901291
forward: "Reenviar "
12911292
forwardDescription: "Reenvia l'informe a una altra instància com un compte del sistema anònima."
@@ -1430,6 +1431,7 @@ _serverSettings:
14301431
reactionsBufferingDescription: "Quan s'activa aquesta opció millora bastant el rendiment en recuperar les línies de temps reduint la càrrega de la base. Com a contrapunt, augmentarà l'ús de memòria de Redís. Desactiva aquesta opció en cas de tenir un servidor amb poca memòria o si tens problemes d'inestabilitat."
14311432
inquiryUrl: "URL de consulta "
14321433
inquiryUrlDescription: "Escriu adreça URL per al formulari de consulta per al mantenidor del servidor o una pàgina web amb el contacte d'informació."
1434+
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Si no es detecta activitat per part del moderador durant un període de temps, aquesta opció es desactiva automàticament per evitar el correu brossa."
14331435
_accountMigration:
14341436
moveFrom: "Migrar un altre compte a aquest"
14351437
moveFromSub: "Crear un àlies per un altre compte"

locales/it-IT.yml

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,7 @@ totpDescription: "Puoi autenticarti inserendo un codice OTP tramite la tua App d
454454
moderator: "Moderatore"
455455
moderation: "moderazione"
456456
moderationNote: "Promemoria di moderazione"
457+
moderationNoteDescription: "Puoi scrivere promemoria condivisi solo tra moderatori."
457458
addModerationNote: "Aggiungi promemoria di moderazione"
458459
moderationLogs: "Cronologia di moderazione"
459460
nUsersMentioned: "{n} profili ne parlano"
@@ -841,7 +842,7 @@ onlineStatus: "Stato di connessione"
841842
hideOnlineStatus: "Modalità invisibile"
842843
hideOnlineStatusDescription: "Attivando questa opzione potresti ridurre l'usabilità di alcune funzioni, come la ricerca."
843844
online: "Online"
844-
active: "Attività"
845+
active: "Attivo"
845846
offline: "Offline"
846847
notRecommended: "Sconsigliato"
847848
botProtection: "Protezione contro i bot"
@@ -1086,6 +1087,7 @@ retryAllQueuesConfirmTitle: "Vuoi ritentare adesso?"
10861087
retryAllQueuesConfirmText: "Potrebbe sovraccaricare il server temporaneamente."
10871088
enableChartsForRemoteUser: "Abilita i grafici per i profili remoti"
10881089
enableChartsForFederatedInstances: "Abilita i grafici per le istanze federate"
1090+
enableStatsForFederatedInstances: "Informazioni statistiche sui server federati"
10891091
showClipButtonInNoteFooter: "Aggiungi il bottone Clip tra le azioni delle Note"
10901092
reactionsDisplaySize: "Grandezza delle reazioni"
10911093
limitWidthOfReaction: "Limita la larghezza delle reazioni e ridimensionale"
@@ -1285,6 +1287,19 @@ unknownWebAuthnKey: "Questa è una passkey sconosciuta."
12851287
passkeyVerificationFailed: "La verifica della passkey non è riuscita."
12861288
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verifica della passkey è riuscita, ma l'accesso senza password è disabilitato."
12871289
messageToFollower: "Messaggio ai follower"
1290+
target: "Riferimento"
1291+
testCaptchaWarning: "Questa funzione è destinata al test CAPTCHA. <strong>Da non utilizzare in ambiente di produzione.</strong>"
1292+
prohibitedWordsForNameOfUser: "Parole proibite (nome utente)"
1293+
prohibitedWordsForNameOfUserDescription: "Il sistema rifiuta di rinominare un utente, se il nome contiene qualsiasi parola nell'elenco. Sono esenti i profili con privilegi di moderazione."
1294+
yourNameContainsProhibitedWords: "Il nome che hai scelto contiene una o più parole vietate"
1295+
yourNameContainsProhibitedWordsDescription: "Se desideri comunque utilizzare questo nome, contatta l''amministrazione."
1296+
_abuseUserReport:
1297+
forward: "Inoltra"
1298+
forwardDescription: "Inoltra il report al server remoto, per mezzo di account di sistema, anonimo."
1299+
resolve: "Risolvi"
1300+
accept: "Approva"
1301+
reject: "Rifiuta"
1302+
resolveTutorial: "Se moderi una segnalazione legittima, scegli \"Approva\" per risolvere positivamente.\nSe la segnalazione non è legittima, seleziona \"Rifiuta\" per risolvere negativamente."
12881303
_delivery:
12891304
status: "Stato della consegna"
12901305
stop: "Sospensione"
@@ -1312,16 +1327,16 @@ _bubbleGame:
13121327
_announcement:
13131328
forExistingUsers: "Solo ai profili attuali"
13141329
forExistingUsersDescription: "L'annuncio sarà visibile solo ai profili esistenti in questo momento. Se disabilitato, sarà visibile anche ai profili che verranno creati dopo la pubblicazione di questo annuncio."
1315-
needConfirmationToRead: "Richiede la conferma di lettura"
1316-
needConfirmationToReadDescription: "Sarà visualizzata una finestra di dialogo che richiede la conferma di lettura. Inoltre, non è soggetto a conferme di lettura massicce."
1330+
needConfirmationToRead: "Conferma di lettura obbligatoria"
1331+
needConfirmationToReadDescription: "I profili riceveranno una finestra di dialogo che richiede di accettare obbligatoriamente per procedere. Tale richiesta è esente da \"conferma tutte\"."
13171332
end: "Archivia l'annuncio"
13181333
tooManyActiveAnnouncementDescription: "L'esperienza delle persone può peggiorare se ci sono troppi annunci attivi. Considera anche l'archiviazione degli annunci conclusi."
13191334
readConfirmTitle: "Segnare come già letto?"
13201335
readConfirmText: "Hai già letto \"{title}˝?"
13211336
shouldNotBeUsedToPresentPermanentInfo: "Ti consigliamo di utilizzare gli annunci per pubblicare informazioni tempestive e limitate nel tempo, anziché informazioni importanti a lungo andare nel tempo, poiché potrebbero risultare difficili da ritrovare e peggiorare la fruibilità del servizio, specialmente alle nuove persone iscritte."
13221337
dialogAnnouncementUxWarn: "Ti consigliamo di usarli con cautela, poiché è molto probabile che avere più di un annuncio in stile \"finestra di dialogo\" peggiori sensibilmente la fruibilità del servizio, specialmente alle nuove persone iscritte."
1323-
silence: "Silenziare gli annunci"
1324-
silenceDescription: "Se attivi questa opzione, non riceverai notifiche sugli annunci, evitando di contrassegnarle come già lette."
1338+
silence: "Annuncio silenzioso"
1339+
silenceDescription: "Attivando questa opzione, non invierai la notifica, evitando che debba essere contrassegnata come già letta."
13251340
_initialAccountSetting:
13261341
accountCreated: "Il tuo profilo è stato creato!"
13271342
letsStartAccountSetup: "Per iniziare, impostiamo il tuo profilo."
@@ -1422,6 +1437,7 @@ _serverSettings:
14221437
reactionsBufferingDescription: "Attivando questa opzione, puoi migliorare significativamente le prestazioni durante la creazione delle reazioni e ridurre il carico sul database. Tuttavia, aumenterà l'impiego di memoria Redis."
14231438
inquiryUrl: "URL di contatto"
14241439
inquiryUrlDescription: "Specificare l'URL al modulo di contatto, oppure le informazioni con i dati di contatto dell'amministrazione."
1440+
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Per prevenire SPAM, questa impostazione verrà disattivata automaticamente, se non si rileva alcuna attività di moderazione durante un certo periodo di tempo."
14251441
_accountMigration:
14261442
moveFrom: "Migra un altro profilo dentro a questo"
14271443
moveFromSub: "Crea un alias verso un altro profilo remoto"
@@ -2187,7 +2203,7 @@ _widgets:
21872203
_userList:
21882204
chooseList: "Seleziona una lista"
21892205
clicker: "Cliccaggio"
2190-
birthdayFollowings: "Chi nacque oggi"
2206+
birthdayFollowings: "Compleanni del giorno"
21912207
_cw:
21922208
hide: "Nascondere"
21932209
show: "Continua la lettura..."
@@ -2476,6 +2492,8 @@ _webhookSettings:
24762492
abuseReport: "Quando arriva una segnalazione"
24772493
abuseReportResolved: "Quando una segnalazione è risolta"
24782494
userCreated: "Quando viene creato un profilo"
2495+
inactiveModeratorsWarning: "Quando un profilo moderatore rimane inattivo per un determinato periodo"
2496+
inactiveModeratorsInvitationOnlyChanged: "Quando la moderazione è rimasta inattiva per un determinato periodo e il sistema è cambiato in modalità \"solo inviti\""
24792497
deleteConfirm: "Vuoi davvero eliminare il Webhook?"
24802498
testRemarks: "Clicca il bottone a destra dell'interruttore, per provare l'invio di un webhook con dati fittizi."
24812499
_abuseReport:
@@ -2521,6 +2539,8 @@ _moderationLogTypes:
25212539
markSensitiveDriveFile: "File nel Drive segnato come esplicito"
25222540
unmarkSensitiveDriveFile: "File nel Drive segnato come non esplicito"
25232541
resolveAbuseReport: "Segnalazione risolta"
2542+
forwardAbuseReport: "Segnalazione inoltrata"
2543+
updateAbuseReportNote: "Ha aggiornato la segnalazione"
25242544
createInvitation: "Genera codice di invito"
25252545
createAd: "Banner creato"
25262546
deleteAd: "Banner eliminato"

locales/ko-KR.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,6 +1087,7 @@ retryAllQueuesConfirmTitle: "지금 다시 시도하시겠습니까?"
10871087
retryAllQueuesConfirmText: "일시적으로 서버의 부하가 증가할 수 있습니다."
10881088
enableChartsForRemoteUser: "리모트 유저의 차트를 생성"
10891089
enableChartsForFederatedInstances: "리모트 서버의 차트를 생성"
1090+
enableStatsForFederatedInstances: "리모트 서버 정보 받아오기"
10901091
showClipButtonInNoteFooter: "노트 동작에 클립을 추가"
10911092
reactionsDisplaySize: "리액션 표시 크기"
10921093
limitWidthOfReaction: "리액션의 최대 폭을 제한하고 작게 표시하기"
@@ -1287,6 +1288,11 @@ passkeyVerificationFailed: "패스키 검증을 실패했습니다."
12871288
passkeyVerificationSucceededButPasswordlessLoginDisabled: "패스키를 검증했으나, 비밀번호 없이 로그인하기가 꺼져 있습니다."
12881289
messageToFollower: "팔로워에 보낼 메시지"
12891290
target: "대상"
1291+
testCaptchaWarning: "CAPTCHA를 테스트하기 위한 기능입니다. <strong>실제 환경에서는 사용하지 마세요.</strong>"
1292+
prohibitedWordsForNameOfUser: "금지 단어 (사용자 이름)"
1293+
prohibitedWordsForNameOfUserDescription: "이 목록에 포함되는 키워드가 사용자 이름에 있는 경우, 일반 사용자는 이름을 바꿀 수 없습니다. 모더레이터 권한을 가진 사용자는 제한 대상에서 제외됩니다."
1294+
yourNameContainsProhibitedWords: "바꾸려는 이름에 금지된 키워드가 포함되어 있습니다."
1295+
yourNameContainsProhibitedWordsDescription: "이름에 금지된 키워드가 있습니다. 이름을 사용해야 하는 경우, 서버 관리자에 문의하세요."
12901296
_abuseUserReport:
12911297
forward: "전달"
12921298
forwardDescription: "익명 시스템 계정을 사용하여 리모트 서버에 신고 내용을 전달할 수 있습니다."
@@ -1431,6 +1437,7 @@ _serverSettings:
14311437
reactionsBufferingDescription: "활성화 한 경우, 리액션 작성 퍼포먼스가 대폭 향상되어 DB의 부하를 줄일 수 있으나, Redis의 메모리 사용량이 많아집니다."
14321438
inquiryUrl: "문의처 URL"
14331439
inquiryUrlDescription: "서버 운영자에게 보내는 문의 양식의 URL이나 운영자의 연락처 등이 적힌 웹 페이지의 URL을 설정합니다."
1440+
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "일정 기간동안 모더레이터의 활동이 감지되지 않는 경우, 스팸 방지를 위해 이 설정은 자동으로 꺼집니다."
14341441
_accountMigration:
14351442
moveFrom: "다른 계정에서 이 계정으로 이사"
14361443
moveFromSub: "다른 계정에 대한 별칭을 생성"
@@ -2485,6 +2492,8 @@ _webhookSettings:
24852492
abuseReport: "유저롭"
24862493
abuseReportResolved: "받은 신고를 처리했을 때"
24872494
userCreated: "유저가 생성되었을 때"
2495+
inactiveModeratorsWarning: "모더레이터가 일정 기간동안 활동하지 않은 경우"
2496+
inactiveModeratorsInvitationOnlyChanged: "모더레이터가 일정 기간 활동하지 않아 시스템에 의해 초대제로 바뀐 경우"
24882497
deleteConfirm: "Webhook을 삭제할까요?"
24892498
testRemarks: "스위치 오른쪽에 있는 버튼을 클릭하여 더미 데이터를 사용한 테스트용 웹 훅을 보낼 수 있습니다."
24902499
_abuseReport:

0 commit comments

Comments
 (0)