Skip to content
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

Hosted Support #2

Closed
DarthHater opened this issue Nov 2, 2018 · 9 comments · Fixed by #18
Closed

Hosted Support #2

DarthHater opened this issue Nov 2, 2018 · 9 comments · Fixed by #18
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@DarthHater
Copy link
Member

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Host puppet modules in Nexus Repository

  • What feature or behavior is this required for?
    Basically so people can host their own private modules

  • How could we solve this issue? (Not knowing is okay!)
    You can take a look at how we've done this for other formats and implement it! Helm has a Hosted implementation and you can likely look at that for inspiration

  • Anything else?
    Have fun! PRs welcome!

@DarthHater DarthHater added enhancement New feature or request help wanted Extra attention is needed labels Nov 2, 2018
@camaral
Copy link
Contributor

camaral commented Feb 2, 2019

Hi there!
I would like to help. See if the following will be interesting for the plugin.
So, while uploading a Puppet Module, I would like to save the dependencies of this module. This is used later by Puppet, when a module is downloaded also the dependencies are downloaded. From my understanding, the way nexus-repository-puppet is currently implemented is that all the information used on the REST calls are saved on the Asset Attributes. For that reason I added the dependencies also on these Attributes. Each dependency has a name and a version, so I created a child("dependencies") under attributes and added each dependency by calling set(dependency.name(), dependency.version()). This is working fine, but I would like to implement it cleaner like the following.

  • On the UI, when clicking on the Asset under Browse Repository, I would like the information to be shown as another section as a proper array of Objects with name and version.
    • The current behavior shows an item dependencies under Puppet attributes section with the value in json format like {"puppetlabs/stdlibs":"5.2.0" }
  • On the UI in the same screen as above, I would like to have a link on each dependency, in which one could click to open the dependency asset.

The questions are: is there a way to add List of Objects to the attributes in a nicier way? How to a add a link to another asset on the attributes?

@camaral
Copy link
Contributor

camaral commented Feb 2, 2019

The hosted support looks ready for me, but if you need any other help to finish it, open a issue and I can do it.

@camaral
Copy link
Contributor

camaral commented Mar 11, 2019

@DarthHater, would you help me here and merge this feature, please?

@cardil
Copy link
Contributor

cardil commented Apr 8, 2019

@camaral I saw you have changes here: https://github.com/sonatype-nexus-community/nexus-repository-puppet/compare/master...camaral:feature/hosted_repository?expand=1

Please, file a PR.

PS. Maybe separate changes, so they are not tangled with Maven Wrapper and other commits.

@camaral
Copy link
Contributor

camaral commented Apr 8, 2019

Hey @cardil! I already filed the PRs some time ago.
Hosted support: #14
Maven wrapper(optional/suggestion): #16
I am using it in PROD for some time now. There is only a bug when deleting assets, which I didn't have time to fix yet.

@camaral
Copy link
Contributor

camaral commented Apr 8, 2019

Another PR: #13

@cardil
Copy link
Contributor

cardil commented Apr 8, 2019

None of them says that they add hosted support

@camaral
Copy link
Contributor

camaral commented Apr 8, 2019

I understand the confusion.

The hosted support was not added by me. It was implemented on the branch hosted_poc on the main repository by @DarthHater and @djsauble.
I added some functionality around hosted support on my fork and created the PRs to hosted_poc branch.

In order to merge hosted_poc to master, first my PRs have to be accepted by the maintainers, then the maintainers have to decide to merge hosted_poc to master.
I am not a maintainer, so there is not much more I can do.

If you don't want to wait for the maintainers to work on that, you can build the plugin yourself from my fork on the branch feature/hosted_repository.

https://github.com/camaral/nexus-repository-puppet/commits/feature/hosted_repository

@cardil
Copy link
Contributor

cardil commented Apr 30, 2019

@camaral Maybe you can build this plugin with hosted support and then release it to custom public bintray Maven repository (free for opensource)?

In that way using it will be easy.

When @DarthHater or @djsauble decide to merge you can delete the Maven repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants