-
-
Notifications
You must be signed in to change notification settings - Fork 65
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
Add a release engine for Rubygems #491
Comments
/bounty $500 |
💎 $500 bounty • KeygenSteps to solve:
Thank you for contributing to keygen-sh/keygen-api! Add a bounty • Share on socials
|
/attempt #491
|
Currently configuring my environment... Will it be easier if docker-compose support is integrated first @ezekg ? |
@mobley-trent We're working on that in #727 but no ETA yet. lmk if you need help with your env. Discord is here if you want to ask questions: https://keygen.sh/discord/ |
I'm traveling this week, so commenting prematurely to be in the loop. I've got my env set up, tests passing, and I'm familiar with the rubygems implementation so I'm optimistic I can get this done when I'm back. /attempt #491
|
Sorry about the noise, turns out I'll be quite busy when I get back. Canceling my attempt as I won't be able to get to it. Hopefully next time! EDIT: link to cancel doesn't seem to work |
This is part of our overarching goal of supporting more package managers in Keygen: #493.
See #679 for implementation of PyPI, and #753 for Tauri. Bulk of the PyPI logic is in the controller, with integration tests here and here. The Tauri implementation can be found in the aforementioned PR, since it's much simpler than the PyPI PR, as the PR for PyPI contained a lot of ground work for future packaging systems and may not be particularly helpful.
Implementation-wise here, we need to implement the expected API for Rubygems, in a way that's compatible with Keygen's existing distribution schema. May be able to use the Rubygems lib for heavy lifting here, but I'm not sure. Like PyPI and Tauri, the implementation should only be concerned with downloading gems, not uploading. Drafting releases and uploading artifacts to Keygen's distribution API can be done via Keygen's CLI, or via the Dashboard.
For an overview on the API endpoints expected by Rubygems, check out this blog post: https://keygen.sh/blog/how-to-license-and-distribute-a-private-rubygem/. We can use that to model the Rubygems engine here. This engine is meant to replace the workflow in that blog post — it should be a turn-key way to distribute gems.
In the end, I want a customer to be able to upload a
.gem
file (viagem build
) to the distribution API we already have, and allow their end-users togem install
that gem like they would from https://rubygems.org.Implementation should include integration tests. lmk of any questions.
The text was updated successfully, but these errors were encountered: