all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Daniel Littlewood <danielittlewood@gmail.com>
To: help-guix <help-guix@gnu.org>
Subject: Ruby without RVM - what to do if the version I want is missing?
Date: Fri, 14 Jun 2024 16:43:05 +0100	[thread overview]
Message-ID: <CAFDSbVcda1Bw+4J_eiNtfXC=DW5LqbDrMGuAw2Bvd=rmE3RzHw@mail.gmail.com> (raw)

Hi Guix,

I am trying to migrate from Debian to Guix. I am used to using
RVM/rbenv to manage my ruby versions, but I don't think they're
packaged for guix. They also obviously go against the grain of having
guix manage all your software.

Long story short, my project requires Ruby 3.3.0, and the latest
packaged version is 3.2.3. I have one main question and a followup. I
read David Thompson's article "Ruby on Guix" so I will refer to that
when I'm trying to describe things.
(https://dthompson.us/posts/ruby-on-guix.html)

1. Suppose I am prepared to package Ruby 3.3.0 myself. I imagine that
the packaging steps for 3.3.0 are extremely similar to 3.2.3 (probably
they are identical).
1a. Which parts of the manual should I read to figure out how to write
a new package? In the article there is one expression that begins
`(package (name ruby-pry)...` and another `(define-public ruby-pg
(package (name "ruby-pg")...`. What is the significance of
define-public?
1b. If I manage to write a package expression for ruby 3.3.0, how do I
then refer to it in my package.scm? I assume I have to require a
module somehow, but I know very little scheme.
1c. Given that 3.3.0 is probably almost identical to 3.2.3, I would
like to copy the original file and just tweak the details in my local
project. I think I found that via packages.guix.gnu.org, here:
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby.scm#n279.
Is that the right expression (if I just copy it, should I expect it to
work)?

and for my followup,
2. Now imagine I've packaged it correctly and it works locally. I
assume it would be a good thing to upstream that file.
2a. Is it actually desirable to upstream that? I notice not every
version of ruby is packaged. But I think similarly to the previous
section it should be not too hard to package every version (major and
minor). Is there a principled reason not to do this, or is it just
lack of maintainers?
2b. If there is a principled reason, like we don't want the guix
packages repo to be too big, would it be useful for someone to have
another channel where things like extra ruby versions are packaged and
pre-built?

I think this second question is important for people like me who are
considering using Guix to replace things like RVM. It might be that
guix proper has high standards for packaging, but I know I wouldn't
mind if there was a lower standard for stuff being pulled naively via
rubygems or whatever.

Best wishes, thank you for reading,
Dan


             reply	other threads:[~2024-06-14 15:43 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-14 15:43 Daniel Littlewood [this message]
2024-06-14 16:15 ` Ruby without RVM - what to do if the version I want is missing? Felix Lechner via
2024-06-14 17:36 ` Andreas Enge
2024-06-15  6:39   ` Nils Landt
2024-06-16 10:27   ` Andreas Enge
2024-06-17 19:09     ` Daniel Littlewood
2024-06-17 19:09       ` [bug#71559] " Daniel Littlewood
2024-06-19 15:50       ` Remco van 't Veer
2024-06-20 17:09       ` Andreas Enge
2024-06-15  7:43 ` Remco van 't Veer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFDSbVcda1Bw+4J_eiNtfXC=DW5LqbDrMGuAw2Bvd=rmE3RzHw@mail.gmail.com' \
    --to=danielittlewood@gmail.com \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.