Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into bump-elixir
This commit is contained in:
commit
ad26b6d593
6
.dialyzer_ignore.exs
Normal file
6
.dialyzer_ignore.exs
Normal file
@ -0,0 +1,6 @@
|
||||
[
|
||||
{"lib/cachex.ex", "Unknown type: Spec.cache/0."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "The pattern can never match the type {:commit, _} | {:ignore, _}."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function get_scale/2 will never be called."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function initialize_buckets!/1 will never be called."}
|
||||
]
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -57,5 +57,6 @@ pleroma.iml
|
||||
.tool-versions
|
||||
|
||||
# Editor temp files
|
||||
/*~
|
||||
/*#
|
||||
*~
|
||||
*#
|
||||
*.swp
|
||||
|
111
.gitlab-ci.yml
111
.gitlab-ci.yml
@ -26,9 +26,10 @@ cache: &global_cache_policy
|
||||
- _build
|
||||
|
||||
stages:
|
||||
- check-changelog
|
||||
- build
|
||||
- lint
|
||||
- test
|
||||
- check-changelog
|
||||
- benchmark
|
||||
- deploy
|
||||
- release
|
||||
@ -71,7 +72,7 @@ check-changelog:
|
||||
tags:
|
||||
- amd64
|
||||
|
||||
build:
|
||||
build-1.12.3:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
@ -79,10 +80,20 @@ build:
|
||||
script:
|
||||
- mix compile --force
|
||||
|
||||
build-1.15.7-otp-25:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: build
|
||||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.15
|
||||
allow_failure: true
|
||||
script:
|
||||
- mix compile --force
|
||||
|
||||
spec-build:
|
||||
extends:
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
stage: build
|
||||
rules:
|
||||
- changes:
|
||||
- ".gitlab-ci.yml"
|
||||
@ -102,7 +113,7 @@ benchmark:
|
||||
variables:
|
||||
MIX_ENV: benchmark
|
||||
services:
|
||||
- name: postgres:9.6-alpine
|
||||
- name: postgres:11.22-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
script:
|
||||
@ -110,7 +121,7 @@ benchmark:
|
||||
- mix ecto.migrate
|
||||
- mix pleroma.load_testing
|
||||
|
||||
unit-testing:
|
||||
unit-testing-1.12.3:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
@ -118,12 +129,11 @@ unit-testing:
|
||||
cache: &testing_cache_policy
|
||||
<<: *global_cache_policy
|
||||
policy: pull
|
||||
|
||||
services:
|
||||
services: &testing_services
|
||||
- name: postgres:13-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
script:
|
||||
script: &testing_script
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- mix test --cover --preload-modules
|
||||
@ -134,49 +144,35 @@ unit-testing:
|
||||
coverage_format: cobertura
|
||||
path: coverage.xml
|
||||
|
||||
unit-testing-erratic:
|
||||
unit-testing-1.15.7-otp-25:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.15-otp25
|
||||
allow_failure: true
|
||||
cache: *testing_cache_policy
|
||||
services: *testing_services
|
||||
script: *testing_script
|
||||
|
||||
unit-testing-1.12-erratic:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
retry: 2
|
||||
allow_failure: true
|
||||
cache: &testing_cache_policy
|
||||
<<: *global_cache_policy
|
||||
policy: pull
|
||||
|
||||
services:
|
||||
- name: postgres:13-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
cache: *testing_cache_policy
|
||||
services: *testing_services
|
||||
script:
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- mix test --only=erratic
|
||||
|
||||
unit-testing-rum:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
cache: *testing_cache_policy
|
||||
services:
|
||||
- name: git.pleroma.social:5050/pleroma/pleroma/postgres-with-rum-13
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
variables:
|
||||
<<: *global_variables
|
||||
RUM_ENABLED: "true"
|
||||
script:
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
|
||||
- mix test --preload-modules
|
||||
|
||||
lint:
|
||||
formatting-1.13:
|
||||
extends: .build_changes_policy
|
||||
image: ¤t_elixir elixir:1.13-alpine
|
||||
stage: test
|
||||
image: &formatting_elixir elixir:1.13-alpine
|
||||
stage: lint
|
||||
cache: *testing_cache_policy
|
||||
before_script: ¤t_bfr_script
|
||||
- apk update
|
||||
@ -187,25 +183,38 @@ lint:
|
||||
script:
|
||||
- mix format --check-formatted
|
||||
|
||||
analysis:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
cache: *testing_cache_policy
|
||||
script:
|
||||
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
|
||||
|
||||
cycles:
|
||||
cycles-1.13:
|
||||
extends: .build_changes_policy
|
||||
image: *current_elixir
|
||||
stage: test
|
||||
image: *formatting_elixir
|
||||
stage: lint
|
||||
cache: {}
|
||||
before_script: *current_bfr_script
|
||||
script:
|
||||
- mix compile
|
||||
- mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != "No cycles found")}'
|
||||
|
||||
analysis:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: lint
|
||||
cache: *testing_cache_policy
|
||||
script:
|
||||
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
|
||||
|
||||
dialyzer:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: lint
|
||||
allow_failure: true
|
||||
when: manual
|
||||
cache: *testing_cache_policy
|
||||
tags:
|
||||
- feld
|
||||
script:
|
||||
- mix dialyzer
|
||||
|
||||
docs-deploy:
|
||||
stage: deploy
|
||||
cache: *testing_cache_policy
|
||||
|
17
CHANGELOG.md
17
CHANGELOG.md
@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## 2.6.2
|
||||
|
||||
### Security
|
||||
- MRF StealEmojiPolicy: Sanitize shortcodes (thanks to Hazel K for the report
|
||||
|
||||
## 2.6.1
|
||||
### Changed
|
||||
- - Document maximum supported version of Erlang & Elixir
|
||||
@ -62,7 +67,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
## 2.5.4
|
||||
|
||||
## Security
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitary files from the server's filesystem
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
|
||||
|
||||
## 2.5.3
|
||||
|
||||
@ -78,7 +83,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
## 2.5.4
|
||||
|
||||
## Security
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitary files from the server's filesystem
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
|
||||
|
||||
## 2.5.3
|
||||
|
||||
@ -118,7 +123,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
- Fix `block_from_stranger` setting
|
||||
- Fix rel="me"
|
||||
- Docker images will now run properly
|
||||
- Fix inproper content being cached in report content
|
||||
- Fix improper content being cached in report content
|
||||
- Notification filter on object content will not operate on the ones that inherently have no content
|
||||
- ZWNJ and double dots in links are parsed properly for Plain-text posts
|
||||
- OTP releases will work on systems with a newer libcrypt
|
||||
@ -784,7 +789,7 @@ switched to a new configuration mechanism, however it was not officially removed
|
||||
- Rate limiter crashes when there is no explicitly specified ip in the config
|
||||
- 500 errors when no `Accept` header is present if Static-FE is enabled
|
||||
- Instance panel not being updated immediately due to wrong `Cache-Control` headers
|
||||
- Statuses posted with BBCode/Markdown having unncessary newlines in Pleroma-FE
|
||||
- Statuses posted with BBCode/Markdown having unnecessary newlines in Pleroma-FE
|
||||
- OTP: Fix some settings not being migrated to in-database config properly
|
||||
- No `Cache-Control` headers on attachment/media proxy requests
|
||||
- Character limit enforcement being off by 1
|
||||
@ -1104,10 +1109,10 @@ curl -Lo ./bin/pleroma_ctl 'https://git.pleroma.social/pleroma/pleroma/raw/devel
|
||||
- Reverse Proxy limiting `max_body_length` was incorrectly defined and only checked `Content-Length` headers which may not be sufficient in some circumstances
|
||||
|
||||
### Added
|
||||
- Expiring/ephemeral activites. All activities can have expires_at value set, which controls when they should be deleted automatically.
|
||||
- Expiring/ephemeral activities. All activities can have expires_at value set, which controls when they should be deleted automatically.
|
||||
- Mastodon API: in post_status, the expires_in parameter lets you set the number of seconds until an activity expires. It must be at least one hour.
|
||||
- Mastodon API: all status JSON responses contain a `pleroma.expires_at` item which states when an activity will expire. The value is only shown to the user who created the activity. To everyone else it's empty.
|
||||
- Configuration: `ActivityExpiration.enabled` controls whether expired activites will get deleted at the appropriate time. Enabled by default.
|
||||
- Configuration: `ActivityExpiration.enabled` controls whether expired activities will get deleted at the appropriate time. Enabled by default.
|
||||
- Conversations: Add Pleroma-specific conversation endpoints and status posting extensions. Run the `bump_all_conversations` task again to create the necessary data.
|
||||
- MRF: Support for priming the mediaproxy cache (`Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`)
|
||||
- MRF: Support for excluding specific domains from Transparency.
|
||||
|
1
changelog.d/account-rendering-auth-check.fix
Normal file
1
changelog.d/account-rendering-auth-check.fix
Normal file
@ -0,0 +1 @@
|
||||
Fix authentication check on account rendering when bio is defined
|
0
changelog.d/api-docs.skip
Normal file
0
changelog.d/api-docs.skip
Normal file
0
changelog.d/atom-leak.skip
Normal file
0
changelog.d/atom-leak.skip
Normal file
1
changelog.d/backups-follows.add
Normal file
1
changelog.d/backups-follows.add
Normal file
@ -0,0 +1 @@
|
||||
Include following/followers in backups
|
1
changelog.d/bad_inbox_request.change
Normal file
1
changelog.d/bad_inbox_request.change
Normal file
@ -0,0 +1 @@
|
||||
Invalid activities delivered to the inbox will be rejected with a 400 Bad Request
|
1
changelog.d/bandit.change
Normal file
1
changelog.d/bandit.change
Normal file
@ -0,0 +1 @@
|
||||
Support Bandit as an alternative to Cowboy for the HTTP server.
|
1
changelog.d/bookmark-folders.add
Normal file
1
changelog.d/bookmark-folders.add
Normal file
@ -0,0 +1 @@
|
||||
Allow to group bookmarks in folders
|
0
changelog.d/bookmark-folders.skip
Normal file
0
changelog.d/bookmark-folders.skip
Normal file
1
changelog.d/bugfix-ccworks.fix
Normal file
1
changelog.d/bugfix-ccworks.fix
Normal file
@ -0,0 +1 @@
|
||||
Fix federation with Convergence AP Bridge
|
1
changelog.d/card-endpoint.remove
Normal file
1
changelog.d/card-endpoint.remove
Normal file
@ -0,0 +1 @@
|
||||
Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213
|
1
changelog.d/card-image-description.add
Normal file
1
changelog.d/card-image-description.add
Normal file
@ -0,0 +1 @@
|
||||
Include image description in status media cards
|
1
changelog.d/chat-attachment-empty-array.fix
Normal file
1
changelog.d/chat-attachment-empty-array.fix
Normal file
@ -0,0 +1 @@
|
||||
ChatMessage: Tolerate attachment field set to an empty array
|
1
changelog.d/config-stat-symlink.fix
Normal file
1
changelog.d/config-stat-symlink.fix
Normal file
@ -0,0 +1 @@
|
||||
- Config: Check the permissions of the linked file instead of the symlink
|
1
changelog.d/content-length.fix
Normal file
1
changelog.d/content-length.fix
Normal file
@ -0,0 +1 @@
|
||||
MediaProxy was setting the content-length header which is not permitted by RFC9112§6.2 when we are chunking the reply as it conflicts with the existence of the transfer-encoding header.
|
0
changelog.d/deps-bump-2024-01-25.skip
Normal file
0
changelog.d/deps-bump-2024-01-25.skip
Normal file
0
changelog.d/description-meilisearch-type.skip
Normal file
0
changelog.d/description-meilisearch-type.skip
Normal file
0
changelog.d/dialyzer.skip
Normal file
0
changelog.d/dialyzer.skip
Normal file
0
changelog.d/dialyzer2.skip
Normal file
0
changelog.d/dialyzer2.skip
Normal file
0
changelog.d/dialyzer3.skip
Normal file
0
changelog.d/dialyzer3.skip
Normal file
0
changelog.d/dialyzer4.skip
Normal file
0
changelog.d/dialyzer4.skip
Normal file
1
changelog.d/emoji-download-paginate.fix
Normal file
1
changelog.d/emoji-download-paginate.fix
Normal file
@ -0,0 +1 @@
|
||||
When downloading remote emojis packs, account for pagination
|
1
changelog.d/emoji-use-v1.fix
Normal file
1
changelog.d/emoji-use-v1.fix
Normal file
@ -0,0 +1 @@
|
||||
Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this
|
0
changelog.d/exile-bsds.skip
Normal file
0
changelog.d/exile-bsds.skip
Normal file
0
changelog.d/exile-freebsd.skip
Normal file
0
changelog.d/exile-freebsd.skip
Normal file
0
changelog.d/exile-macos.skip
Normal file
0
changelog.d/exile-macos.skip
Normal file
0
changelog.d/exile.skip
Normal file
0
changelog.d/exile.skip
Normal file
1
changelog.d/familiar-followers.add
Normal file
1
changelog.d/familiar-followers.add
Normal file
@ -0,0 +1 @@
|
||||
Implement `/api/v1/accounts/familiar_followers`
|
1
changelog.d/federator-modules.remove
Normal file
1
changelog.d/federator-modules.remove
Normal file
@ -0,0 +1 @@
|
||||
Removed support for multiple federator modules as we only support ActivityPub
|
0
changelog.d/federator.skip
Normal file
0
changelog.d/federator.skip
Normal file
1
changelog.d/fep-2c59.add
Normal file
1
changelog.d/fep-2c59.add
Normal file
@ -0,0 +1 @@
|
||||
Implement FEP-2c59, add "webfinger" to user actor
|
1
changelog.d/ffmpeg-limiter.add
Normal file
1
changelog.d/ffmpeg-limiter.add
Normal file
@ -0,0 +1 @@
|
||||
Framegrabs with ffmpeg will execute with a 5 second timeout and cache the URLs of failures with a TTL of 15 minutes to prevent excessive retries.
|
1
changelog.d/finch_redirects.fix
Normal file
1
changelog.d/finch_redirects.fix
Normal file
@ -0,0 +1 @@
|
||||
Following HTTP Redirects when the HTTP Adapter is Finch
|
0
changelog.d/fix-bookmark-folder-tests.skip
Normal file
0
changelog.d/fix-bookmark-folder-tests.skip
Normal file
0
changelog.d/fix-duplicate-inbox-deliveries.fix
Normal file
0
changelog.d/fix-duplicate-inbox-deliveries.fix
Normal file
1
changelog.d/force-mention-mrf.add
Normal file
1
changelog.d/force-mention-mrf.add
Normal file
@ -0,0 +1 @@
|
||||
Add ForceMention MRF
|
1
changelog.d/framegrabs.fix
Normal file
1
changelog.d/framegrabs.fix
Normal file
@ -0,0 +1 @@
|
||||
Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg
|
1
changelog.d/group-actor.add
Normal file
1
changelog.d/group-actor.add
Normal file
@ -0,0 +1 @@
|
||||
Implement group actors
|
0
changelog.d/gun-logs.skip
Normal file
0
changelog.d/gun-logs.skip
Normal file
1
changelog.d/gun_pool.fix
Normal file
1
changelog.d/gun_pool.fix
Normal file
@ -0,0 +1 @@
|
||||
Fix logic error in Gun connection pooling which prevented retries even when the worker was launched with retry = true
|
1
changelog.d/gun_pool2.fix
Normal file
1
changelog.d/gun_pool2.fix
Normal file
@ -0,0 +1 @@
|
||||
Connection pool errors when publishing an activity is a soft-error that will be retried shortly.
|
0
changelog.d/gun_pool3.skip
Normal file
0
changelog.d/gun_pool3.skip
Normal file
1
changelog.d/handle_object_fetch_failures.change
Normal file
1
changelog.d/handle_object_fetch_failures.change
Normal file
@ -0,0 +1 @@
|
||||
Remote object fetch failures will prevent the object fetch job from retrying if the object request returns 401, 403, 404, 410, or exceeds the maximum thread depth.
|
1
changelog.d/instance-contact-account.add
Normal file
1
changelog.d/instance-contact-account.add
Normal file
@ -0,0 +1 @@
|
||||
Add contact account to InstanceView
|
0
changelog.d/instance-defdelegates.skip
Normal file
0
changelog.d/instance-defdelegates.skip
Normal file
1
changelog.d/instance-rules.add
Normal file
1
changelog.d/instance-rules.add
Normal file
@ -0,0 +1 @@
|
||||
Add instance rules
|
1
changelog.d/instance-v2.add
Normal file
1
changelog.d/instance-v2.add
Normal file
@ -0,0 +1 @@
|
||||
Implement /api/v2/instance route
|
0
changelog.d/instance-v2.skip
Normal file
0
changelog.d/instance-v2.skip
Normal file
1
changelog.d/issue-3241.fix
Normal file
1
changelog.d/issue-3241.fix
Normal file
@ -0,0 +1 @@
|
||||
Handle cases when users.inbox is nil.
|
1
changelog.d/link-verification.add
Normal file
1
changelog.d/link-verification.add
Normal file
@ -0,0 +1 @@
|
||||
Verify profile link ownership with rel="me"
|
1
changelog.d/local-webfinger.fix
Normal file
1
changelog.d/local-webfinger.fix
Normal file
@ -0,0 +1 @@
|
||||
Use correct domain for fqn and InstanceView
|
1
changelog.d/mark-read.fix
Normal file
1
changelog.d/mark-read.fix
Normal file
@ -0,0 +1 @@
|
||||
The query for marking notifications as read has been simplified
|
1
changelog.d/mastodon_api_v2.add
Normal file
1
changelog.d/mastodon_api_v2.add
Normal file
@ -0,0 +1 @@
|
||||
Add new parameters to /api/v2/instance: configuration[accounts][max_pinned_statuses] and configuration[statuses][characters_reserved_per_url]
|
1
changelog.d/mastodon_directory.fix
Normal file
1
changelog.d/mastodon_directory.fix
Normal file
@ -0,0 +1 @@
|
||||
Mastodon API /api/v1/directory: Fix listing directory contents when not authenticated
|
1
changelog.d/memleak.fix
Normal file
1
changelog.d/memleak.fix
Normal file
@ -0,0 +1 @@
|
||||
Fix a memory leak caused by Websocket connections that would not enter a state where a full garbage collection run could be triggered.
|
0
changelog.d/mergeback-2.6.2.skip
Normal file
0
changelog.d/mergeback-2.6.2.skip
Normal file
1
changelog.d/missing-mrfs.add
Normal file
1
changelog.d/missing-mrfs.add
Normal file
@ -0,0 +1 @@
|
||||
Startup detection for configured MRF modules that are missing or incorrectly defined
|
1
changelog.d/mrf-regex-error.fix
Normal file
1
changelog.d/mrf-regex-error.fix
Normal file
@ -0,0 +1 @@
|
||||
MRF: Log sensible error for subdomains_regex
|
1
changelog.d/mrf-steal-emoji-extname.fix
Normal file
1
changelog.d/mrf-steal-emoji-extname.fix
Normal file
@ -0,0 +1 @@
|
||||
MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one
|
1
changelog.d/mrf_hashtags.fix
Normal file
1
changelog.d/mrf_hashtags.fix
Normal file
@ -0,0 +1 @@
|
||||
Federated timeline removal of hashtags via MRF HashtagPolicy
|
1
changelog.d/nil-content-map.fix
Normal file
1
changelog.d/nil-content-map.fix
Normal file
@ -0,0 +1 @@
|
||||
Support objects with a null contentMap (firefish)
|
1
changelog.d/notifications-index.fix
Normal file
1
changelog.d/notifications-index.fix
Normal file
@ -0,0 +1 @@
|
||||
Fix notifications query which was not using the index properly
|
1
changelog.d/notifications.fix
Normal file
1
changelog.d/notifications.fix
Normal file
@ -0,0 +1 @@
|
||||
Notifications: improve performance by filtering on users table instead of activities table
|
1
changelog.d/oauth-nickname.skip
Normal file
1
changelog.d/oauth-nickname.skip
Normal file
@ -0,0 +1 @@
|
||||
Use User.full_nickname/1 in oauth html template
|
1
changelog.d/otp26.add
Normal file
1
changelog.d/otp26.add
Normal file
@ -0,0 +1 @@
|
||||
Support for Erlang OTP 26
|
1
changelog.d/postgres-jit.change
Normal file
1
changelog.d/postgres-jit.change
Normal file
@ -0,0 +1 @@
|
||||
Disable jit by default for PostgreSQL
|
1
changelog.d/public-polls.add
Normal file
1
changelog.d/public-polls.add
Normal file
@ -0,0 +1 @@
|
||||
Expose nonAnonymous field from Smithereen polls
|
1
changelog.d/publisher_discard.change
Normal file
1
changelog.d/publisher_discard.change
Normal file
@ -0,0 +1 @@
|
||||
Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410
|
1
changelog.d/publisher_log.change
Normal file
1
changelog.d/publisher_log.change
Normal file
@ -0,0 +1 @@
|
||||
Publisher errors will now emit logs indicating the inbox that was not available for delivery.
|
1
changelog.d/qtfaststart.fix
Normal file
1
changelog.d/qtfaststart.fix
Normal file
@ -0,0 +1 @@
|
||||
MediaProxy Preview failures prevented when encountering certain video files
|
1
changelog.d/receiverworker-error-handling.fix
Normal file
1
changelog.d/receiverworker-error-handling.fix
Normal file
@ -0,0 +1 @@
|
||||
ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …}
|
0
changelog.d/remote-fetcher-error.skip
Normal file
0
changelog.d/remote-fetcher-error.skip
Normal file
1
changelog.d/rich_media.fix
Normal file
1
changelog.d/rich_media.fix
Normal file
@ -0,0 +1 @@
|
||||
Rich Media Preview cache eviction when the activity is updated.
|
1
changelog.d/rich_media_refactor.change
Normal file
1
changelog.d/rich_media_refactor.change
Normal file
@ -0,0 +1 @@
|
||||
Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated.
|
0
changelog.d/rich_media_tests.skip
Normal file
0
changelog.d/rich_media_tests.skip
Normal file
1
changelog.d/tesla.deps
Normal file
1
changelog.d/tesla.deps
Normal file
@ -0,0 +1 @@
|
||||
Update Tesla HTTP client middleware to 1.8.0
|
0
changelog.d/test-improvements.skip
Normal file
0
changelog.d/test-improvements.skip
Normal file
1
changelog.d/transient-validators-defaults.change
Normal file
1
changelog.d/transient-validators-defaults.change
Normal file
@ -0,0 +1 @@
|
||||
Set default values on validators for transient objects (attachment, poll options)
|
0
changelog.d/typo.skip
Normal file
0
changelog.d/typo.skip
Normal file
1
changelog.d/web_push_filtered.fix
Normal file
1
changelog.d/web_push_filtered.fix
Normal file
@ -0,0 +1 @@
|
||||
Web Push notifications are no longer generated for muted/blocked threads and users.
|
1
changelog.d/websocket-refactor.change
Normal file
1
changelog.d/websocket-refactor.change
Normal file
@ -0,0 +1 @@
|
||||
Refactor the Mastodon /api/v1/streaming websocket handler to use Phoenix.Socket.Transport
|
@ -1 +0,0 @@
|
||||
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:latest --push .
|
1
ci/elixir-1.12/build_and_push.sh
Executable file
1
ci/elixir-1.12/build_and_push.sh
Executable file
@ -0,0 +1 @@
|
||||
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.12 --push .
|
8
ci/elixir-1.15-otp25/Dockerfile
Normal file
8
ci/elixir-1.15-otp25/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM elixir:1.15.7-otp-25
|
||||
|
||||
# Single RUN statement, otherwise intermediate images are created
|
||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\
|
||||
mix local.hex --force &&\
|
||||
mix local.rebar --force
|
1
ci/elixir-1.15-otp25/build_and_push.sh
Executable file
1
ci/elixir-1.15-otp25/build_and_push.sh
Executable file
@ -0,0 +1 @@
|
||||
docker buildx build --platform linux/amd64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.15-otp25 --push .
|
@ -79,6 +79,10 @@ IO.puts("RUM enabled: #{rum_enabled}")
|
||||
|
||||
config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: false,
|
||||
streamer_registry: false
|
||||
|
||||
if File.exists?("./config/benchmark.secret.exs") do
|
||||
import_config "benchmark.secret.exs"
|
||||
else
|
||||
|
@ -114,14 +114,7 @@ config :pleroma, :uri_schemes,
|
||||
config :pleroma, Pleroma.Web.Endpoint,
|
||||
url: [host: "localhost"],
|
||||
http: [
|
||||
ip: {127, 0, 0, 1},
|
||||
dispatch: [
|
||||
{:_,
|
||||
[
|
||||
{"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []},
|
||||
{:_, Plug.Cowboy.Handler, {Pleroma.Web.Endpoint, []}}
|
||||
]}
|
||||
]
|
||||
ip: {127, 0, 0, 1}
|
||||
],
|
||||
protocol: "https",
|
||||
secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
|
||||
@ -192,9 +185,6 @@ config :pleroma, :instance,
|
||||
federating: true,
|
||||
federation_incoming_replies_max_depth: 100,
|
||||
federation_reachability_timeout_days: 7,
|
||||
federation_publisher_modules: [
|
||||
Pleroma.Web.ActivityPub.Publisher
|
||||
],
|
||||
allow_relay: true,
|
||||
public: true,
|
||||
quarantined_instances: [],
|
||||
@ -425,6 +415,10 @@ config :pleroma, :mrf_follow_bot, follower_nickname: nil
|
||||
|
||||
config :pleroma, :mrf_inline_quote, template: "<bdi>RT:</bdi> {url}"
|
||||
|
||||
config :pleroma, :mrf_force_mention,
|
||||
mention_parent: true,
|
||||
mention_quoted: true
|
||||
|
||||
config :pleroma, :rich_media,
|
||||
enabled: true,
|
||||
ignore_hosts: [],
|
||||
@ -434,7 +428,11 @@ config :pleroma, :rich_media,
|
||||
Pleroma.Web.RichMedia.Parsers.OEmbed
|
||||
],
|
||||
failure_backoff: 60_000,
|
||||
ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl]
|
||||
ttl_setters: [
|
||||
Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl,
|
||||
Pleroma.Web.RichMedia.Parser.TTL.Opengraph
|
||||
],
|
||||
max_body: 5_000_000
|
||||
|
||||
config :pleroma, :media_proxy,
|
||||
enabled: false,
|
||||
@ -581,7 +579,8 @@ config :pleroma, Oban,
|
||||
attachments_cleanup: 1,
|
||||
new_users_digest: 1,
|
||||
mute_expire: 5,
|
||||
search_indexing: 10
|
||||
search_indexing: 10,
|
||||
rich_media_expiration: 2
|
||||
],
|
||||
plugins: [Oban.Plugins.Pruner],
|
||||
crontab: [
|
||||
@ -805,7 +804,7 @@ config :pleroma, :modules, runtime_dir: "instance/modules"
|
||||
config :pleroma, configurable_from_database: false
|
||||
|
||||
config :pleroma, Pleroma.Repo,
|
||||
parameters: [gin_fuzzy_search_limit: "500"],
|
||||
parameters: [gin_fuzzy_search_limit: "500", jit: "off"],
|
||||
prepare: :unnamed
|
||||
|
||||
config :pleroma, :connections_pool,
|
||||
@ -907,6 +906,15 @@ config :pleroma, Pleroma.Search.Meilisearch,
|
||||
private_key: nil,
|
||||
initial_indexing_chunk_size: 100_000
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: true,
|
||||
internal_fetch: true,
|
||||
load_custom_modules: true,
|
||||
max_restarts: 3,
|
||||
streamer_registry: true
|
||||
|
||||
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 30_000
|
||||
|
||||
# Import environment specific config. This must remain at the bottom
|
||||
# of this file so it overrides the configuration defined above.
|
||||
import_config "#{Mix.env()}.exs"
|
||||
|
@ -566,6 +566,20 @@ config :pleroma, :config_description, [
|
||||
"Cool instance"
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :status_page,
|
||||
type: :string,
|
||||
description: "A page where people can see the status of the server during an outage",
|
||||
suggestions: [
|
||||
"https://status.pleroma.example.org"
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :contact_username,
|
||||
type: :string,
|
||||
description: "Instance owner username",
|
||||
suggestions: ["admin"]
|
||||
},
|
||||
%{
|
||||
key: :limit,
|
||||
type: :integer,
|
||||
@ -1444,7 +1458,7 @@ config :pleroma, :config_description, [
|
||||
label: "Subject line behavior",
|
||||
type: :string,
|
||||
description: "Allows changing the default behaviour of subject lines in replies.
|
||||
`email`: copy and preprend re:, as in email,
|
||||
`email`: copy and prepend re:, as in email,
|
||||
`masto`: copy verbatim, as in Mastodon,
|
||||
`noop`: don't copy the subject.",
|
||||
suggestions: ["email", "masto", "noop"]
|
||||
@ -3096,7 +3110,7 @@ config :pleroma, :config_description, [
|
||||
key: :max_waiting,
|
||||
type: :integer,
|
||||
description:
|
||||
"Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made",
|
||||
"Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errors when a new request is made",
|
||||
suggestions: [10]
|
||||
},
|
||||
%{
|
||||
@ -3362,7 +3376,7 @@ config :pleroma, :config_description, [
|
||||
%{
|
||||
key: :purge_after_days,
|
||||
type: :integer,
|
||||
description: "Remove backup achives after N days",
|
||||
description: "Remove backup archives after N days",
|
||||
suggestions: [30]
|
||||
},
|
||||
%{
|
||||
@ -3508,7 +3522,7 @@ config :pleroma, :config_description, [
|
||||
},
|
||||
%{
|
||||
key: :initial_indexing_chunk_size,
|
||||
type: :int,
|
||||
type: :integer,
|
||||
description:
|
||||
"Amount of posts in a batch when running the initial indexing operation. Should probably not be more than 100000" <>
|
||||
" since there's a limit on maximum insert size",
|
||||
|
@ -8,8 +8,7 @@ import Config
|
||||
# with brunch.io to recompile .js and .css sources.
|
||||
config :pleroma, Pleroma.Web.Endpoint,
|
||||
http: [
|
||||
port: 4000,
|
||||
protocol_options: [max_request_line_length: 8192, max_header_value_length: 8192]
|
||||
port: 4000
|
||||
],
|
||||
protocol: "http",
|
||||
debug_errors: true,
|
||||
|
@ -49,7 +49,7 @@ config :pleroma, Pleroma.Repo,
|
||||
hostname: System.get_env("DB_HOST") || "localhost",
|
||||
port: System.get_env("DB_PORT") || "5432",
|
||||
pool: Ecto.Adapters.SQL.Sandbox,
|
||||
pool_size: 50
|
||||
pool_size: System.schedulers_online() * 2
|
||||
|
||||
config :pleroma, :dangerzone, override_repo_pool_size: true
|
||||
|
||||
@ -61,7 +61,8 @@ config :tesla, adapter: Tesla.Mock
|
||||
config :pleroma, :rich_media,
|
||||
enabled: false,
|
||||
ignore_hosts: [],
|
||||
ignore_tld: ["local", "localdomain", "lan"]
|
||||
ignore_tld: ["local", "localdomain", "lan"],
|
||||
max_body: 2_000_000
|
||||
|
||||
config :pleroma, :instance,
|
||||
multi_factor_authentication: [
|
||||
@ -162,6 +163,20 @@ peer_module =
|
||||
|
||||
config :pleroma, Pleroma.Cluster, peer_module: peer_module
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: false,
|
||||
internal_fetch: false,
|
||||
load_custom_modules: false,
|
||||
max_restarts: 100,
|
||||
streamer_registry: false,
|
||||
test_http_pools: true
|
||||
|
||||
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 1_000
|
||||
|
||||
config :pleroma, Pleroma.Emoji.Loader, test_emoji: true
|
||||
|
||||
config :pleroma, Pleroma.Web.RichMedia.Backfill, provider: Pleroma.Web.RichMedia.Backfill
|
||||
|
||||
if File.exists?("./config/test.secret.exs") do
|
||||
import_config "test.secret.exs"
|
||||
else
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Transfering the config to/from the database
|
||||
# Transferring the config to/from the database
|
||||
|
||||
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
Options:
|
||||
|
||||
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non standart folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
|
||||
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non-standard folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
|
||||
- `<env>` - environment, for which is migrated config. By default is `prod`.
|
||||
- To delete transferred settings from database optional flag `-d` can be used
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
|
||||
1. Optionally you can remove the users of your instance. This will trigger delete requests for their accounts and posts. Note that this is 'best effort' and doesn't mean that all traces of your instance will be gone from the fediverse.
|
||||
* You can do this from the admin-FE where you can select all local users and delete the accounts using the *Moderate multiple users* dropdown.
|
||||
* You can also list local users and delete them individualy using the CLI tasks for [Managing users](./CLI_tasks/user.md).
|
||||
* You can also list local users and delete them individually using the CLI tasks for [Managing users](./CLI_tasks/user.md).
|
||||
2. Stop the Pleroma service `systemctl stop pleroma`
|
||||
3. Disable pleroma from systemd `systemctl disable pleroma`
|
||||
4. Remove the files and folders you created during installation (see installation guide). This includes the pleroma, nginx and systemd files and folders.
|
||||
|
@ -154,14 +154,15 @@ To add configuration to your config file, you can copy it from the base config.
|
||||
* `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled delections.
|
||||
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled deletions.
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy`: Makes all bot posts to disappear from public timelines.
|
||||
* `Pleroma.Web.ActivityPub.MRF.FollowBotPolicy`: Automatically follows newly discovered users from the specified bot account. Local accounts, locked accounts, and users with "#nobot" in their bio are respected and excluded from being followed.
|
||||
* `Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy`: Drops follow requests from followbots. Users can still allow bots to follow them by first following the bot.
|
||||
* `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`: Rejects or removes from the federated timeline or replaces keywords. (See [`:mrf_keyword`](#mrf_keyword)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent`: Forces every mentioned user to be reflected in the post content.
|
||||
* `Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy`: Forces quote post URLs to be reflected in the message content inline.
|
||||
* `Pleroma.Web.ActivityPub.MRF.QuoteToLinkTagPolicy`: Force a Link tag for posts quoting another post. (may break outgoing federation of quote posts with older Pleroma versions)
|
||||
* `Pleroma.Web.ActivityPub.MRF.QuoteToLinkTagPolicy`: Force a Link tag for posts quoting another post. (may break outgoing federation of quote posts with older Pleroma versions).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceMention`: Forces posts to include a mention of the author of parent post or the author of quoted post.
|
||||
* `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo).
|
||||
* `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.
|
||||
|
||||
@ -272,6 +273,10 @@ Notes:
|
||||
#### :mrf_inline_quote
|
||||
* `template`: The template to append to the post. `{url}` will be replaced with the actual link to the quoted post. Default: `<bdi>RT:</bdi> {url}`
|
||||
|
||||
#### :mrf_force_mention
|
||||
* `mention_parent`: Whether to append mention of parent post author
|
||||
* `mention_quoted`: Whether to append mention of parent quoted author
|
||||
|
||||
### :activitypub
|
||||
* `unfollow_blocked`: Whether blocks result in people getting unfollowed
|
||||
* `outgoing_blocks`: Whether to federate blocks to other instances
|
||||
@ -506,7 +511,7 @@ config :pleroma, :rate_limit,
|
||||
Means that:
|
||||
|
||||
1. In 60 seconds, 15 authentication attempts can be performed from the same IP address.
|
||||
2. In 1 second, 10 search requests can be performed from the same IP adress by unauthenticated users, while authenticated users can perform 30 search requests per second.
|
||||
2. In 1 second, 10 search requests can be performed from the same IP address by unauthenticated users, while authenticated users can perform 30 search requests per second.
|
||||
|
||||
Supported rate limiters:
|
||||
|
||||
@ -1081,7 +1086,7 @@ config :pleroma, Pleroma.Formatter,
|
||||
|
||||
## :configurable_from_database
|
||||
|
||||
Boolean, enables/disables in-database configuration. Read [Transfering the config to/from the database](../administration/CLI_tasks/config.md) for more information.
|
||||
Boolean, enables/disables in-database configuration. Read [Transferring the config to/from the database](../administration/CLI_tasks/config.md) for more information.
|
||||
|
||||
## :database_config_whitelist
|
||||
|
||||
@ -1142,7 +1147,7 @@ Control favicons for instances.
|
||||
!!! note
|
||||
Requires enabled email
|
||||
|
||||
* `:purge_after_days` an integer, remove backup achives after N days.
|
||||
* `:purge_after_days` an integer, remove backup achieves after N days.
|
||||
* `:limit_days` an integer, limit user to export not more often than once per N days.
|
||||
* `:dir` a string with a path to backup temporary directory or `nil` to let Pleroma choose temporary directory in the following order:
|
||||
1. the directory named by the TMPDIR environment variable
|
||||
|
@ -29,7 +29,7 @@ foo, /emoji/custom/foo.png
|
||||
|
||||
The files should be PNG (APNG is okay with `.png` for `image/png` Content-type) and under 50kb for compatibility with mastodon.
|
||||
|
||||
Default file extentions and locations for emojis are set in `config.exs`. To use different locations or file-extentions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extentions:
|
||||
Default file extensions and locations for emojis are set in `config.exs`. To use different locations or file-extensions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extensions:
|
||||
```elixir
|
||||
config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png", "/emoji/custom/**/*.gif"]
|
||||
```
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user