chore: fix Hex package metadata so the package can be published - #68
Conversation
`{licenses, ["Apache 2.0"]}` is not an SPDX identifier, so Hex would not
recognise the licence. The correct id is `Apache-2.0`, which is what nova
itself already uses.
Also fill in the empty `links` and replace the placeholder description,
both of which are surfaced on the package page.
The LICENSE file itself was already correct: full Apache 2.0 text with
the copyright line filled in, and it is included in the package files.
rebar.config leaves nova and enotify unversioned, so `rebar3 hex build` derives the published requirement from rebar.lock. The lock still pinned nova 0.10.2, which becomes a `~>0.10.2` requirement on Hex - that is `>= 0.10.2, < 0.11.0`, so anyone on current nova (0.15.3) hits a resolution conflict and cannot install the plugin at all. Full clean relock rather than a targeted upgrade, to avoid leaving stale transitive skew: nova 0.10.2 -> 0.15.3 cowlib 2.13.0 -> 2.19.0 ranch 1.8.0 -> 2.2.0 jhn_stdlib 5.1.0 -> 5.11.2 routing_tree 1.0.9 -> 1.0.11 thoas 1.2.0 -> 1.2.1 uuid_erl, quickrand, pmod_transform dropped (no longer reachable) Smoke-tested against the new lock: compile, xref, and ct 27/27 all clean.
|
Second commit added, because the licence was not the only thing blocking a usable publish.
{"description":"A rebar plugin","licenses":["Apache 2.0"],"links":{}}While confirming that, I found a harder blocker. Did a full clean relock rather than a targeted upgrade, per the transitive-skew rule:
Smoke-tested against the new lock: Also worth noting for whenever you publish: the last Hex release is 0.8.0 while the repo is at v0.13.1. |
Prep for publishing
rebar3_novato Hex.The licence problem
src/rebar3_nova.app.srcdeclared:{licenses, ["Apache 2.0"]}That is not an SPDX identifier, so Hex does not recognise it as the Apache licence. The correct id is
Apache-2.0— whichnovaitself already uses.The
LICENSEfile was already fine: complete Apache 2.0 text with the copyright line filled in (Copyright 2020, Daniel Widgren), and it is included in the package tarball. No change needed there.Also fixed
{links, []}was empty — now points at the GitHub repo, so the package page has a source link.{description, "A rebar plugin"}was a placeholder — this is the one-line blurb shown in Hex search results, so it now describes what the plugin actually does.{vsn, git}is untouched; version still comes from the git tag.Verified
rebar3 hex buildsucceeds and the resultingmetadata.configcarries:{<<"licenses">>,[<<"Apache-2.0">>]}. {<<"links">>,[{<<"GitHub">>,<<"https://github.com/novaframework/rebar3_nova">>}]}. {<<"description">>,<<"Rebar3 plugin for scaffolding and managing Nova framework projects">>}. {<<"version">>,<<"0.13.1">>}.LICENSEis present in the packagedfileslist.fmt --check,xref,ct(27/27) all pass.