Skip to content

Add rvm support to Platform Provisioning Manifests #32

Description

@darkn3rd

Currently the only Ruby version manager in the manifest schema is rbenv (used in ubuntu2204.yml) - other platforms just install a single system/package Ruby directly (macos.yml's brew: ruby, windows.yml's choco: ruby, cygwin.yml/msys2.yml's native package). RVM is a well-known alternative Ruby version manager, primarily for POSIX/bash environments, and isn't representable in the manifest schema at all right now.

Depends on #16 - RVM steps need to be opt-in alongside rbenv/the system Ruby (you don't want all three installing by default), which means they need real --select/--exclude filtering, not just documentation-only tags:. RVM's own package entries will carry tags: [rvm], matching the existing [rbenv]/[pyenv]/[sdkman] convention.

  • Add rvm as a new package type: in resolve_order.rb's PACKAGE_TYPES
  • Add install-command handling - RVM's own install is a multi-step curl+gpg bootstrap, not a one-line package-manager call, so this likely needs a script:-based approach (similar to ubuntu22_rbenv) rather than a simple bash_install/powershell_install case
  • Decide which platform(s) actually get it - bash-capable platforms only (ubuntu2204.yml, macos.yml, cygwin.yml, msys2.yml); native Windows has no bash, so RVM wouldn't apply there
  • Document rvm in scriptbox/config/README.md's "Version Managers" list, alongside pyenv/rbenv/sdkman
  • Confirm whether scriptbox/scripts/verify_commands.rb needs any change, or whether it already covers RVM-installed Ruby transparently (it detects ruby/rake by binary name, not by install method)

This is additive/optional - existing platforms already install Ruby fine without RVM. This is about giving manifest authors the choice of RVM as a package type where they want it, once #16 makes that choice actually selectable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions