Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Optimize path handling | Fred Hebert | 2018-10-11 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | - 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. | ||||
* | Abstracted path management | Fred Hebert | 2018-10-11 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | 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. | ||||
* | reset default profile app plugins to empty if at the top level (#1885) | Tristan Sloughter | 2018-09-17 | 1 | -9/+24 |
| | | | | | | | | | | | top level default profile plugins are installed in the run_aux function. This commit removes the plugins from the plugin opts of an application that is also at the top level and skips the default profile when installing top level plugins in project_apps_install so they aren't handled twice. Additionally, before handling a plugin the state's list of known plugin apps is checked and the plugin is skipped if it has already been handled. | ||||
* | Work around OTP-21 deprecation of get_stacktrace() | Fred Hebert | 2018-05-03 | 1 | -2/+2 |
| | | | | Based off a macro by @okeuday at https://github.com/erlang/otp/pull/1783 | ||||
* | Fix Plugin path handling (again!) | Fred Hebert | 2017-12-04 | 1 | -3/+5 |
| | | | | | | | | | | | | | | | | | | | The path reloading of plugins had been fixed properly, but the problem is that the paths it was using to re-load only considered the current compile step, rather than the overall state of plugins. As such, the reloaded paths after plugin compilation only reloaded the *latest* plugin and not the other ones. This fix forces the addition of all built plugin paths to the code paths after a plugin compile job is run. This ensures that the path is clean for initial plugin deps (only add those that are required), and is re-made total after the fact (add all the plugins possible). This commit also includes a system tests suite that can be run optionally; the problem with this plugin mechanism was impossible to find through mocked dependencies, and a working counterexample was provided to us. The systest suite can be run against real projects without conflict to make sure no regressions are hit. | ||||
* | fix code path when validating plugins | Tristan Sloughter | 2017-12-03 | 1 | -1/+1 |
| | |||||
* | add project_providers after initing default providers but allow overrides | Tristan Sloughter | 2016-02-22 | 1 | -4/+6 |
| | |||||
* | give new opt project_plugins providers precedence over default providers | Tristan Sloughter | 2016-02-20 | 1 | -1/+10 |
| | |||||
* | don't lose overrides in an app when installing plugins it uses' | Tristan Sloughter | 2016-01-31 | 1 | -4/+14 |
| | |||||
* | install project app plugins after discovering them not before | Tristan Sloughter | 2016-01-10 | 1 | -2/+10 |
| | |||||
* | fix dialyzer warnings | Tristan Sloughter | 2015-09-09 | 1 | -1/+1 |
| | |||||
* | remove state record from app_info record | Tristan Sloughter | 2015-08-31 | 1 | -1/+2 |
| | |||||
* | wip: move state into app_info | Tristan Sloughter | 2015-08-31 | 1 | -11/+10 |
| | |||||
* | remove unneeded packages ets table load/unload in plugins | Tristan Sloughter | 2015-08-21 | 1 | -14/+8 |
| | |||||
* | replace use of dict of packages and registry with single ets table | Tristan Sloughter | 2015-08-21 | 1 | -2/+8 |
| | |||||
* | keep plugins dir as deps dir when compiling plugins+deps | Tristan Sloughter | 2015-07-28 | 1 | -1/+2 |
| | |||||
* | Minor refactors | Fred Hebert | 2015-07-02 | 1 | -1/+1 |
| | |||||
* | wip: deps install refactor | Fred Hebert | 2015-07-02 | 1 | -1/+1 |
| | |||||
* | fix for overrides in plugins, simpler plugin state handling | Tristan Sloughter | 2015-06-24 | 1 | -3/+1 |
| | |||||
* | include app's state providers when building plugin so they can rely on plugins | Tristan Sloughter | 2015-06-20 | 1 | -7/+7 |
| | |||||
* | fix path storing for plugins | Tristan Sloughter | 2015-06-19 | 1 | -4/+5 |
| | |||||
* | plugins provider | Tristan Sloughter | 2015-06-18 | 1 | -19/+31 |
| | |||||
* | set default providers before installing plugins | Tristan Sloughter | 2015-05-31 | 1 | -4/+5 |
| | |||||
* | add comment explaining installing each plugin individually | Tristan Sloughter | 2015-05-29 | 1 | -0/+1 |
| | |||||
* | fix for plugin installation and code paths | Tristan Sloughter | 2015-05-27 | 1 | -11/+31 |
| | |||||
* | run hooks when building plugins | Tristan Sloughter | 2015-05-21 | 1 | -1/+1 |
| | |||||
* | install plugins from the global config to ~/.cache/plugins | Tristan Sloughter | 2015-05-17 | 1 | -8/+16 |
| | |||||
* | add all plugins, not those just built, to path | Tristan Sloughter | 2015-05-09 | 1 | -2/+2 |
| | |||||
* | only install dep plugins from install_deps | Tristan Sloughter | 2015-04-05 | 1 | -3/+1 |
| | |||||
* | install each deps plugins after handling dep, instead of at the end | Tristan Sloughter | 2015-04-05 | 1 | -18/+18 |
| | |||||
* | install dep plugins & run provider hooks the same as shell hooks | Tristan Sloughter | 2015-04-04 | 1 | -10/+17 |
| | |||||
* | main module of a plugin just has to export init/1 | Tristan Sloughter | 2015-04-03 | 1 | -6/+3 |
| | |||||
* | update project app list with new appinfo records after build | Tristan Sloughter | 2015-02-19 | 1 | -8/+8 |
| | |||||
* | update plugin install code | Tristan Sloughter | 2014-12-24 | 1 | -2/+3 |
| | |||||
* | include providers listed in plugins env | Tristan Sloughter | 2014-12-24 | 1 | -13/+19 |
| | |||||
* | move dir functions from utils to new module rebar_dir | Tristan Sloughter | 2014-12-01 | 1 | -1/+1 |
| | |||||
* | fixes for dialyzer findings | Tristan Sloughter | 2014-11-30 | 1 | -0/+1 |
| | |||||
* | global plugins install to global config directory | Tristan Sloughter | 2014-11-29 | 1 | -4/+6 |
| | |||||
* | fix lock provider to work anytime it is run | Tristan Sloughter | 2014-11-29 | 1 | -1/+1 |
| | |||||
* | fix check for plugin being a provider | Tristan Sloughter | 2014-11-22 | 1 | -1/+1 |
| | |||||
* | add plugin and its deps to path as they are built | Tristan Sloughter | 2014-11-08 | 1 | -4/+6 |
| | |||||
* | add comment | Tristan Sloughter | 2014-11-08 | 1 | -0/+1 |
| | |||||
* | support base dir and properly reset deps_dir after plugin provider | Tristan Sloughter | 2014-11-08 | 1 | -1/+2 |
| | |||||
* | warn on bad plugin | Tristan Sloughter | 2014-11-07 | 1 | -22/+49 |
| | |||||
* | handle no plugins as [] list of plugins | Tristan Sloughter | 2014-09-20 | 1 | -1/+1 |
| | |||||
* | only compile invalid plugins | Tristan Sloughter | 2014-09-20 | 1 | -1/+2 |
| | |||||
* | move deps and plugins to _ prefixed | Tristan Sloughter | 2014-09-20 | 1 | -1/+1 |
| | |||||
* | install plugins to plugins/ | Tristan Sloughter | 2014-09-20 | 1 | -3/+21 |
| | |||||
* | install plugins to plugins/ | Tristan Sloughter | 2014-09-19 | 1 | -1/+8 |
| | |||||
* | add do task | Tristan Sloughter | 2014-09-18 | 1 | -0/+12 |