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

Add a release engine for Rubygems #491

Closed
ezekg opened this issue Nov 4, 2021 · 7 comments · Fixed by #907
Closed

Add a release engine for Rubygems #491

ezekg opened this issue Nov 4, 2021 · 7 comments · Fixed by #907

Comments

@ezekg
Copy link
Member

ezekg commented Nov 4, 2021

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 (via gem build) to the distribution API we already have, and allow their end-users to gem install that gem like they would from https://rubygems.org.

Implementation should include integration tests. lmk of any questions.

@ezekg ezekg changed the title Add rubygems support Add Rubygems support Nov 4, 2021
@ezekg ezekg changed the title Add Rubygems support Add a release engine for Rubygems Sep 12, 2024
@ezekg
Copy link
Member Author

ezekg commented Sep 12, 2024

/bounty $500

Copy link

algora-pbc bot commented Sep 12, 2024

💎 $500 bounty • Keygen

Steps to solve:

  1. Start working: Comment /attempt #491 with your implementation plan
  2. Submit work: Create a pull request including /claim #491 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to keygen-sh/keygen-api!

Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🔴 @mobley-trent Sep 12, 2024, 5:21:21 PM WIP
🔴 @josefarias Oct 6, 2024, 11:36:48 AM WIP

@mobley-trent
Copy link

mobley-trent commented Sep 12, 2024

/attempt #491

Algora profile Completed bounties Tech Active attempts Options
@mobley-trent 10 bounties from 5 projects
Python, Rust,
Jupyter Notebook
Cancel attempt

@mobley-trent
Copy link

mobley-trent commented Sep 13, 2024

Currently configuring my environment... Will it be easier if docker-compose support is integrated first @ezekg ?

@ezekg
Copy link
Member Author

ezekg commented Sep 13, 2024

@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/

@josefarias
Copy link

josefarias commented Oct 6, 2024

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

Algora profile Completed bounties Tech Active attempts Options
@josefarias 5 bounties from 1 project
Ruby, CoffeeScript,
TypeScript & more
Cancel attempt

@josefarias
Copy link

josefarias commented Oct 10, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants