Skip to content

v7.0.1

Compare
Choose a tag to compare
@starbelly starbelly released this 01 Jan 00:11
· 27 commits to main since this release
c553e5b

rebar3 hex v7

As part of an initiative by the EEF build and packaging group we are pleased to announce rebar3_hex v7.

One of the main goals with v7 was to align with mix hex's API as much as possible for a seamless and unified
developer experience, and thus we had to introduce some breaking changes, mostly in regards to provider names, command line arguments, and switches. In addition, v7 includes enhancements and bug fixes described below.

Check out the new docs

Breaking changes

  • We no longer support implicit publishing of docs. With v7 you must either specify a docs provider in your hex config
    or use the --doc-dir switch on the publish provider in the case you use a documentation tool for which there is
    no provider. This also means we no longer support the doc attribute in .app.src.

  • The docs provider has been removed, but will be re-added in a later release for fetching docs for your application,
    dependencies, and opening them. You should now publish docs using the publish provider.

  • The --package and --docs switches on the publish provider have been removed in favor of the bare arguments docs
    and package. Likewise the --without-docs switch has been removed.

  • The revert task has been removed and is now simply a switch on the publish provider (i.e., rebar3 hex publish --revert)

  • The message argument is now a switch on the retire provider vs a bare argument.

  • The old repo provider has been renamed to organization. The api has been updated to align with mix hex.organization. See the organization docs for more information.

  • The key provider has been removed. All key tasks are now available on the user and organization providers. See either the rebar3 hex user docs or rebar3 hex organization docs

Enhancements

  • A build provider is now included so you can build packages and docs tarballs locally to inspect exactly what
    would be included in a release devoid of publishing.

  • An --app switch is now provided on the publish provider in case you'd rather not be prompted at runtime if publishing from within inside an umbrella.

  • The --dry-run switch on the publish provider now works with packages and docs (i.e., giving the --dry-run switch
    will truly result in a dry-run).

  • Updated docs which can now be found hex.pm

  • Improved UX around password prompts. Specifically, we will always ask for a confirmation of usernames (if blank), account passwords, and local passwords now.

  • When authenticating as a user we will now wait for a successful authentication before stating you are authenticated and prompting for a local password.

  • Added support for unretiring a package on the retire provider

  • DEBUG support has been removed in favor of DIAGNOSTICS.

  • The include_files .app.src attribute is now include_paths, we continue to support include_files but
    recommend changing to include_paths

  • The exclude_files .app.src attribute is now exclude_paths, we continue to support exclude_files but
    recommend changing to exclude_paths

  • The exclude_regexps .app.src attribute is now exclude_patterns, we continue to support exclude_regexps but
    recommend changing to exclude_patterns

  • Improved messaging around which docs version were published or if a failure occurred.

  • Display "no docs config found" as a warning vs an error.

Bug fixes

  • Fixed a case where by if the user provided no no user or email when prompted a crash would ensue.
  • Fixed publishing docs to private repositories (orgs).
  • Fixed underline emphasis of column names in tabled results.
  • Fixed organization listing for OTP 23, we would try to call ssh_file:encode/2 when it did not exist.
  • Fixed case where we didn't abort if no apps were found on the publish provider.