Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Unicode support in all the places | Fred Hebert | 2017-08-06 | 1 | -27/+27 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done through 3 main change groups: - replacing `~s` by `~ts` in format strings, so that strings that contain unicode are properly printed rather than crashing - adding the `unicode` argument to all function of the `re` module to ensure transformations on strings containing unicode data are valid instead of crashing (see issue #1302) - replacing `ec_cnv:to_binary/1` and `ec_cnv:to_list/1` with matching functions in `rebar_utils`. The last point has been done, rather than modifying and updating erlware commons, because binary and list conversions can be a contentious subject. For example, if what is being handled is actually bytes from a given binary stream, then forcing a byte-oriented interpretation of the data can corrupt it. As such, it does not appear safe to modify erlware commons' conversion functions since it may not be safe for all its users. Instead, rebar3 reimplements a subset of them (only converting atoms and chardata, ignoring numbers) with the explicit purpose of handling unicode string data. Tests were left as unchanged as possible. This may impact the ability to run rebar3's own suites in a unicode path, but respects a principle of least change for such a large patch. | ||||
* | Fix default .app.src file for rebar_app_info | Fred Hebert | 2017-02-24 | 1 | -7/+6 |
| | | | | | | | The finding of the file was done based on an assumed 'src' path which may not be correct. This patch instead replaces the value with a lookup in configured paths and returns the first that matches to an existing file. | ||||
* | Type specifications and edocs improvements | Fred Hebert | 2016-11-27 | 1 | -16/+115 |
| | | | | | | Includes improvments and function documentation for all modules (in alphabetical order) up to rebar_core, and may have included more in other modules as I saw fit to dig and understand more of the internals. | ||||
* | Fix rebar3 dialyzer warnings | Fred Hebert | 2016-11-19 | 1 | -3/+3 |
| | | | | Some tricky changes in there but should be okay | ||||
* | Make lock files future-proof | Fred Hebert | 2016-02-16 | 1 | -4/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | Plugin templates enabled | Fred Hebert | 2015-12-19 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets a plugin define templates to be loaded: $ rebar3 new ... proper (plugin): A basic PropEr suite for an OTP application ... $ rebar3 new help proper proper: plugin template (...) Description: A basic PropEr suite for an OTP application Variables: name="suite" (...) ... → rebar3 new proper fakesuite ===> Writing test/prop_fakesuite.erl In this case, proper is a fake template file I've put by hand in _build/default/plugins/rebar3_proper/priv/<somename>/, meaning it will only work as far as it's called from the project's root. The priority order of plugins is now .config > plugin > built-in, such that someone could ensure plugins do not crush their own private templates, but also that custom or plugin templates do overtake built-in ones. It used to be Built-in > .config only. Templates are searched for recursively in the priv/ directory of plugins. | ||||
* | fix dialyzer warnings | Tristan Sloughter | 2015-09-27 | 1 | -3/+3 |
| | |||||
* | handle case that upgraded app no longer has .app.src file | Tristan Sloughter | 2015-09-20 | 1 | -0/+4 |
| | |||||
* | hooks/artifacts are always run/resolved from an app unless at top of umbrella | Tristan Sloughter | 2015-09-06 | 1 | -7/+11 |
| | |||||
* | move otp version verification to a single app_info function | Tristan Sloughter | 2015-09-01 | 1 | -0/+5 |
| | |||||
* | move opts functions to new module rebar_opts | Tristan Sloughter | 2015-09-01 | 1 | -4/+4 |
| | |||||
* | update use of hooks and plugins with state in app_info | Tristan Sloughter | 2015-08-31 | 1 | -96/+9 |
| | |||||
* | build on already created AppInfo instead of having to do copy | Tristan Sloughter | 2015-08-31 | 1 | -1/+6 |
| | |||||
* | remove state record from app_info record | Tristan Sloughter | 2015-08-31 | 1 | -31/+0 |
| | |||||
* | wip: move state into app_info | Tristan Sloughter | 2015-08-31 | 1 | -3/+237 |
| | |||||
* | simplify package dep parsing and handling | Tristan Sloughter | 2015-08-25 | 1 | -2/+14 |
| | |||||
* | this patch treats pkg and src deps as equals, so level decides winner | Tristan Sloughter | 2015-08-21 | 1 | -1/+12 |
| | | | | | | | | Instead fetching and resolving src deps (which could depend on pkg deps) and then pkg deps this patch combines the two into a single set of iterations by level. The only difference between src and pkg deps in this new install_deps is how their deps list is found -- from the config or lock file for src deps and from the neighbors of the vertex for pkg. | ||||
* | track parent app of deps and add tree provider to display the relations | Tristan Sloughter | 2015-08-15 | 1 | -0/+10 |
| | |||||
* | include app.src.script in app discover and always use if available | Tristan Sloughter | 2015-07-26 | 1 | -0/+19 |
| | |||||
* | add config option artifacts | Tristan Sloughter | 2015-06-02 | 1 | -2/+3 |
| | |||||
* | move handling of undefined app state to function | Tristan Sloughter | 2015-05-22 | 1 | -0/+9 |
| | |||||
* | have .app.src take precedence over .app file | Tristan Sloughter | 2015-05-22 | 1 | -7/+15 |
| | |||||
* | print and format error message for bad .app files and all bad configs | Tristan Sloughter | 2015-05-22 | 1 | -6/+1 |
| | |||||
* | only update, when not in explicit upgrade, locks if out of date | Tristan Sloughter | 2015-05-21 | 1 | -15/+26 |
| | |||||
* | read in application details into app_info after fetch | Tristan Sloughter | 2015-04-24 | 1 | -0/+13 |
| | |||||
* | support for 18.0+ | Tristan Sloughter | 2015-04-23 | 1 | -1/+1 |
| | |||||
* | Merge pull request #283 from fishcakez/dial_warns | Fred Hebert | 2015-03-25 | 1 | -1/+1 |
|\ | | | | | Fix some dialyzer warnings | ||||
| * | Fix dialyzer warnings | James Fish | 2015-03-18 | 1 | -1/+1 |
| | | |||||
* | | treat _checkouts as deps that are always compiled | Tristan Sloughter | 2015-03-21 | 1 | -0/+11 |
|/ | |||||
* | copy project apps to deps output dir for compilation | Tristan Sloughter | 2015-02-28 | 1 | -4/+20 |
| | |||||
* | consolidate app validation and exist checks | Tristan Sloughter | 2015-02-22 | 1 | -1/+1 |
| | |||||
* | replace package management with hex.pm | Tristan Sloughter | 2015-02-17 | 1 | -3/+3 |
| | |||||
* | fix find_apps when searching for invalid apps | Tristan Sloughter | 2015-02-02 | 1 | -4/+4 |
| | |||||
* | app_info:valid needs to return a boolean and not throw an exception | Tristan Sloughter | 2015-01-27 | 1 | -1/+6 |
| | |||||
* | replace single profile atom in providers with list of profiles | Tristan Sloughter | 2015-01-11 | 1 | -9/+9 |
| | |||||
* | overrides working except for transitive dep inheritance with lock file | Tristan Sloughter | 2014-12-30 | 1 | -0/+11 |
| | |||||
* | rewrite profiles | Tristan Sloughter | 2014-12-16 | 1 | -0/+11 |
| | |||||
* | add applications field to app_info to track all deps of an application | Tristan Sloughter | 2014-11-19 | 1 | -0/+11 |
| | |||||
* | wip: upgrade pkg deps | Tristan Sloughter | 2014-11-02 | 1 | -1/+1 |
| | |||||
* | dialyzer fixes | Tristan Sloughter | 2014-10-18 | 1 | -11/+6 |
| | |||||
* | fixed up a few unknown types | Tristan Sloughter | 2014-09-21 | 1 | -11/+11 |
| | |||||
* | down to last 2 dialyzer errors | Tristan Sloughter | 2014-09-21 | 1 | -3/+3 |
| | |||||
* | more dialyzer fun. no likey opaque types | Tristan Sloughter | 2014-09-21 | 1 | -2/+2 |
| | |||||
* | slowly widdling away at dialyzer errors | Tristan Sloughter | 2014-09-20 | 1 | -5/+4 |
| | |||||
* | wip: updating handling of src deps to include level in lock | Tristan Sloughter | 2014-09-20 | 1 | -0/+9 |
| | |||||
* | fix bug compiling app with no .app.src | Tristan Sloughter | 2014-09-02 | 1 | -5/+5 |
| | |||||
* | fix fetch and build | Tristan Sloughter | 2014-09-02 | 1 | -4/+7 |
| | |||||
* | only build invalid (not built) source deps and project apps | Tristan Sloughter | 2014-09-01 | 1 | -2/+11 |
| | |||||
* | add first test | Tristan Sloughter | 2014-09-01 | 1 | -2/+25 |
| | |||||
* | remove more code that can be brought back later if needed | Tristan Sloughter | 2014-08-30 | 1 | -1/+17 |
| |