Commit graph

17,133 commits

Author SHA1 Message Date
Mark Felder
a46a48fb3f PublisherWorker: change max_attempts to 13 which extends the last delivery attempt to ~4.3 days 2025-06-07 15:13:45 -07:00
Mark Felder
8383584d69 Reapply "Nodeinfo is not universally implemented"
This reverts commit 0fe03fc4ee.
2025-06-07 14:57:34 -07:00
Mark Felder
2748891e12 Change the inboxes assignment in the Publisher to better indicate it's a list containing two lists
This clarifies what is really going on here and removes confusion about the nested Enum.each |> Enum.each which both were using an assignment called "inboxes"
2025-06-07 12:26:07 -07:00
Lain Soykaf
3984ba8721 Fix typo in changelog filename 2025-06-07 22:51:26 +04:00
Mark Felder
83c9756825 Remove unncessary NaiveDateTime call.
Every non-nil entry in the database is considered unreachable.
2025-06-06 17:10:33 -07:00
Mark Felder
0fe03fc4ee Revert "Nodeinfo is not universally implemented"
This reverts commit b87ec49972.
2025-06-06 13:44:24 -07:00
Mark Felder
0f667761a9 The ap_id is a URL, so we can just pass that to set_reachable/1
Also only bother attempting to mark reachable if it was known to be unreachable
2025-06-06 13:01:32 -07:00
Mark Felder
b87ec49972 Nodeinfo is not universally implemented 2025-06-06 12:55:21 -07:00
Mark Felder
3d422ef325 Reachability refactor
The result of Oban jobs determine the reachability status.

Publisher jobs will cancel themselves at execution time if the target server is now unreachable.

Receiving activities does not immediately mark a server as reachable, but creates a ReachabilityWorker job to validate.

A Cron will execute daily to test all unreachable servers.
2025-06-06 12:32:09 -07:00
feld
7114635997 Merge branch 'private-functions' into 'develop'
Pleroma.User: Mark some functions as private

See merge request pleroma/pleroma!4357
2025-06-06 01:00:43 +00:00
feld
f38123ad2d Merge branch 'openbsd-docs' into 'develop'
Update OpenBSD documentation and installation files

See merge request pleroma/pleroma!4258
2025-06-06 00:59:58 +00:00
feld
7101d8ab1e Merge branch 'fixes' into 'develop'
Fix test fallout from most recent merges

See merge request pleroma/pleroma!4365
2025-06-06 00:58:00 +00:00
Mark Felder
9226963763 Fix test fallout from most recent merges 2025-06-05 17:13:55 -07:00
Mark Felder
db65b35ca3 Fix test Returns JSON when format is not supported (Pleroma.Web.WebFinger.WebFingerControllerTest)
If we want to return JSON when a badly behaving client requests text/html, we still have to accept it at the Plug
2025-06-05 17:11:16 -07:00
Mark Felder
48316d168c Fix failing tests due to Builder.block/2 becoming Builder.block/3 with no default value 2025-06-05 16:55:07 -07:00
Mark Felder
a2ad2d8d23 Remove unused import 2025-06-05 16:54:05 -07:00
vaartis
8484e09424 Merge branch 'elixir-1.18' into 'develop'
Elixir 1.18 warnings

See merge request pleroma/pleroma!4358
2025-06-05 09:00:39 +00:00
Phantasm
ff69b00eae
Elixir 1.18 Update credo
warning: Credo.CLI.Command.Info.Output.Default.print_after_info/4 is undefined or private. Did you mean:

          * print/2

    │
  4 │   use Credo.CLI.Output.FormatDelegator,
    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    │
    └─ lib/credo/cli/command/info/info_output.ex:4: Credo.CLI.Command.Info.InfoOutput.print_after_info/4
2025-06-04 19:18:01 +02:00
Phantasm
dc26f74961
Revert to previous tag_validator behavior
This paritally reverts commit 9710063fdc
and reverts commit 7ddae61414

See thread: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/4358#note_112761
2025-06-04 19:16:59 +02:00
Ekaterina Vaartis
7ddae61414 Change the test that assumes that a hashtag with # will remain as-is
This does not seem to be the intended behaviour, as the code that produces it
did not actually ever do anything and just returned the tag as-is.

See
lib/pleroma/web/activity_pub/object_validators/tag_validator.ex
and
https://git.pleroma.social/pleroma/pleroma/-/merge_requests/4358#note_112681

At least Mastodon and Misskey output tags without the # from their API,
so in reality tags with the hash should rarely happen.
2025-06-04 12:28:59 +03:00
Ekaterina Vaartis
d95e1066b9 Fix formatting 2025-06-04 12:03:54 +03:00
Ekaterina Vaartis
6fa4f08e67 Add back String.downcase that was accidentally removed from tag_validator 2025-06-04 11:43:18 +03:00
Phantasm
1be8deda73
Remove Pleroma.OTPVersion module
Its last use was a check in lib/application.ex that was removed in
commit 0e53cb4940

