./devel/rebar3, Erlang build tool

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.24.0, Package name: rebar3-3.24.0, Maintainer: pkgsrc-users

Rebar3 is an Erlang tool that makes it easy to create, develop,
and release Erlang libraries, applications, and systems in
a repeatable manner.


Required to run:
[lang/erlang]

Required to build:
[pkgtools/cwrappers]

Master sites:


Version history: (Expand)


CVS history: (Expand)


   2024-05-06 18:51:21 by Thomas Klausner | Files touched by this commit (1)
Log message:
rebar3: fix build

Unset http_proxy and https_proxy when calling bootstrap - these variables
are validated even though the bootstrap shouldn't access the network.
Add link to upstream bug report.

While here, remove superfluous, incompletely defined SUBST section
that pkglint warned about.
   2024-04-12 17:15:25 by nikita | Files touched by this commit (2) | Package updated
Log message:
rebar3: update to version 3.23.0

Changelog:

3.23.0

New Features:

    add a new shell completion provider
    zsh support for aliases in completion
    Add new 'shell_hooks_env' config to extend shell hooks' OS env vars
    Add (newer) Dialyzer info. about invalid_contract
    Add command rebar3 alias

Bug fixes:

    Bump relx and erlware commons versions
    REBAR_SRC_DIRS and REBAR_APP_DIRS fix by making rebar_dir:src_dirs/1 options \ 
default to ["src"]
    Eliminate use of experimental function code:lib_dir/2
    Fix "clean" hooks in non-umbrella apps and when override are presents
    Initial version of the Manifest plugin
    Make log_level entry in rebar.app work again
    Append . to --eval arg if missing
    Handle 'or' in versions in a primitive manner
    Fall back to reading versions from hex metadata
    Dedupe compiler DAG edge insertion for artifacts
    Add missing doc. for incremental on Dialyzer analysis
    rebar_utils: add metadata to primary logger config
    Prevent XRef issue when analysis runs on generated code
    Fix unicode output printed as charlist
    Rework argument parsing in do/as providers
    Fix for rebar3 shell in Erlang 26 when ShellArgs==undefined
    Erlang 26 custom shell fix
    Add app name to "OTP release ~ts or later is required" msg

3.22.1

This is a small patch release for some bugfixes:

    Defer hostname check to OTP when supported
    Print diagnostic when failing to get VSN with Git
    Add simple Erlang LS config

3.22.0

This release most importantly contains patches to fix blocking issues on Windows:

    Avoid setting a shell-encoding in OTP-26, which causes the shell command to \ 
hang on windows
    Support CRLF in shell ENV files

This release also contains an experimental and optional change that warrants a \ 
bit of explanation: Support rich compiler messages in errors and in warnings

Given the module:

-module(fake_mod).

-export([diagnostic/1]).

diagnostic(A) ->
    X = add(5 / 0),
    {X,X}.

add(X) -> X.

add(X, Y) -> X + Y.

Calling rebar3 compile can now yield:

...
===> Compiling apps/rebar/src/fake_mod.erl failed
   ┌─ apps/rebar/src/fake_mod.erl:
   │
 5 │  diagnostic(A) ->
   │             ╰── variable 'A' is unused

   ┌─ apps/rebar/src/fake_mod.erl:
   │
 6 │      X = add(5 / 0),
   │                ╰── evaluation of operator '/'/2 will fail with a \ 
'badarith' exception

    ┌─ apps/rebar/src/fake_mod.erl:
    │
 11 │  add(X, Y) -> X + Y.
    │  ╰── function add/2 is unused

and in a terminal supporting color output:

By default, this format is turned off, but can be turned on optionally by \ 
configuring values with

{compiler_error_format, rich}.

You can get this enabled. You may want to put it in your global rebar3 config \ 
file. That being said, this may break some tooling that could parse \ 
rebar3-specific output. The default value is {compiler_error_format, minimal}. \ 
and putting that value back in should fix any breakage. We're also expecting \ 
color output to have a few bugs related to a rather naive heuristic used to \ 
delimit language constructs, but we wanted to make the feature available for \ 
feedback and this bug-fixing release was a decent opportunity.

This functionality relies on an expanded compiler API exposed by Rebar3, but \ 
since we're not yet quite sure what form we want it to take, we'll keep the new \ 
API undocumented in the short term.

