Skip to content

OTP 26 is needed for dynamic() type usage #188

@victorolinasc

Description

@victorolinasc

Hello @potatosalad !

It seems that a change in 1.11.11 and 1.11.12 make jose demand a minimum OTP version of 26. This is because of the use of dynamic() in the behaviour jose_json. It is only supported from OTP 26 on.

IMHO, this is fine if we introduce at least a minor version. It would ease people updating deps and would not need to fix a version in it.

Example output of compilation (OTP 24 / Elixir 1.15 / Jose 1.11.12):

==> jose
Compiling 113 files (.erl)
src/json/jose_json.erl:14:18: type dynamic() undefined
%   14| -callback encode(dynamic()) -> binary().
%     |                  ^

src/json/jose_json_jason.erl:4:2: Warning: behaviour jose_json undefined
%    4| -behaviour(jose_json).
%     |  ^

src/json/jose_json_jiffy.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_jsone.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_jsx.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_ojson.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_otp.erl:30:15: type dynamic() undefined
%   30| -spec encoder(dynamic(), json:encoder()) -> iodata().
%     |               ^

src/json/jose_json_otp.erl:4:2: Warning: behaviour jose_json undefined
%    4| -behaviour(jose_json).
%     |  ^

src/json/jose_json_poison.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_poison_lexical_encoder.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_thoas.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_unsupported.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

src/json/jose_json_poison_compat_encoder.erl:12:2: Warning: behaviour jose_json undefined
%   12| -behaviour(jose_json).
%     |  ^

could not compile dependency :jose, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile jose --force", update it with "mix deps.update jose" or clean it with "mix deps.clean jose"

Thanks !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions