summaryrefslogtreecommitdiff
path: root/src/rebar_app_discover.erl
Commit message (Collapse)AuthorAgeFilesLines
* set app's dir before setting app_info deps (#1928)Tristan Sloughter2018-10-291-1/+2
|
* compiler behaviour (#1893)Tristan Sloughter2018-10-051-1/+1
| | | | | | | | | | | | | | | | * add compile type for dynamic project compilation * new rebar_compiler abstraction for running multiple compilers rebar_compiler is a new behaviour that a plugin can implement to be called on any ues of the compile provider to compile source files and keep track of their dependencies. * fix check that modules in .app modules list are from src_dirs * use project_type to find module for building projects * allow plugins to add project builders and compilers
* properly support top level app erl_opts from REBAR_CONFIG os var (#1889)Tristan Sloughter2018-09-211-34/+40
| | | | | | When REBAR_CONFIG was set it would not effect the top level app's configuration because app_discover was rereading the top level rebar.config which ignored REBAR_CONFIG. Instead this patch has it use the existing configuration from REBAR_CONFIG.
* reset default profile app plugins to empty if at the top level (#1885)Tristan Sloughter2018-09-171-14/+21
| | | | | | | | | | | 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.
* support for hex v2, multiple repository fetching, private organizations (#1884)Tristan Sloughter2018-09-131-18/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * update to hex_core for hex-v2 repo support (#1865) * update to hex_core for hex-v2 repo support This patch adds only single repo hex-v2 support through hex_core. Packages no longer filtered out by buildtool metadata and the package index is updated per-package instead of fetched as one large ets dump. * tell travis to also build hex_core branch * support list of repos for hex packages (#1866) * support list of repos for hex packages repos are defined under the hex key in rebar configs. They can be defined at the top level of a project or globally, but not in profiles and the repos configured in dependencies are also ignored. Searching for packages involves first checking for a match in the local repo index cache, in the order repos are defined. If not found each repo is checked through the hex api for any known versions of the package and the first repo with a version that fits the constraint is used. * add {repos, replace, []} for overriding the global & default repos * add hex auth handling for repos (#1874) auth token are kept in a hex.config file that is modified by the rebar3 hex plugin. Repo names that have a : separating a parent and child are considered organizations. The parent repo's auth will be included with the child. So an organization named hexpm:rebar3_test will include any hexpm auth tokens found in the rebar3_test organization's configuration. * move packages to top level of of hexpm cache dir (#1876) * move packages to top level of of hexpm cache dir * append organization name to parent's repo_url when parsing repos * only eval config scripts and apply overrides once per app (#1879) * only eval config scripts and apply overrides once per app * move new resource behaviour to rebar_resource_v2 and keep v1 * cleanup use of rebar_resource module and unused functions * cleanup error messages and unused code * when discovering apps support mix packages as unbuilt apps (#1882) * use hex_core tarball unpacking support in pkg resource (#1883) * use hex_core tarball unpacking support in pkg resource * ignore etag if package doesn't exist and delete if checksum fails * add back tests for bad package checksums * improve bad registry checksum error message
* Remove noisy debug messageFred Hebert2018-03-301-2/+0
| | | | | It makes things worse than if it weren't there. Fixes issue #1726
* remove the .app from app_infoJean Bouchard2018-03-161-3/+4
|
* run hooks and plugins during clean for depsCarl-Johan Kjellander2018-01-191-3/+8
| | | | | | find_apps didn't read config files so no hooks were in the app_infos, and now that hooks are being done rebar needs plugins to be able to run clean plugin hooks in deps.
* Unicode support in all the placesFred Hebert2017-08-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* reset hooks under profiles for application optsTristan Sloughter2017-06-021-9/+24
|
* Fix detection of src_dirs in unknown apps/depsFred Hebert2017-02-231-11/+49
| | | | | First find the rebar.config file, and if any data is found, check for src_dirs config. If nothing is there or no app is found, default to src/
* For convenience add appinfo default src_dir lookupFred Hebert2017-02-191-1/+5
| | | | This makes rebar_prv_install_deps able to support more src_dir configs
* Add respect for src_dirs option in app_discoverFred Hebert2017-02-191-29/+52
| | | | | This lets people who use custom directories layout without leaving the .app.src in src/ to still see their app build.
* Fix Alisdair's review, add more types and docsFred Hebert2016-12-161-2/+4
|
* Type specifications and edocs improvementsFred Hebert2016-11-271-4/+77
| | | | | | 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.
* handle case that upgraded app no longer has .app.src fileTristan Sloughter2015-09-201-1/+2
|
* hooks/artifacts are always run/resolved from an app unless at top of umbrellaTristan Sloughter2015-09-061-12/+15
|
* move otp version verification to a single app_info functionTristan Sloughter2015-09-011-2/+2
|
* move opts functions to new module rebar_optsTristan Sloughter2015-09-011-1/+1
|
* remove overrides element from state recordTristan Sloughter2015-09-011-1/+1
|
* more cleanupTristan Sloughter2015-08-311-11/+11
|
* more cleanup of old state usageTristan Sloughter2015-08-311-23/+20
|
* fixes for overrides of depsTristan Sloughter2015-08-311-1/+0
|
* build on already created AppInfo instead of having to do copyTristan Sloughter2015-08-311-26/+32
|
* remove state record from app_info recordTristan Sloughter2015-08-311-2/+1
|
* wip: move state into app_infoTristan Sloughter2015-08-311-1/+2
|
* simplify package dep parsing and handlingTristan Sloughter2015-08-251-1/+1
|
* don't store deps list with duplicate in stateTristan Sloughter2015-08-221-4/+6
|
* this patch treats pkg and src deps as equals, so level decides winnerTristan Sloughter2015-08-211-9/+9
| | | | | | | | 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.
* small refactorings per Fred commentsTristan Sloughter2015-08-171-9/+13
|
* use correct rebar_state for a dep, not the top level stateTristan Sloughter2015-08-161-3/+4
|
* handle new tests for mix package types (git/pkg)Tristan Sloughter2015-08-161-2/+4
|
* track the parent of umbrella app dependenciesTristan Sloughter2015-08-161-11/+56
|
* fix dialyzer warnings, except 'no local return' warningsTristan Sloughter2015-08-081-10/+5
|
* add tree option to deps command that prints pkg deps treeTristan Sloughter2015-08-031-6/+1
|
* include app.src.script in app discover and always use if availableTristan Sloughter2015-07-261-6/+18
|
* add support for old format otp versionsTristan Sloughter2015-07-251-0/+4
|
* only look for top level apps and those directly under apps/ or lib/Tristan Sloughter2015-07-161-10/+2
|
* Read and process .app.src.script if presentGarret Smith2015-06-301-1/+1
|
* add config option artifactsTristan Sloughter2015-06-021-16/+17
|
* Add rebar.config 'excluded_apps' key.Jean Parpaillon2015-05-231-7/+20
| | | | | | Listed applications are simply ignored. Allows for configuration time sub-application building.
* add additional commentsTristan Sloughter2015-05-221-0/+3
|
* read in app information after fetch so we have the depsTristan Sloughter2015-05-221-3/+4
|
* fall back to .app.src file if .app file fails to parseTristan Sloughter2015-05-221-53/+58
|
* print and format error message for bad .app files and all bad configsTristan Sloughter2015-05-221-19/+15
|
* Properly reset hooks for single-app projectViacheslav V. Kovalev2015-05-211-2/+2
|
* Manage syntax error in app.src files.Umberto Corponi2015-05-061-4/+9
| | | | | - Solve "Uncaught error" failure in case of syntax error in app.src file. - Print helpful information on the location of the syntax error.
* don't duplicate hooks for top level appTristan Sloughter2015-04-191-2/+24
|
* include applications list in compile sortTristan Sloughter2015-04-151-1/+6
|
* support single atoms for pkg deps, fetch highest version availableTristan Sloughter2015-04-111-4/+5
|