3.21.0

New Features:

    Support OTP-26, Deprecate OTP-23 support.
    Add incremental dialyzer support for OTP-26

Various fixes:

    bumping a bunch of deps, including certificates, smaller patches in \ 
dependencies, and the following relx changes:
        Also set -dist_listen false for relx_nodetool calls
        Force use of nodetool if proto_dist set
        Only overwrite erl with dyn_erl if dyn_erl exists
    Add rebar_parallel pool, use in DAG scans which limits memory usage on large \ 
projects
    Maintain cth_log_redirect default in CT runs to show logger messages in HTML \ 
test logs
    Change license template to Markdown
    rebar3_dialyzer_format: Add missing message formatting
    Always dereference symbolic links when copying files in ct
    Add ?RTX_LOG macro option to top-level rebar.config
    fix help shell output, --eval is misindeted
    Ignore _vendor folder
    Do not ignore everything starting with underscore recursively
    scope local install VSN variable
    pkgs command should support empty lists
   2023-01-11 23:07:47 by Nikita | Files touched by this commit (10)
Log message:
revbump after lang/relang fix.
   2022-11-10 10:30:00 by Nikita | Files touched by this commit (3) | Package updated
Log message:
rebar3: update to version 3.20.0

Changelog (taken from https://github.com/erlang/rebar3/releases/tag/3.20.0):

This release took a while to build; OTP-25.1 had incompatibilities with EUnit
that interrupted the CI process, and which are corrected in later releases.

New features:
    Add --eval option to shell
    Add support for dialyzer --incremental when available
    Vendor structure

This new vendor structure should be of no impact to anyone using Rebar3 as a
built artifact, but should make the life of corporate users and
package managers much easier by having pre-bundled in all dependencies and
allowing effective offline builds. It also simplifies our bootstrap code and
reduces security issues by not having to download a certificate bundle
without certificates, at least until our oldest supported version can use
Erlang's new built-in on-host certificate lookup mechanisms.

If you do rely on Rebar3 source for your tooling or any other mechanisms,
then you will want to cd apps/rebar before running other commands.

Other fixes:
    Warn of EUnit issues on OTP-25.1
    Respect HEX_MIRROR environment variable
    Use shell:start_interactive to start shell if available
    Do not send empty If-None-Match in tarball request
    Respect rebar_packages_cdn set in rebar.config
    Dereference symbolic links when copying files from ct data folder
    Reduce warnings around bootstrap and DAG operations
   2022-06-20 09:40:39 by Nikita | Files touched by this commit (1)
Log message:
rebar3: Fix tests.
   2022-06-19 23:37:15 by Nikita | Files touched by this commit (1)
Log message:
rebar3: Add link to bugreport.
   2022-06-19 22:49:18 by Nikita | Files touched by this commit (2)
Log message:
rebar3: Update to 3.19.0

Changelog taken from https://github.com/erlang/rebar3/releases

3.19.0

New features:
    Add --offline option and REBAR_OFFLINE environment variable
    Add support for project-local plugins in umbrella projects only
    Add eunit --test flag

Experimental features for which we promise no backwards compatibility in
the near future:
    Experimental vendoring provider
        Support plugins in experimental vendor provider

Other changes:
    Support OTP 23..25 inclusively
    Bump Relx to 4.7.0
        Use erlexec directly in relx helper functions
        Make rlx_util:parse_vsn parse integer versions
        fix awk script check_name() in extended_bin
        avoid crash when overlay is malformed
        keep attributes when stripping beams
        Fix {include_erts,true} in Windows releases
        ensure the erl file is writable before copying dyn_erl to it
        Various tests added
    Properly carry overlay_vars settings for files in relx
    Track mib compilation artifacts
    Attempt to find apps in git subdirs (sparse checkouts)
    Do not discard parameters --system_libs and --include-erts when duplicate \ 
values exist
    Use default depth parameter for SSL
    Fix global cache config overriding
    Error out on unknown templates in 'new' command
    Fix a typo
    Bump certifi to 2.9.0
    add a debug message in internal dependency fetching code
    Use SPDX id for license in template and test
    Use default branch for git and git_subdir resources with no revision
   2022-04-25 14:25:59 by Nikita | Files touched by this commit (3) | Package updated
Log message:
rebar3: Update to 3.18.0

Changelog taken from https://github.com/erlang/rebar3/releases

3.18.0 Latest

    add support for otp24 optional applications
    use git command in non interactive mode
    git_resource: ignore stderr in get_patch_count when calling git rev-list
    fix NIF compilation on Apple M1.
    fix issue for duplicates options of 'parserfile' in 'yrl_opts'
    support for --all argument in unlock
    support for --all argument in upgrade
    support for --all argument in upgrade plugin
    add --relnames option to allow selectively building of multiple releases
    bump bbmustache to support unicode attributes
    proper respect of GLOBAL_CACHE_DIR
    bump certifi to 2.8.0
    don't crash on printing non-ASCII characters
    upgrade providers to 1.9.0

3.17.0

This release is mostly bug fixes, and repairs prior broken builds of
elixir dependencies, but also includes a couple of useful features.

New Features:
    Add escript_incl_priv so escriptize priv dir inclusion works with
    _checkouts and profiles
    Added SSL cacert patch to support Corporate MITM Proxies

Bug fixes:
    rebar3 release to honour the ignore-xref attribute
    Bump relx to 4.5.0
        use copied erts dir when tar'ing even when the user sets the erts
        improve error message when a symlink creation fails
        State extended with a filter method to filter xref_warnings
        Do not require logger
        Add default time warp mode of multi
        optionally allow static node name prefixes
        use random:uniform instead of os:pid when constructing node name in nodetool
        Fix eval command to use ERL_DIST_PORT, consistency with rpc command
        Fix bin script arguments to erlexec
    Give compiler hints when handling run-time deps in parse_transforms
    Make rebar_file_utils:system_tmpdir/1 take TMPDIR env var into account on *nix
    Handle abstract code starting with a non-file attribute
    Prefer erlang app to mix project
    Drop bootstrap URI handling functions warnings
    Prevent crashes on recursive src_dir definitions in deps
    Fix ssl check hostname options for wildcard certificate
    {xref_ignores} now properly works on module,
    Normalize Dialyzer PLT paths
    Fix optimistic registry update of plugins being upgraded

3.13.3

Security release. See
https://ferd.ca/you-ve-got-to-upgrade-rebar3.html

3.16.1

Major security fix around TLS validation. See
https://ferd.ca/you-ve-got-to-upgrade-rebar3.html

Also:
    local upgrade: extract vsn of rebar3 from downloaded escript

3.15.2

Major security fix around TLS validation. See
https://ferd.ca/you-ve-got-to-upgrade-rebar3.html

3.16.0

This release drops multiple OTP versions as officially
supported. We're aligning rebar3 development with the OTP team's
compatibility guarantees, as some deprecations from OTP-21 were
removed in OTP-24 and we just could not maintain compatible code
bases. We're using the breakage opportunity to change just how much we
support to something more sustainable.

The release also contains extra fixes that should prove useful.

    Only support 3 newest OTP versions
    add support to configure application resource naming
    Support ERL_LIBS libraries in escript building
    Fix CLI arg order in makefile template
    Increase OTP 24 readiness + move to OTP 20 min.
    Bump erlware_commons and certifi
    Treat applications and included_applications the same way when builing \ 
Dialyzer PLTs
    Strip CLI args from provider hooks
    Fix plugins upgrade for non-tuple specification

3.15.1

    Fix bad compiler path nesting

3.15.0

    Make dialyzer output file format configurable
    Fix DAG resolving for recursive directories
    Add EUnit support for sys_config options
    Catch and report missing escript dependency
    Relay unexpected relx return values
    Bump Relx and cth_readable
        relx_resolve:to_app raise error with .app file pathname
        Concurrent Builds - xref interactions refinement
        Add richer return values for nodetool rpc
        add exports of RELEASE_NAME, RELEASE_VERSION and RELEASE_PROG to script
    add an option to select the application to build an escript for
    Do not discard parameters --system_libs and --include-erts
    Have "rebar3 plugins upgrade" work without specifying plugin name
    rebar3 shell: implement various modes to print "booted" message
    More path juggling fixes in the compiler
    Fix OTP24 complaining about underscored variables
    Handle OTP-24 function location in xref
    pass no_spawn_compiler_process to compile:file/2