-
Notifications
You must be signed in to change notification settings - Fork 20
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
Better integration with Nexus #691
Comments
@serverhorror first, my apologies for the late feedback on this! Second, excellent idea. I'm for everything that empower developers to make their work more efficient and effective, like in this case, providing out of box nexus repositories for sharing libraries and other artifacts. Additionally I believe this enhancement could save effort for the platform supporters in the enterprise side. @michaelsauter @clemensutschig @metmajer I vote for this enhancement. Anything from your side that would speak against it? |
I see the two use cases you mention as two separate requests. The first one ("1. create a new project") has been discussed in the past, see opendevstack/ods-core#321 and opendevstack/ods-core#169. Work on that was stopped because it proved to be tricky for a variety of reasons. In general I would highly welcome progress on this as well, the shared secret is not a viable option I think. The second one ("2. create a new component within an existing project") is new as far as I know. I have a few questions on that one:
|
I see, I'm looking at this as a very naive user. The "project" to me is some kind of namespace and I'd love to be able to add/remove project members and know that access is handled. I think you're right that should probably be a proposal in itself. I'll stop mentioning that stuff here.
In my head that's the place I'd go to if I wanted to add "stuff" to my project. That's just me and I might be wrong, maybe asking around does make sense?
TL;DR: I think it would be nice to have an option at creation time and after the fact to just say:
Background info: I can't speak for every project. The situation I am in is that we have a lot of projects that are "multi-language and multi-purpose". You can think of it like "this stuff goes together well so I'll just put there". Could be pipelines, R packaes, Python packages, ... all in the same project and they do not form a coherent single product. It's a collection of products that are under a single pane of glass. The reason why people choose this is quite pragmatic.
I am absolutely sure that this will come up after a repo has been created. I was thinking about the prov app because it would be the first place to look for. In my head it's a little like this:
The case I am not sure about is "Provisioning a Nexus repo without a component", I have no good mental model about this. Maybe one could provision multiple Nexus Repos per component? Say "git lfs and Python Package" or "raw and CRAN" |
feature request
I'd like to see better integration with Nexus. Currently local usage of nexus:
We are looking at local usage of Nexus because we want to be able to run builds and test locally with an environment that resembles the CI environment as close as possible.
solution proposal
I see 2 base cases
create a new project
When a new project is created the corresponding groups should be created to or added in nexus so that the personal credentials can be used rather than sharing a secret between a potentially very large group. Not to mention all the hassle if people switch teams, this requires a secret rotation for a lot of people.
groups should be added to nexus as read-only member of all "public" nexus repositories but not necesarily all repositories (although I can't see harm in that right now)
create a new component within an existing project
When a new component is created I would like to an option to create a Nexus repository.
The reason for not doing that directly at the project level is that we don't know ahead of time which kind of repository is required for which component.
A perfect experience would be if the repositories are magically added to the "meta repositories" (lacking the proper term here) so that when Nexus is configured as the default Maven, PyPI, R, ... mirror all internal packages are available automatically.
alternate/current methods
Manually ordering the repositories is our only option right now. This has proven to be too cumbersome and error prone.
People actively avoid using Nexus as a means to distribute software as the process seems unclear and complicated. We are already seeing several implementations of "I pretend to be a repository but I'm not" in the wild and in use by various high profile projects.
additional context / required praise
❤️ You girls and guys rock! ❤️
The text was updated successfully, but these errors were encountered: