-
Notifications
You must be signed in to change notification settings - Fork 521
Support local plugins with is_umbrella
settings
#2729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Is it possible to read the `{project_app_dirs, ["src/*"]}` setting and treat it as a proper umbrella project to use local plugins? Issue: erlang#2712
See #2697 for the feature to already work with umbrella applications. I do not think it is a good idea to try and support it for non-umbrella projects because plugins used locally when the library is imported as a dependency are not going to resolve properly compared to external ones. As such, the decision not to support local plugins in non-umbrella projects is deliberate and not something I think we'll start doing. |
I'm trying to upgrade CouchDB from rebar to rebar3 https://github.com/apache/couchdb/pull/4089/files. |
Oh, so specifically there, the |
I didn't change
|
There also are Specifically, in the code you're patching, the call to |
Is there a better way to handle local plugins if we don't change |
Let me chime in as well. Just for the reference here is the current PR for migrating CouchDB project into rebar3 https://github.com/apache/couchdb/pull/4089/files. It has grown too big to digest and maintain. To reduce the change set we are looking for any advise on following issues:
|
The problem with cycles isn't fetching, that is solved by rebar3 just picking the first it encounters, but we don't know what order to build apps in if there is a cycle. |
072b3eb
to
02df17d
Compare
02df17d
to
2c30b46
Compare
How about adding a new config option The main branch is using the |
The docs for the feature in #2697 say that
Would it be possible to make it explicit via a new configuration option in |
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed. <!-- If your changes affects multiple components in different repositories please put links to those issues or pull requests here. --> - [x] Code is written and works correctly - [x] Changes are covered by tests - [ ] Any new configurable parameters are documented in `rel/overlay/etc/default.ini` - [ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
project_app_dirs
settingsis_umbrella
settings
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
What should happen is is_umbrella is set to false and there is clearly an umbrella structure? What of the opposite where is_umbrella is true but the project is not an umbrella project? |
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
1. Change `src` to `apps` and all symlinks: In order to use the local plugins `rebar3 ic setup_eunit [-f]`, we need to use correct umbrella project structure. See erlang/rebar3#2729 2. Use `configure` script instead of `rebar.config.script` to download dependencies: `make eunit` will get dependency cycle error if using `rebar.config.script` 3. rebar3 has no options such as `skip_deps` or `-r`, so they were removed.
Is it possible to read the
{project_app_dirs, ["src/*"]}
settingand treat it as a proper umbrella project to use local plugins?
Issue: #2712