Skip to content

Commit 853b278

Browse files
josevalimericmj
andauthored
Fixes for Elixir 1.15.0 (#974)
Co-authored-by: Eric Meadows-Jönsson <[email protected]>
1 parent 96948da commit 853b278

File tree

4 files changed

+60
-15
lines changed

4 files changed

+60
-15
lines changed

lib/mix/tasks/hex.publish.ex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ defmodule Mix.Tasks.Hex.Publish do
183183
end
184184

185185
defp docs_task() do
186+
# Elixir v1.15 prunes the loadpaths on compilation and
187+
# docs will compile code. So we add all original code paths back.
188+
path = :code.get_path()
189+
186190
try do
187191
Mix.Task.run("docs", [])
188192
rescue
@@ -199,6 +203,8 @@ defmodule Mix.Tasks.Hex.Publish do
199203
""")
200204

201205
reraise ex, stacktrace
206+
after
207+
:code.add_pathsz(path)
202208
end
203209
end
204210

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ defmodule Hex.MixProject do
1919

2020
def application do
2121
[
22-
extra_applications: [:ssl, :inets, :logger],
22+
extra_applications: [:ssh, :ssl, :inets, :logger],
2323
mod: {Hex.Application, []}
2424
]
2525
end

test/hex/mix_task_test.exs

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ defmodule Hex.MixTaskTest do
66
[
77
app: :simple,
88
version: "0.1.0",
9+
consolidate_protocols: false,
910
deps: [
1011
{:ecto, "0.2.0"}
1112
]
@@ -18,6 +19,7 @@ defmodule Hex.MixTaskTest do
1819
[
1920
app: :simple,
2021
version: "0.1.0",
22+
consolidate_protocols: false,
2123
deps: [
2224
{:ecto, "~> 0.2.1"}
2325
]
@@ -30,6 +32,7 @@ defmodule Hex.MixTaskTest do
3032
[
3133
app: :simple,
3234
version: "0.1.0",
35+
consolidate_protocols: false,
3336
deps: [
3437
{:ecto, "~> 0.2.0"}
3538
]
@@ -42,6 +45,7 @@ defmodule Hex.MixTaskTest do
4245
[
4346
app: :override,
4447
version: "0.1.0",
48+
consolidate_protocols: false,
4549
deps: [
4650
{:ecto, "0.2.0"},
4751
{:ex_doc, "~> 0.1.0", override: true}
@@ -55,6 +59,7 @@ defmodule Hex.MixTaskTest do
5559
[
5660
app: :non_hex_dep,
5761
version: "0.1.0",
62+
consolidate_protocols: false,
5863
deps: [
5964
{:has_hex_dep, path: fixture_path("has_hex_dep")}
6065
]
@@ -67,6 +72,7 @@ defmodule Hex.MixTaskTest do
6772
[
6873
app: :ecto_path_dep,
6974
version: "0.1.0",
75+
consolidate_protocols: false,
7076
deps: [
7177
{:postgrex, ">= 0.0.0"},
7278
{:ecto, path: fixture_path("ecto")}
@@ -80,6 +86,7 @@ defmodule Hex.MixTaskTest do
8086
[
8187
app: :ecto_path_dep,
8288
version: "0.1.0",
89+
consolidate_protocols: false,
8390
deps: [
8491
{:postgrex, "0.2.1"},
8592
{:ecto, path: fixture_path("ecto")}
@@ -93,6 +100,7 @@ defmodule Hex.MixTaskTest do
93100
[
94101
app: :ecto_path_dep,
95102
version: "0.1.0",
103+
consolidate_protocols: false,
96104
deps: [
97105
{:postgrex_conflict, ">= 0.0.0", hex: :postgrex},
98106
{:ecto, path: fixture_path("ecto")}
@@ -106,6 +114,7 @@ defmodule Hex.MixTaskTest do
106114
[
107115
app: :override_with_path,
108116
version: "0.1.0",
117+
consolidate_protocols: false,
109118
deps: [
110119
{:postgrex, ">= 0.0.0"},
111120
{:ex_doc, path: fixture_path("ex_doc"), override: true}
@@ -119,6 +128,7 @@ defmodule Hex.MixTaskTest do
119128
[
120129
app: :override_two_levels_with_path,
121130
version: "0.1.0",
131+
consolidate_protocols: false,
122132
deps: [
123133
{:phoenix, ">= 0.0.0"},
124134
{:ex_doc, path: fixture_path("ex_doc"), override: true}
@@ -132,6 +142,7 @@ defmodule Hex.MixTaskTest do
132142
[
133143
app: :override_with_path_parent,
134144
version: "0.1.0",
145+
consolidate_protocols: false,
135146
deps: [
136147
{:override_with_path, path: fixture_path("override_with_path")}
137148
]
@@ -144,6 +155,7 @@ defmodule Hex.MixTaskTest do
144155
[
145156
app: :optional,
146157
version: "0.1.0",
158+
consolidate_protocols: false,
147159
deps: [
148160
{:only_doc, ">= 0.0.0"}
149161
]
@@ -156,6 +168,7 @@ defmodule Hex.MixTaskTest do
156168
[
157169
app: :with_optional,
158170
version: "0.1.0",
171+
consolidate_protocols: false,
159172
deps: [
160173
{:only_doc, ">= 0.0.0"},
161174
{:ex_doc, "0.0.1"}
@@ -169,6 +182,7 @@ defmodule Hex.MixTaskTest do
169182
[
170183
app: :with_package_name,
171184
version: "0.1.0",
185+
consolidate_protocols: false,
172186
deps: [
173187
{:app_name, ">= 0.0.0", hex: :package_name}
174188
]
@@ -181,6 +195,7 @@ defmodule Hex.MixTaskTest do
181195
[
182196
app: :with_depend_name,
183197
version: "0.1.0",
198+
consolidate_protocols: false,
184199
deps: [
185200
{:depend_name, ">= 0.0.0"}
186201
]
@@ -193,6 +208,7 @@ defmodule Hex.MixTaskTest do
193208
[
194209
app: :with_incorrect_dep_version,
195210
version: "0.1.0",
211+
consolidate_protocols: false,
196212
deps: [
197213
{:ex_doc, "> hello"}
198214
]
@@ -205,6 +221,7 @@ defmodule Hex.MixTaskTest do
205221
[
206222
app: :with_missing_dep_version,
207223
version: "0.1.0",
224+
consolidate_protocols: false,
208225
deps: [
209226
{:ex_doc, []}
210227
]
@@ -217,6 +234,7 @@ defmodule Hex.MixTaskTest do
217234
[
218235
app: :with_non_matching_requirement,
219236
version: "0.1.0",
237+
consolidate_protocols: false,
220238
deps: [
221239
{:ex_doc, "~> 100.0.0"}
222240
]
@@ -229,6 +247,7 @@ defmodule Hex.MixTaskTest do
229247
[
230248
app: :with_only_matching_pre_requirement,
231249
version: "0.1.0",
250+
consolidate_protocols: false,
232251
deps: [
233252
{:beta, "~> 1.1.0"}
234253
]
@@ -241,6 +260,7 @@ defmodule Hex.MixTaskTest do
241260
[
242261
app: :depends_on_ecto_sql,
243262
version: "0.1.0",
263+
consolidate_protocols: false,
244264
deps: [
245265
{:ecto_sql, "~> 3.3"},
246266
{:ecto_enum, "1.4.0"}
@@ -254,13 +274,32 @@ defmodule Hex.MixTaskTest do
254274
[
255275
app: :depends_on_sponsored,
256276
version: "0.1.0",
277+
consolidate_protocols: false,
257278
deps: [
258279
{:sponsored, "0.1.0"}
259280
]
260281
]
261282
end
262283
end
263284

285+
defp reset_code_paths(fun) do
286+
path = :code.get_path()
287+
288+
try do
289+
fun.()
290+
after
291+
:code.add_pathsz(path)
292+
end
293+
end
294+
295+
defp deps_compile() do
296+
reset_code_paths(fn -> Mix.Task.run("deps.compile") end)
297+
end
298+
299+
defp compile() do
300+
reset_code_paths(fn -> Mix.Task.run("compile") end)
301+
end
302+
264303
test "deps.get" do
265304
Mix.Project.push(Simple)
266305

@@ -272,7 +311,7 @@ defmodule Hex.MixTaskTest do
272311
assert_received {:mix_shell, :info, ["* Getting postgrex (Hex package)"]}
273312
assert_received {:mix_shell, :info, ["* Getting ex_doc (Hex package)"]}
274313

275-
Mix.Task.run("deps.compile")
314+
deps_compile()
276315
Mix.Task.run("deps")
277316

278317
assert_received {:mix_shell, :info, ["* ecto 0.2.0 (Hex package)" <> _]}
@@ -304,7 +343,7 @@ defmodule Hex.MixTaskTest do
304343
Mix.Task.clear()
305344

306345
Mix.Task.run("deps.get")
307-
Mix.Task.run("deps.compile")
346+
deps_compile()
308347
Mix.Task.run("deps")
309348

310349
assert_received {:mix_shell, :info, ["* ecto 0.2.0 (Hex package)" <> _]}
@@ -344,7 +383,7 @@ defmodule Hex.MixTaskTest do
344383
assert_received {:mix_shell, :info, ["* Updating postgrex (Hex package)"]}
345384
assert_received {:mix_shell, :info, ["* Updating ex_doc (Hex package)"]}
346385

347-
Mix.Task.run("deps.compile")
386+
deps_compile()
348387
Mix.Task.run("deps")
349388

350389
assert_received {:mix_shell, :info, ["* ecto 0.2.1 (Hex package)" <> _]}
@@ -545,7 +584,7 @@ defmodule Hex.MixTaskTest do
545584
Hex.State.put(:cache_home, File.cwd!())
546585

547586
Mix.Task.run("deps.get")
548-
Mix.Task.run("deps.compile")
587+
deps_compile()
549588
Mix.Task.run("deps")
550589

551590
assert_received {:mix_shell, :info, ["* ecto 0.2.0 (Hex package)" <> _]}
@@ -956,7 +995,7 @@ defmodule Hex.MixTaskTest do
956995
})
957996

958997
Mix.Task.run("deps.get")
959-
Mix.Task.run("compile")
998+
compile()
960999
Mix.Task.run("deps.update", ["ecto_sql"])
9611000
end)
9621001
after

test/mix/tasks/hex.publish_test.exs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,18 +87,18 @@ defmodule Mix.Tasks.Hex.PublishTest do
8787
send(self(), {:mix_shell_input, :prompt, "hunter42"})
8888
Mix.Tasks.Hex.Publish.run(["package", "--no-progress", "--replace"])
8989

90-
message =
91-
"Package published to http://localhost:4043/packages/publish_and_revert/0.0.1 " <>
92-
"(cea573df6b6ca7027ca918ea349ec34af17774b426dd4c3a0db0bdecca97d0d0)"
93-
94-
assert_received {:mix_shell, :info, [^message]}
90+
assert_received {:mix_shell, :info,
91+
[
92+
"Package published to http://localhost:4043/packages/publish_and_revert/0.0.1 " <>
93+
_
94+
]}
9595

9696
assert {:ok, {200, _, _}} = Hex.API.Release.get("hexpm", "publish_and_revert", "0.0.1")
9797

98-
message =
99-
"Before publishing, please read the Code of Conduct: https://hex.pm/policies/codeofconduct\n"
100-
101-
assert_received {:mix_shell, :info, [^message]}
98+
assert_received {:mix_shell, :info,
99+
[
100+
"Before publishing, please read the Code of Conduct: https://hex.pm/policies/codeofconduct\n"
101+
]}
102102

103103
send(self(), {:mix_shell_input, :yes?, true})
104104
send(self(), {:mix_shell_input, :prompt, "hunter42"})

0 commit comments

Comments
 (0)