Major OTP version can be fetched with System.otp_release/0.
If checking against minor versions and patch levels is needed,
revert this commit since it uses the recommended way of getting
a full OTP version string.
2025-06-03 23:17:39 +02:00
Phantasm
0e53cb4940
Remove unreachable checks for OTP < 22.2
OTP 22 is no longer supported at all.

Pleroma's dependencies cannot be built with Elixir 1.13 and
Elixir 1.14 cannot be built with OTP 22 since it depends on features not
present in OTP 22. Hence why these checks cannot get triggered anymore.
2025-06-03 23:11:37 +02:00
Phantasm
9710063fdc
Apply suggestions to 2 files. 2025-06-03 23:11:37 +02:00
Phantasm
9386863019
openbsd: update install docs for 7.7
Explicitely installing OTP 26 is no longer needed.
2025-06-03 23:08:51 +02:00
lain
93ce56418e Merge branch 'permissive-webfinger' into 'develop'
WebFinger query default to return JSON when no or unrecognized accept header is provided.

Closes #3381

See merge request pleroma/pleroma!4345
2025-05-29 08:41:27 +00:00
lain
36be0d32a4 Merge branch 'expiring-blocks' into 'develop'
Add expiring blocks

See merge request pleroma/pleroma!4351
2025-05-29 08:25:21 +00:00
lain
374e8c85a7 Apply lambadalambda's suggestion(s) to 1 file(s) 2025-05-29 08:17:31 +00:00
Phantasm
286204913d
Replace Elixir 1.17 with 1.18 for build unit-testing pipelines 2025-05-24 22:17:38 +02:00
Phantasm
2b513fd450
Elixir 1.18 add changelog 2025-05-24 22:03:23 +02:00
Phantasm
a0dfa12b78
Elixir 1.18 Update supported versions for Erlang OTP and Elixir 2025-05-24 21:59:24 +02:00
mkljczk
4960e040c1 Merge branch 'doc-typo' into 'develop'
Fix typo in account_status function doc

See merge request pleroma/pleroma!4355
2025-05-23 13:42:32 +02:00
mkljczk
25a2831606 Merge branch 'admin-api-docs-fix' into 'develop'
Fix 'Create a user' description in admin api docs

See merge request pleroma/pleroma!4361
2025-05-23 13:42:12 +02:00
Nicole Mikołajczyk
6b38ec310a Fix 'Create a user' description in admin api docs
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl>
2025-05-22 20:54:16 +02:00
mkljczk
4c8a93a06d Pleroma.User: Mark some functions as private
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl>
2025-05-19 10:03:48 +02:00
mkljczk
69c80cf904 Merge branch 'admin-api-log-fix' into 'develop'
Fix condition for moderation log force_password_reset action

See merge request pleroma/pleroma!4356
2025-05-18 01:00:36 +02:00
Phantasm
af81f7bf82
Don't use deprecated function invocation syntax
warning: using map.field notation (without parentheses) to invoke function TranslationMock.configured?() is deprecated, you must add parentheses instead: remote.function()
2025-05-14 17:00:19 +02:00
Phantasm
7c13abb3d9
Elixir 1.18 Use NaiveDateTime.compare/2 instead of <>= comparisons
warning: comparison with structs found:

        left <= right

    given types:

        dynamic() <= dynamic(%NaiveDateTime{})

    where "left" (context ExUnit.Assertions) was given the type:

        # type: dynamic()
        # from: test/pleroma/web/plugs/user_tracking_plug_test.exs:25
        left = user.last_active_at

    where "right" (context ExUnit.Assertions) was given the type:

        # type: dynamic(%NaiveDateTime{})
        # from: test/pleroma/web/plugs/user_tracking_plug_test.exs:25
        right = NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second)

    Comparison operators (>, <, >=, <=, min, and max) perform structural and not semantic comparison. Comparing with a struct won't give meaningful results. Structs that can be compared typically define a compare/2 function within their modules that can be used for semantic comparison.

    typing violation found at:
    │
 25 │     assert user.last_active_at <= NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second)
    │                                ~
    │
    └─ test/pleroma/web/plugs/user_tracking_plug_test.exs:25:32: Pleroma.Web.Plugs.UserTrackingPlugTest."test updates last_active_at for a new user"/1
