summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Review comments addressedFred Hebert2018-12-011-1/+3
|
* Clear app details cache before checking in pathsFred Hebert2018-11-291-3/+4
| | | | | | | | | | | | | | | | | | The app data, when set by `rebar3_app_discover` basically does not include the modules if it was derived from the .app.src file, even if at a later point the modules were compiled. Since there is currently no clear way to add that information reliably across all compiler versions in all types of compilers, we simply clear the cache and re-derive the information when required. This might have a small performance cost, but is required for correctness whenever an application's first build is run. Specifically, this bug was detected when a plugin included lager's parse transform, and the application itself also required it, but two distinct versions were needed. This patch finalizes fixing this issue.
* Ensure the right deps are in pathFred Hebert2018-11-281-0/+1
| | | | | Compile time with parse transforms needs to have the deps first in scope before the plugins
* Fix load order for custom project buildersFred Hebert2018-11-281-1/+1
| | | | | | | | | Due to building dependencies with potential artifacts such as parse transforms or macros, project builder plugins should be included in the path, but _after_ deps are loaded. Doing otherwise means that if any of the dependencies is required at compile time, those of a plugin might get used first.
* back to git based versioningFred Hebert2018-11-271-1/+1
|
* Bump to 3.7.5Fred Hebert2018-11-271-1/+1
|
* Merge pull request #1957 from tsloughter/subdir-behavioursFred Hebert2018-11-271-10/+1
|\ | | | | search subdirectories as well for imports/transforms/behaviours
| * search subdirectories as well for imports/transforms/behavioursTristan Sloughter2018-11-251-10/+1
| |
* | Merge pull request #1959 from ferd/fix-cover-pathsFred Hebert2018-11-271-2/+1
|\ \ | | | | | | Fix path coverage loading artifacts
| * | Fix path coverage loading artifactsFred Hebert2018-11-261-2/+1
| |/ | | | | | | | | | | | | | | | | | | The old path handling routine would force loading a bunch of applications, but it did not necessarily unload them aside from specific calls that the other test handlers used to need to do, but no longer needed under the updated path management of 3.7.0. The leftover calls in the cover compilation bits caused some apps to be loaded and to remain loaded before tests started.
* | Merge pull request #1949 from aronisstav/add-more-help-hintFred Hebert2018-11-271-1/+3
|\ \ | |/ |/| Add hint for `rebar3 new help` on `rebar3 help new`
| * Add hint for `rebar3 new help` on `rebar3 help new`Stavros Aronis2018-11-221-1/+3
| |
* | back to git versioningTristan Sloughter2018-11-241-1/+1
| |
* | version bump 3.7.4Tristan Sloughter2018-11-241-1/+1
| |
* | revert ebin_modules to include all beams minus extra_src (#1955)Tristan Sloughter2018-11-241-9/+24
| |
* | Back to git-based versioningFred Hebert2018-11-241-1/+1
| |
* | Properly bump to 3.7.3Fred Hebert2018-11-241-1/+1
| |
* | fix base_compiler:run to take a single directoryTristan Sloughter2018-11-241-2/+2
| |
* | Back to git-based versioningFred Hebert2018-11-231-1/+1
| |
* | bump to 3.7.2Fred Hebert2018-11-231-1/+1
| |
* | fix to include beams built from src files in subdirs in modules listTristan Sloughter2018-11-231-1/+1
| |
* | back to git versioningTristan Sloughter2018-11-231-1/+1
| |
* | bump to 3.7.1Tristan Sloughter2018-11-231-1/+1
| |
* | fix base path used for yrl/xrl includefile configs (#1952)Tristan Sloughter2018-11-232-16/+28
| |
* | Back to git-based versioningFred Hebert2018-11-231-1/+1
| |
* | Bump to 3.7.0Fred Hebert2018-11-231-1/+1
| | | | | | | | Signed-off-by: Fred Hebert <mononcqc@ferd.ca>
* | Fix typespecs of new compiler behaviourFred Hebert2018-11-231-1/+3
|/
* Merge pull request #1938 from erlang/xrl-yrl-recompileFred Hebert2018-11-185-12/+26
|\ | | | | check last modified time on erl files for xrl and yrl files before compiling
| * fix needed_files type specTristan Sloughter2018-11-181-1/+2
| |
| * check last modified time on erl files for xrl and yrl files before compilingTristan Sloughter2018-11-095-12/+25
| |
* | Merge pull request #1942 from aboroska/fix-plugins-listFred Hebert2018-11-171-1/+2
|\ \ | | | | | | Fix plugins list display to include project plugins
| * | Fix plugins list display to include project pluginsAndrás Boroska2018-11-111-1/+2
| |/
* | Support alias format {Namespace, Cmd} and {Namespace, Cmd, Args} (#1940)tothlac2018-11-172-4/+35
| |
* | Fix package upgrade (issue #1945) (#1946)András Boroska2018-11-161-2/+1
| |
* | merge from upstream/mastersimonxu722018-11-138-13/+137
|\ \ | |/
| * fix compilation of global plugins (#1935)Tristan Sloughter2018-11-081-4/+7
| |
| * set app's dir before setting app_info deps (#1928)Tristan Sloughter2018-10-291-1/+2
| |
| * Allow Breakpoints during task runsFred Hebert2018-10-222-2/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly useful for tests, where a test suite of any kind can be interrupted halfway through so that the user can probe the running system to see what is happening. This is done as follows: 1. the user must call `r3:break()` in a test suite 2. the user runs the task as `r3:async_do(ct)` 3. the test holds up and the user can do whatever 4. the user calls `r3:resume()` and the test proceeds as normal A safeguard is added so that breakpoints are only triggered in the shell in async mode Sample session: $ rebar3 shell ... 1> rebar_agent:async_do(ct). ok ... Running Common Test suites... %%% rebar_alias_SUITE: . === BREAK === 2> % <do some checks> 2> r3:resume(). ok 3> ..... %%% rebar_as_SUITE: ........... %%% rebar_compile_SUITE: ...... ...
| * check if git/hg is installedFred Hebert2018-10-202-0/+38
| | | | | | | | | | | | | | | | | | | | This PR is a simpler and mergeable version of #1853 by @shamis, since the provider changed format enough to make merging difficult. Compared to #1853, this also puts the responsibility on each resource to check rather than adding a new optional callback. The process dictionary is use as a warning/check cache.
| * Fallback when logging isn't initializedFred Hebert2018-10-201-4/+11
| | | | | | | | | | | | | | | | In some cases, such as when the global rebar.config file contains typoes and invalid terms, the rebar3 executable fails when trying to log the error since it hasn't been set yet, such as in #1792 This patch fixes that by going for a fallback mechanism.
| * Fix shell hook expansion on windowsFred Hebert2018-10-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | Dollar Variable expansion (`$VAR`) was inadvertently disabled for windows variables, although %VARIABLES% already worked. This reduced the portability of hooks in general. Additionally, tests would fail on windows due to bad quoting of paths: the path C:/a/b/c would fail when passed to the command `cmd /q /c C:/a/b/c` because it would interpret /a /b and /c as 3 options. Using quotes makes the tests pass.
* | Merge remote-tracking branch 'upstream/master'simonxu722018-10-1651-1234/+3108
|\ \ | |/
| * Merge pull request #1907 from ferd/refactor-env-pathsFred Hebert2018-10-1513-52/+279
| |\ | | | | | | Refactor env path handling and fix some bugs related to it
| | * Drop outdated commentsFred Hebert2018-10-141-2/+0
| | |
| | * Optimize path handlingFred Hebert2018-10-116-45/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Only set paths that need to be put as a priority - Clean up paths before leaving API mode The first point accounted for some performance cost, but the latter one explains the 40% overhead in test runs: since rebar3 calls rebar3 a lot with a bunch of fake apps, and that the new mechanism for path handling by default does not _remove_ paths, it just _orders_ them, we would end up in a situation where as the tests ran, more and more fake paths would get added to the VM. By the time the run was over, all path handling would take longer since more paths needed filtering every time. By resetting paths at the end of an API run, we prevent a given 'project' from polluting another one's runtime and performance once the API successfully returns.
| | * Clean path code, add tests, add clash detectionFred Hebert2018-10-111-6/+41
| | | | | | | | | | | | Some finishing touch to that code
| | * Fix a bug in compiler path handlingFred Hebert2018-10-113-12/+10
| | | | | | | | | | | | Also handle some formatting
| | * Abstracted path managementFred Hebert2018-10-1111-45/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move path management out of rebar_utils manual code path function handling (which we leave there for backwards compat), and centralize them to allow easier coordination of paths between plugins and deps. On top of path handling, do a check of loaded modules to only purge and reload those that actually need it done in order to prevent all kinds of weird interaction and accidental purge kills. It also allows the possible cohabitation of both at once, with a "in case of conflict pick X" as a policy Changing path handling in providers also highlighted a bunch of bugs in some tests and appears to fix some in other providers, specifically around plugins.
| * | fix resolving versions from vcs (#1915)Tristan Sloughter2018-10-144-8/+21
| | | | | | | | | | | | | | | | | | app_info was turning any vsn into a binary which the vcs_vsn function interprets as being an actual version and not something like <<"git">>. original_vsn shouldn't be converted as it is then not longer "original".
| * | fix finding transitive deps with prerelease versions (#1914)Tristan Sloughter2018-10-141-9/+11
| |/