-
-
Notifications
You must be signed in to change notification settings - Fork 194
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
Pseudo repository support for any kind of files #1517
Comments
I don't know much about webdav 🤔 It sounds a little bit complex, do you know about requirements and why do you think it could be helpful particularly in terms of Maven-based projects? |
Hi @dzikoysk Directory structure:
meta.xml:
|
I think this kind of feature is quite specific and dependent on given scenario - in general Reposilite allows you to upload any file atm to the repository, so such behavior should be probably implemented on the client side, just like e.g. Maven client. So client deploys not only those zip files, but also generates meta.xml (with metadata about those files and probably even more data you can configure during build phase) and Reposilite just stores it, so this kind of logic is a part of client and server stays quite generic. Not sure how you're deploying those files, but e.g. Gradle is pretty convenient solution for customizing any part of your build process, so you could probably write a script/plugin that handles it and it should work way better than any logic on server. |
The |
Reposilite, and any other repository manager, is not modyfing metadata files as it's not its responsibility. That's healthy, because it reduces a need to "guess" what clients meant when they've uploaded specified files. |
So actually it means I would need to create a plugin for different buildsystems. That's what my ticket is about. It's not about maven here. It's about a simple routine here to upload generic files. (It can be a Reposilite/Javaline plugin) Procedure: I hope it's more clear why it doesn't work on client side. It's too generic for maven/gradle. As Flutter/Bazel/Cmake or what ever doesn't work with it. Plus it doesn't need to be a zip file. I could upload as *.tar.gz, *.tar and *.zp. even *.exe or *.appimage or something would work. That's why it would be awesome. |
I feel like you're more comfortable with this topic than I am, would you like to try to prototype this as plugin? In theory you should be able to listen for |
I could try. :) |
What's the status of this issue? :) |
@dzikoysk that's a good question! I hope I've got time next week in my vacations. Then I'll be home and got a quiet place for coding. :D |
I am also searching for a generic solution like this issue ticket. It would be nice to see everything as a generic artifact. And then, if we need maven, we can enable maven registry plugin. Basically, it would be nice to have a "universal build artifact management" system like https://cloud.google.com/artifact-registry, but open-source, lightweight and self-host. |
By default, Reposilite does not generate any kind of files, so as long as there's no such requirement from given build system, it basically may work like that. Unfortunately, some ecosystems (like e.g. OCI - e.g. Docker) require dedicated API, and it'd require probably quite a lot of work to cover all of that (#1618). As far as I remember, this issue is about adding some extra metadata for non Maven builds, but I think it could be covered with 3rd party plugin these days 🤔. |
I know, each ecosystem requires a lot of stuffs, so the artifacts will work with other tools of the same ecosystem. That's why I think Reposilite should be generic at least first. |
Maybe I didn't understand Reposilite. So, do you mean, actually generic artifact will work already with Reposilite? Do I need gradle or maven to work with generic artifact? PS: I didn't try Reposilite. Only searching for a solution but didn't try anything yet. |
That's how it's implemented atm, our storage system is an independent implementation that can be used by other plugins: And Maven integration is implemented as a plugin on top of that:
Ofc UI is written with an assumption that there's just Maven atm, because that's our primary target, but that's something that we could work on if needed.
All you need to upload content to Reposilite is to make |
Oh, nice! Then, this is exactly the solution I need. |
Sure, let me know how it works for you. Even if Reposilite won't fulfill your requirements, it could be nice to have some kind of feedback that we could reconsider during e.g. Reposilite 4.x etc. :) |
I did a quick try and I like Reposilite. However, I think it would be nicer if Reposilite could learn from https://docs.gitea.com/next/usage/packages/overview So, basically for home lab, I think the best option would be just using gitea, which could be used for 3 purposes at once: git repository, artifact repository and CI. For more complicated setup requirements, such as small business, we could
|
Well, by default Reposilite targets jvm projects and that's the priority - I need to filter feature requests, because I'm simply unable to provide a good support for all of these tools. Build tools that don't require any extra handling should work ootb, but Integrations like e.g. containers (OCI) brings a whole new spec. Atm I can only say, that they're plans to support containers & npm, I just didn't have time for it yet. |
I feel like this issue is a bit outdated & doesn't request a particular feature. Reposilite is able to host non-Maven related files, so in general it can be used as a generic repository for any kind of files. If someone has some issues related to that area, feel free to open a new issue that is focused on a specific use-case - it'll be easier to figure out further steps for us in terms of that support :) |
Request details
It might be awesome to have extended webdav support, as some artifacts are only zip files.
Also it would be awesome if each directory with artifacts has something like a meta.xml. Which keeps track of the latest package + hashing.
So each time a new upload was successful, it's possible to keep the track of the latest zip release.
This came in my mind as I want to upload my web client to a repository. With the same advantages like a maven repo.
The text was updated successfully, but these errors were encountered: