The test works by using a parse transform that stamps modules with an
attribute as it runs them. It then compiles everything, loads the
module, and makes sure the stamps respect the defined order.
Add one test case to verify the dev_mode option for a release and
another to verify overriding the dev_mode option in a profile for a
release. Verification of proper dev_mode functioning is done in the
rebar_test_utils:check_results/2 function by checking if all the
directories in the release lib dir are symlinks or not and comparing
that result to the dev_mode expectation passed as input to
the check_results function.
The option {deps_error_on_conflict, true} will make it so conflicts in
deps being fetched interrupts the operation rather than just display a
warning.
Defaults to `false'.
- Track level of packages properly, they're not level 0 anymore (this
could yield an issue where a src dep takes precedence over a pkg dep)
- Proper stable sort of vertices in the digraph module
- PkgDeps no longer 'see themselves' when fetching and upgrading after
locking themselves
- Pkg Locks are added to pkg deps rather than source deps
- Updating test cases to support pkg mocking on top of src mocking
- Many apps is supported through and through
- Not mentioning any app upgrades all apps
- Locks are refreshed on disk and tested as such after an upgrade
- Adding tests for package deps
- Adding conflict/override warnings for package deps
- Adding cycle detection for packages
- Adding cycle detection for mixed packages+source
- Fixing internal dependency format of package resources when converted
to rebar_app_info
- normalizing level-order prioritization to be based on lexicographical
sort of app names rather than traversal order (which is undefined for
package deps)
- Fixing tests for source deps for deep cycle detection
- Fixing bugs with source deps
- Relaxed version format checks for test utils
A lot of fixes are combined in there because I didn't want to commit
non-passing code, and many bugs were found when adding the second batch
of tests as part of the original effort.
- Adding tests
- fixing use of set fetching to find repeated deps and prevent infinite
loops
On a circular loop rebar3 now fails with `{error, no_sort}`, which is
uncaught and should be handled to consider the issue fully fixed.
- Reworked the helpers for existing suites and expanded them
- Created a mock git resource module to test for its dependency fetching
- Added a test suite for dependency resolving with first checks for
common cases (https://gist.github.com/ferd/197cc5c0b85aae370436)
Left to do would include:
- Verify warnings
- Verify failures
- Verify dependency updates resolving