Skip to content

chore(#52): OSS/Hex packaging hygiene#56

Merged
milmazz merged 2 commits into
mainfrom
oss-hex-packaging
Jul 7, 2026
Merged

chore(#52): OSS/Hex packaging hygiene#56
milmazz merged 2 commits into
mainfrom
oss-hex-packaging

Conversation

@milmazz

@milmazz milmazz commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Tackles the OSS/Hex packaging hygiene checklist item from #52.

What changed

  • package/0 in mix.exslicenses (Apache-2.0, the LICENSE file already existed), links (GitHub + Changelog), and a files whitelist. The 2.6M conformance spec/ tree, tests, benchmarks, and Dockerfile stay out; the tarball is 150K. lib/mix/ is additionally excluded via exclude_patterns: mix bier.fixtures.load is the dev-only conformance-fixture loader, hard-fails without the excluded spec/conformance/fixtures.sql, and dependency mix tasks would otherwise surface in host apps' mix help.
  • description + source_url in project/0.
  • CHANGELOG.md — Keep a Changelog format, with an Unreleased section summarizing the current feature set (nothing published to Hex yet).
  • docs/0 for ex_doc — README as the landing page, CHANGELOG and CONTRIBUTING as extras. Two targeted suppressions keep mix docs --warnings-as-errors green: skip_code_autolink_to for the @moduledoc false internals the README mentions (Bier.Application, Bier.schema/0), and skip_undefined_reference_warnings_on for CONTRIBUTING.md (it links the repo-internal docs/CONFORMANCE_IMPL.md, deliberately not published).

Verification

  • mix hex.build builds warning-free; inspected the tarball contents to confirm spec/, test/, and lib/mix/ are absent.
  • mix precommit passes except for 3 geojson conformance cases (1616–1618, missing test.shops), which fail identically on main — pre-existing local-environment issue (PostGIS fixture), unrelated to this change.

🤖 Generated with Claude Code

milmazz and others added 2 commits July 6, 2026 21:55
Add the Hex package metadata `mix hex.build` warns about, per the
packaging checklist item in #52 (LICENSE already existed, Apache-2.0):

- `package/0` in mix.exs: licenses, links, and a `files` whitelist so
  the 2.6M conformance `spec/` tree, tests, benchmarks, and Dockerfile
  stay out of the tarball (150K). `lib/mix/` is excluded too: the
  `bier.fixtures.load` task is dev-only, requires the excluded spec/
  fixtures, and would surface in host apps' `mix help`.
- `description` + `source_url` in project/0.
- CHANGELOG.md (Keep a Changelog format) with an Unreleased summary of
  the current feature set, linked from the package metadata.
- `docs/0` for ex_doc: README as the landing page, CHANGELOG and
  CONTRIBUTING as extras. Skip autolinking the two `@moduledoc false`
  internals the README mentions, and skip undefined-reference warnings
  for CONTRIBUTING.md (it points at the repo-internal
  docs/CONFORMANCE_IMPL.md), keeping `mix docs --warnings-as-errors`
  green.

`mix hex.build` now builds warning-free.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`mix hex.audit` (Hex >= 2.5) flags both locked versions:

- hpax 1.0.3 — CVE-2026-58226 (HIGH): unauthenticated DoS via unbounded
  HPACK integer decoding.
- mint 1.9.0 — CVE-2026-56810 (HIGH): entire chunked response chunk
  buffered in memory in Mint.HTTP1.decode_body/5.

Patch releases fix both; audit is clean afterwards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@milmazz
milmazz merged commit aa8be79 into main Jul 7, 2026
3 checks passed
@milmazz
milmazz deleted the oss-hex-packaging branch July 7, 2026 03:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant