Changes to how hex or packages may work in the future will necessarily
bring changes to the format of lock files.
This commit adds an optional framing for future lock files of the form:
{Version, LockList}.
<Whatever consultable attributes>
This format is supported such as the LockList is the current lockfile
contents, and will never have more information than it currently does.
Attributes can be whatever and are currently undefined.
Rebar copies will be able to:
- Keep using the core locklist (which avoids breaking the last year or
so of community libraries using rebar3)
- Warn when it runs an outdated copy in comparison to the lock file
- Automatically rewrite lock files in the format it supports
- Augment or parse files in a version-specific manner.
This changes the usage interface slightly, but is backwards *and*
forwards compatible.
Several projects use an include path relative
to the project's root.
file:compile will look in three places for the include
files:
The current working directory
The directory where the module is being compiled
The directories given by the include option
To prevent future mistakes like the broken string introduced in
cf66dfd6ba, put opening and closing " on separate lines in each
multi-line lopts string. This also allows for cleaner (smaller) diffs
when removing/adding a flag.
cf66dfd6ba introduced a syntax error in the modified lopts string.
Without the fix, you'll provoke a shell error when trying to complete
`rebar3 ct --<something>`.
- The README is better targetted to newcomers and explains the basics of
the project: what it is, why use it, how to get started, where to find
more information. It looks less like a reference and more like a brief
overview of rebar3.
- Whatever looks like a list or reference manual material is expected to
be moved to the website
- Be clearer about the rebar3 project structure in CONTRIBUTING.md;
explain how to write tests, how to structure code, and so on.
- Added contributing section on bug reports, feature requests, etc.
If a bad configuration file is submitted to rebar3 shell, display the
following error:
===> The configuration file submitted could not be read and will be
ignored.
And keep going otherwise rather than silently failing.
While crash-fast is usually a good mechanism, the shell so far is very
tolerant of failures from apps to boot and whatnot, so this feels
appropriate.
Fixes#1019