Skip to content

Commit 92e7dab

Browse files
committed
Include special packages in package_names.csv
The package_names.csv published to hexdocs.pm was generated solely from the Hex registry names, so the Elixir standard library applications and Hex itself (the special packages, which are documented on hexdocs.pm but not published as Hex packages) were absent. Consumers such as the hexdocs search autocomplete therefore could not list them. Prepend the configured special package names so the file reflects the same authoritative set the rest of the producer uses.
1 parent af6fb17 commit 92e7dab

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

lib/hexdocs/queue.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ defmodule Hexdocs.Queue do
362362

363363
case Hexdocs.HexRepo.get_names() do
364364
{:ok, names} ->
365+
names = Enum.sort(@special_package_names) ++ names
365366
csv = for name <- names, do: [name, "\n"]
366367
Hexdocs.Bucket.upload_package_names_csv(csv)
367368

test/hexdocs/queue_test.exs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,15 @@ defmodule Hexdocs.QueueTest do
7777

7878
assert Store.get(@public_bucket, "#{test}/index.html") == "contents"
7979
assert Store.get(@public_bucket, "#{test}/1.0.0/index.html") == "contents"
80-
assert Store.get(@public_bucket, "package_names.csv") == "package1\npackage2\n"
80+
names = Store.get(@public_bucket, "package_names.csv") |> String.split("\n", trim: true)
81+
assert "package1" in names
82+
assert "package2" in names
83+
84+
special_packages = Map.keys(Application.fetch_env!(:hexdocs, :special_packages))
85+
86+
for package <- special_packages do
87+
assert package in names
88+
end
8189
end
8290

8391
test "overwrite main docs with newer versions", %{test: test} do

0 commit comments

Comments
 (0)