The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Funtoo:Ruby"
(adding Ruby next 3.1.2 update) |
(small modification to latest status update) |
||
Line 8: | Line 8: | ||
|updates={{Project/Update | |updates={{Project/Update | ||
|date=2022-07-27 | |date=2022-07-27 | ||
|status=FL-9695 has now been completed, bringing a fully metatools modernized ruby-kit to Funtoo next, including making Ruby 3.1.2 the default Ruby. | |status=[https://bugs.funtoo.org/browse/FL-9695 FL-9695] has now been completed, bringing a fully metatools modernized ruby-kit to Funtoo next, including making Ruby 3.1.2 the default Ruby. | ||
}} | }} | ||
}} | }} |
Latest revision as of 07:22, July 27, 2022
FL-9695 has now been completed, bringing a fully metatools modernized ruby-kit to Funtoo next, including making Ruby 3.1.2 the default Ruby.
27 July 2022
This project is focused on Ruby support in Funtoo, and oversees ruby-kit and overall Ruby integration.
Overview
Similar to the Funtoo Python Project, we need to rethink how Ruby is done in Funtoo to ensure upstream compatibility and overall future maintainability of the Ruby Programming Language as it evolves.
Also, as with any Programming Language, we also want to be able to offer all supported upstream versions of Ruby to Funtoo Ruby users with relatively little effort by leveraging Funtoo Metatools
One of the major components of Ruby is RubyGems, the native Ruby package and dependency manager. Just like many other Programming Languages that provide their own package manager, it usually knows best how to automatically handle a language's module/library/package management for the development efficiency.
So like many things Gentoo has done with Portage, one is heavy modification of RubyGems to work with Portage instead of RubyGems just working as seamlessly alongside Ruby.
What are we Building?
After the initial modernization of the core Ruby packages and RubyGems, the next major effort of the Funtoo Ruby Project is to simplify RubyGems in Funtoo to be less integrated with Portage and more environmentally driven by Ruby user's needs and industry standard upstream tools like bundler.
RubyGems is one of the most important components of making Ruby useful for development and it should just work on Funtoo Linux.
Lastly we want all RubyGems packages hosted on rubygems.org to be available, not just a small subset.
Initial Project as Literal Ruby
funtoo_ruby.rb
(Ruby source code) - Funtoo Ruby project in Ruby#!/usr/bin/env ruby
# frozen_string_literal: true
require 'date'
# Funtoo Ruby Project
class FuntooRuby
def initialize
@date = DateTime.now
@release = 'next'
@delimiter = '------------------------------'
end
def start
puts "The Funtoo Programming Languages Project for the Ruby Programming language starts now: #{@date}"
puts @delimiter
end
def release
puts "Funtoo Ruby Project Funtoo release target: #{@release}"
puts @delimiter
end
def mission
puts 'Project Mission:'
puts '1. Convert all Funtoo ruby-kit packages into funtoo-metatools autogenerated ebuilds including core language and Ruby'
puts '2. Ensure at least two stable and latest Ruby versions are supported in the Funtoo Portage Tree: 2.7.5 and 3.1.1'
end
def take_action(method_name)
send(method_name)
end
end
Project = FuntooRuby.new
%w[start release mission].each do |action|
Project.take_action(action.to_s)
end
Now let's get this Project started and have some fun with Ruby:
funtoo-ruby # ./funtoo_ruby.rb The Funtoo Programming Languages Project for the Ruby Programming language starts now: 2022-03-05T23:20:19-08:00 ------------------------------ Funtoo Ruby Project Funtoo release target: next ------------------------------ Project Mission: 1. Convert all Funtoo ruby-kit packages into funtoo-metatools autogenerated ebuilds including core language and Ruby 2. Ensure at least two stable and latest Ruby versions are supported in the Funtoo Portage Tree: 2.7.5 and 3.1.1
References
Some internal and external references that are critical for this project:
- Ruby-kit -- User:Drobbins write-up on the current state of ruby-kit in Funtoo with lots of technical details
- Official Listing of Ruby Stable Releases
- RubyGems Official API Documentation