Commit graph

17,141 commits

Author SHA1 Message Date
Haelwenn (lanodan) Monnier
00d536d9e2
backports: Copy mkdir_p TOCTOU fix from elixir PR 14242
See: https://github.com/elixir-lang/elixir/pull/14242
2025-06-16 12:46:00 +02:00
lain
bc75bb35fa Merge branch 'relaxed-also-known-as' into 'develop'
Relax alsoKnownAs requirements to just being a URI

See merge request pleroma/pleroma!4367
2025-06-14 08:30:13 +00:00
feld
774e0cb172 Merge branch 'unlisted-fix' into 'develop'
Public getting stripped from unlisted activity CC

See merge request pleroma/pleroma!4353
2025-06-13 06:27:04 +00:00
Mark Felder
7c64bfaace Include public address in cc if original activity specified it and Publisher param_cc also has values 2025-06-12 22:42:40 -07:00
Mark Felder
fe6d2ecc97 Test for unlisted but Publisher param_cc is not empty 2025-06-12 22:41:39 -07:00
Mark Felder
d3adc3e05e Split this cc test into two individual cases 2025-06-12 21:59:37 -07:00
Mark Felder
23be24b92f Fix federation issue where Public visibility information in cc field was lost when sent to remote servers, causing posts to appear with inconsistent visibility across instances 2025-06-12 21:37:50 -07:00
Mark Felder
9f79df7508 Add test demonstrating public getting stripped from unlisted activity CC 2025-06-12 21:32:43 -07:00
Mark Felder
27ec46814c Revert "Public getting stripped from unlisted activity CC: Add possible tests"
This reverts commit ded40182b0.
2025-06-12 21:27:19 -07:00
Mark Felder
8488362248 Merge remote-tracking branch 'origin/develop' into unlisted-fix 2025-06-12 21:20:34 -07:00
Ekaterina Vaartis
a361b84fc9 Relax alsoKnownAs requirements to just being a URI 2025-06-11 23:24:18 +03:00
feld
f38e9228ef Merge branch 'tusooa/assign-app-user-oom' into 'develop'
Fix AssignAppUser migration OOM

Closes #3358

See merge request pleroma/pleroma!4326
2025-06-07 19:39:57 +00:00
feld
5cd8c23634 Merge branch 'mix-otpver' into 'develop'
Remove forgotten Pleroma.OTPVersion usage in mix.exs

See merge request pleroma/pleroma!4364
2025-06-06 20:14:14 +00: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
Ekaterina Vaartis
8ae4ed0807 Make the opts in ActivityPub.Builder.block optional 2025-06-05 22:12:06 +03:00
Phantasm
a817f1800e
Remove forgotten Pleroma.OTPVersion usage in mix.exs
This was used in OTP releases where the normal OTP_VERSION file
is unavailable.

If checking against OTP minor versions and patch levels
is needed again, revert this commit and commit mentioned below.

Context: 1be8deda73
2025-06-05 16:48:58 +02: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