From d3bb612522431ab923958bf40498d30ab9a75571 Mon Sep 17 00:00:00 2001 From: Hakan Nilsson Date: Wed, 18 Sep 2024 10:27:46 +0200 Subject: [PATCH] Add OTP 27 to build / release workflow --- .github/workflows/build.yml | 6 +++--- .github/workflows/release.yml | 10 ++++----- apps/els_lsp/test/els_completion_SUITE.erl | 25 +++++++++++++++++++++- apps/els_lsp/test/els_hover_SUITE.erl | 16 +++++++++++++- rebar.config | 2 +- rebar.lock | 18 ++++++++-------- 6 files changed, 57 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 03955e44..cee6b8ca 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: platform: [ubuntu-latest] - otp-version: [24, 25, 26] + otp-version: [24, 25, 26, 27] runs-on: ${{ matrix.platform }} container: image: erlang:${{ matrix.otp-version }} @@ -48,7 +48,7 @@ jobs: - name: Lint run: rebar3 lint - name: Generate Dialyzer PLT for usage in CT Tests - run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto + run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto parsetools - name: Start epmd as daemon run: epmd -daemon - name: Run CT Tests @@ -92,7 +92,7 @@ jobs: - name: Lint run: rebar3 lint - name: Generate Dialyzer PLT for usage in CT Tests - run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler + run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools - name: Start epmd as daemon run: erl -sname a -noinput -eval "halt(0)." - name: Run CT Tests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12edd912..8650780c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: platform: [ubuntu-latest] - otp-version: [24, 25, 26] + otp-version: [24, 25, 26, 27] runs-on: ${{ matrix.platform }} container: image: erlang:${{ matrix.otp-version }} @@ -52,7 +52,7 @@ jobs: - name: Lint run: rebar3 lint - name: Generate Dialyzer PLT for usage in CT Tests - run: dialyzer --build_plt --apps erts kernel stdlib + run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools - name: Start epmd as daemon run: epmd -daemon - name: Run CT Tests @@ -106,9 +106,9 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Install Erlang - run: choco install -y erlang --version 24.0 + run: choco install -y erlang --version 27.0 - name: Install rebar3 - run: choco install -y rebar3 --version 3.22.1 + run: choco install -y rebar3 --version 3.24.0 - name: Compile run: rebar3 compile - name: Escriptize LSP Server @@ -122,7 +122,7 @@ jobs: - name: Lint run: rebar3 lint - name: Generate Dialyzer PLT for usage in CT Tests - run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler + run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools - name: Start epmd as daemon run: erl -sname a -noinput -eval "halt(0)." - name: Run CT Tests diff --git a/apps/els_lsp/test/els_completion_SUITE.erl b/apps/els_lsp/test/els_completion_SUITE.erl index 74b72e23..2f1aef01 100644 --- a/apps/els_lsp/test/els_completion_SUITE.erl +++ b/apps/els_lsp/test/els_completion_SUITE.erl @@ -1691,7 +1691,22 @@ resolve_application_remote_otp(Config) -> OtpRelease = list_to_integer(erlang:system_info(otp_release)), Value = case has_eep48(file) of - true when OtpRelease >= 26 -> + true when OtpRelease >= 27 -> + << + "## file:write/2\n\n" + "---\n\n```erlang\n\n" + " write(File, Bytes) when is_pid(File) orelse is_atom(File)\n\n" + " write(#file_descriptor{module = Module} = Handle, Bytes) \n\n" + " write(_, _) \n\n" + "```\n\n" + "```erlang\n" + "-spec write(IoDevice, Bytes) -> ok | {error, Reason} when\n" + " IoDevice :: io_device() | io:device(),\n" + " Bytes :: iodata(),\n" + " Reason :: posix() | badarg | terminated.\n" + "```" + >>; + true when OtpRelease == 26 -> << "```erlang\nwrite(IoDevice, Bytes) -> ok | {error, " "Reason}\nwhen\n IoDevice :: io_device() | io:device(),\n" @@ -1951,8 +1966,16 @@ resolve_type_application_remote_otp(Config) -> <<"name_all/0">> ), #{result := Result} = els_client:completionitem_resolve(Selected), + OtpRelease = list_to_integer(erlang:system_info(otp_release)), Value = case has_eep48(file) of + true when OtpRelease >= 27 -> + << + "```erlang\n" + "-type name_all() :: string() | atom() | deep_list() |" + " (RawFilename :: binary()).\n" + "```" + >>; true -> << "```erlang\n-type name_all() ::\n string() |" diff --git a/apps/els_lsp/test/els_hover_SUITE.erl b/apps/els_lsp/test/els_hover_SUITE.erl index 3dc43dcd..aceae960 100644 --- a/apps/els_lsp/test/els_hover_SUITE.erl +++ b/apps/els_lsp/test/els_hover_SUITE.erl @@ -213,7 +213,21 @@ remote_call_otp(Config) -> OtpRelease = list_to_integer(erlang:system_info(otp_release)), Value = case has_eep48(file) of - true when OtpRelease >= 26 -> + true when OtpRelease >= 27 -> + << + "## file:write/2\n\n---\n\n" + "```erlang\n\n write(File, Bytes) when is_pid(File) orelse is_atom(File)\n\n" + " write(#file_descriptor{module = Module} = Handle, Bytes) \n\n" + " write(_, _) \n\n" + "```\n\n" + "```erlang\n" + "-spec write(IoDevice, Bytes) -> ok | {error, Reason} when\n" + " IoDevice :: io_device() | io:device(),\n" + " Bytes :: iodata(),\n" + " Reason :: posix() | badarg | terminated.\n" + "```" + >>; + true when OtpRelease == 26 -> << "```erlang\nwrite(IoDevice, Bytes) -> ok | {error, " "Reason}\nwhen\n IoDevice :: io_device() | io:device(),\n" diff --git a/rebar.config b/rebar.config index edfc81c1..e1f198f4 100644 --- a/rebar.config +++ b/rebar.config @@ -15,7 +15,7 @@ {docsh, "0.7.2"}, {elvis_core, "~> 3.2.2"}, {rebar3_format, "0.8.2"}, - {erlfmt, "1.3.0"}, + {erlfmt, "1.5.0"}, {ephemeral, "2.0.4"}, {tdiff, "0.1.2"}, {uuid, "2.0.1", {pkg, uuid_erl}}, diff --git a/rebar.lock b/rebar.lock index 2a76758b..0fb5def1 100644 --- a/rebar.lock +++ b/rebar.lock @@ -1,16 +1,16 @@ {"1.2.0", [{<<"bucs">>,{pkg,<<"bucs">>,<<"1.0.16">>},1}, {<<"docsh">>,{pkg,<<"docsh">>,<<"0.7.2">>},0}, - {<<"elvis_core">>,{pkg,<<"elvis_core">>,<<"3.2.2">>},0}, + {<<"elvis_core">>,{pkg,<<"elvis_core">>,<<"3.2.5">>},0}, {<<"ephemeral">>,{pkg,<<"ephemeral">>,<<"2.0.4">>},0}, - {<<"erlfmt">>,{pkg,<<"erlfmt">>,<<"1.3.0">>},0}, + {<<"erlfmt">>,{pkg,<<"erlfmt">>,<<"1.5.0">>},0}, {<<"getopt">>,{pkg,<<"getopt">>,<<"1.0.1">>},2}, {<<"gradualizer">>, {git,"https://github.com/josefs/Gradualizer.git", {ref,"3021d29d82741399d131e3be38d2a8db79d146d4"}}, 0}, {<<"jsx">>,{pkg,<<"jsx">>,<<"3.0.0">>},0}, - {<<"katana_code">>,{pkg,<<"katana_code">>,<<"2.1.0">>},1}, + {<<"katana_code">>,{pkg,<<"katana_code">>,<<"2.1.1">>},1}, {<<"providers">>,{pkg,<<"providers">>,<<"1.8.1">>},1}, {<<"quickrand">>,{pkg,<<"quickrand">>,<<"2.0.7">>},1}, {<<"rebar3_format">>,{pkg,<<"rebar3_format">>,<<"0.8.2">>},0}, @@ -26,12 +26,12 @@ {pkg_hash,[ {<<"bucs">>, <<"D69A4CD6D1238CD1ADC5C95673DBDE0F8459A5DBB7D746516434D8C6D935E96F">>}, {<<"docsh">>, <<"F893D5317A0E14269DD7FE79CF95FB6B9BA23513DA0480EC6E77C73221CAE4F2">>}, - {<<"elvis_core">>, <<"D5AE5FB7ACDF9D23A2AA3F6E4610490A06F7E8FB33EE65E09C5EA3A0ECF64A73">>}, + {<<"elvis_core">>, <<"7845047A1CABD0F575EE8A95D2223F2F2040FBDA78C81EEE933090B857611BA0">>}, {<<"ephemeral">>, <<"B3E57886ADD5D90C82FE3880F5954978222A122CB8BAA123667401BBAAEC51D6">>}, - {<<"erlfmt">>, <<"672994B92B1A809C04C46F0B781B447BF9AB7A515F5856A96177BC1962F100A9">>}, + {<<"erlfmt">>, <<"5DDECA120A6E8E0A0FAB7D0BB9C2339D841B1C9E51DD135EE583256DEF20DE25">>}, {<<"getopt">>, <<"C73A9FA687B217F2FF79F68A3B637711BB1936E712B521D8CE466B29CBF7808A">>}, {<<"jsx">>, <<"20A170ABD4335FC6DB24D5FAD1E5D677C55DADF83D1B20A8A33B5FE159892A39">>}, - {<<"katana_code">>, <<"0C42BDCD7E59995876AED9F678CF62E3D12EF42E0FBB2190556E64BFEBDD15C6">>}, + {<<"katana_code">>, <<"9AC515E6B5AE4903CD7B6C9161ABFBA49B610B6F3E19E8F0542802A4316C2405">>}, {<<"providers">>, <<"70B4197869514344A8A60E2B2A4EF41CA03DEF43CFB1712ECF076A0F3C62F083">>}, {<<"quickrand">>, <<"D2BD76676A446E6A058D678444B7FDA1387B813710D1AF6D6E29BB92186C8820">>}, {<<"rebar3_format">>, <<"2D64DA61E0B87FCA6C4512ADA6D9CBC2B27ADC9AE6844178561147E7121761BD">>}, @@ -42,12 +42,12 @@ {pkg_hash_ext,[ {<<"bucs">>, <<"FF6A5C72A500AD7AEC1EE3BA164AE3C450EADEE898B0D151E1FACA18AC8D0D62">>}, {<<"docsh">>, <<"4E7DB461BB07540D2BC3D366B8513F0197712D0495BB85744F367D3815076134">>}, - {<<"elvis_core">>, <<"3786F027751CC265E7389BF5AC1329DB547510D80F499B45EFE771BDAF889B36">>}, + {<<"elvis_core">>, <<"34D9218F0B8072511903BF6CCBF59EB1765DECFC73FCC6833BA5C8959DB7F383">>}, {<<"ephemeral">>, <<"4B293D80F75F9C4575FF4B9C8E889A56802F40B018BF57E74F19644EFEE6C850">>}, - {<<"erlfmt">>, <<"2A84AA1EBA2F4FCD7DD31D5C57E9DE2BC2705DDA18DA4553F27DF7114CFAA052">>}, + {<<"erlfmt">>, <<"3933A40CFBE790AD94E5B650B36881DE70456319263C1479B556E9AFDBD80C75">>}, {<<"getopt">>, <<"53E1AB83B9CEB65C9672D3E7A35B8092E9BDC9B3EE80721471A161C10C59959C">>}, {<<"jsx">>, <<"37BECA0435F5CA8A2F45F76A46211E76418FBEF80C36F0361C249FC75059DC6D">>}, - {<<"katana_code">>, <<"AE3BBACA187511588F69695A9FF22251CB2CC672FDCCC180289779BDD25175EF">>}, + {<<"katana_code">>, <<"0680F33525B9A882E6F4D3022518B15C46F648BD7B0DBE86900980FE1C291404">>}, {<<"providers">>, <<"E45745ADE9C476A9A469EA0840E418AB19360DC44F01A233304E118A44486BA0">>}, {<<"quickrand">>, <<"B8ACBF89A224BC217C3070CA8BEBC6EB236DBE7F9767993B274084EA044D35F0">>}, {<<"rebar3_format">>, <<"CA8FF27638C2169593D1449DACBE8895634193ED3334E906B54FC97F081F5213">>},