2025-05-14 16:37:43 +02:00
Phantasm
5addbf39fb
Elixir 1.18 Deal with :warnings_as_errors deprecation in compiler_options/1
warning: :warnings_as_errors is deprecated as part of Code.get_compiler_option/1
  (elixir 1.18.3) lib/code.ex:1597: Code.get_compiler_option/1
  (elixir 1.18.3) lib/code.ex:1572: anonymous fn/2 in Code.compiler_options/1
  (elixir 1.18.3) lib/enum.ex:2546: Enum."-reduce/3-lists^foldl/2-0-"/3
  (elixir 1.18.3) lib/code.ex:1571: Code.compiler_options/1
  (pleroma 2.9.1-77-g8ec49c59-elixir-1-18+test) lib/pleroma/application.ex:104: Pleroma.Application.start/2
  (kernel 10.2.6) application_master.erl:295: :application_master.start_it_old/4

warning: :warnings_as_errors is deprecated as part of Code.put_compiler_option/2, instead you must pass it as a --warnings-as-errors flag. If you need to set it as a default in a mix task, you can also set it under aliases: [compile: "compile --warnings-as-errors"]
  (elixir 1.18.3) lib/code.ex:1710: Code.put_compiler_option/2
  (elixir 1.18.3) lib/code.ex:1573: anonymous fn/2 in Code.compiler_options/1
  (elixir 1.18.3) lib/enum.ex:2546: Enum."-reduce/3-lists^foldl/2-0-"/3
  (elixir 1.18.3) lib/code.ex:1571: Code.compiler_options/1
  (pleroma 2.9.1-77-g8ec49c59-elixir-1-18+test) lib/pleroma/application.ex:104: Pleroma.Application.start/2
  (kernel 10.2.6) application_master.erl:295: :application_master.start_it_old/4
2025-05-13 14:02:47 +02:00
Phantasm
63cbc1208d
Elixir 1.18 Replace Tuple.append/2 with Tuple.insert_at/3
warning: Tuple.append/2 is deprecated. Use insert_at instead
     │
 305 │     Enum.reduce(entity, {}, &Tuple.append(&2, to_elixir_types(&1)))
     │                                    ~
     │
     └─ lib/pleroma/config_db.ex:305:36: Pleroma.ConfigDB.to_elixir_types/1
2025-05-13 14:02:47 +02:00
Phantasm
59d17a5b20
Elixir 1.18 Move Update activity validation to separate function
warning: Pleroma.Web.ActivityPub.ObjectValidators.AcceptRejectValidator.cast_and_validate/2 is undefined or private. Did you mean:

   * cast_and_validate/1

    │
227 │       validator == UpdateValidator -> fn o -> validator.cast_and_validate(o, meta) end
    │                                                         ~
    │
    └─ lib/pleroma/web/activity_pub/object_validator.ex:227:57: Pleroma.Web.ActivityPub.ObjectValidator.validate/2
2025-05-13 14:01:47 +02:00
Phantasm
25e7b12a6b
Elixir 1.18 Remove seemingly unneeded cond
warning: this clause in cond will always match:

<<"#", name::binary>>

since it has type:

binary()

where "name" was given the type:

%{"type" => "Hashtag", "name" => name} = data

   typing violation found at:
   │
55 │         "#" <> name -> name
   │                     ~
   │
   └─ lib/pleroma/web/activity_pub/object_validators/tag_validator.ex:55:21: Pleroma.Web.ActivityPub.ObjectValidators.TagValidator.changeset/2
2025-05-13 10:21:44 +02:00
Phantasm
53d7b205e8
Elixir 1.18 <%# deprecated syntax warning
warning: <%# is deprecated, use <%!-- or add a space between <% and # instead
    │
  5 │       <%# Note: using hidden input with `unchecked_value` in order to distinguish user's empty selection from `scope` param being omitted %>
    │       ~
    │
    └─ lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:5: (file)
2025-05-12 16:17:32 +02:00
mkljczk
68a5c60113 another doc update 2025-05-08 13:45:22 +02:00
mkljczk
63afd9a22d Fix condition for moderation log force_password_reset action 2025-05-07 17:29:27 +02:00
mkljczk
ccb5b81179 Update changelog 2025-05-06 21:48:39 +02:00
mkljczk
31071973b7 Fix typo in account_status function doc 2025-05-06 21:48:17 +02:00
Ekaterina Vaartis
51a0cee405 Add expiring blocks
- `/api/v1/accounts/:id/block` now has a "duration" parameter
- `/api/v1/blocks` returns "block_expires_at" to indicate when the block
will expire
- MuteExpireWorker also processes block expiration
- Remove unused OpenAPI parameters from mute endpoint
- Add pleroma:block_expiration to nodeinfo features
2025-04-15 12:55:09 +03:00
feld
99fbe0418a Merge branch 'gins-tonic' into 'develop'
Improved performance of status search queries using the default GIN index

See merge request pleroma/pleroma!4352
2025-04-10 22:01:25 +00:00