The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Funtoo:Ruby"
(initial ruby project page) |
(small modification to latest status update) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Project | {{Project | ||
|summary=This project is focused on Ruby support in Funtoo, and oversees ruby-kit and overall Ruby integration. | |summary=This project is focused on [https://www.ruby-lang.org Ruby] support in Funtoo, and oversees ruby-kit and overall Ruby integration. | ||
|Keywords=ruby, programming languages | |Keywords=ruby, programming languages | ||
|Project Category=Development | |Project Category=Development | ||
Line 6: | Line 6: | ||
|subpages=Activities | |subpages=Activities | ||
|translate=no | |translate=no | ||
|updates={{Project/Update | |||
|date=2022-07-27 | |||
|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. | |||
}} | }} | ||
}} | |||
This project is focused on [https://www.ruby-lang.org Ruby] support in Funtoo, and oversees ruby-kit and overall Ruby integration. | |||
== Overview == | |||
Similar to the [[Funtoo:Python|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 [https://www.ruby-lang.org/en/downloads/ all supported upstream versions of Ruby] to Funtoo Ruby users with relatively little effort by leveraging [[Metatools|Funtoo Metatools]] | |||
One of the major components of Ruby is [https://en.wikipedia.org/wiki/RubyGems 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 [https://rubygems.org/gems/bundler 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 [https://rubygems.org/ rubygems.org] to be available, not just a small subset. | |||
== Initial Project as Literal Ruby == | |||
{{file|name=funtoo_ruby.rb|lang=Ruby|desc=Funtoo Ruby project in Ruby|body= | |||
#!/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: | |||
{{console|body= | |||
%funtoo-ruby% ##i##./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 | |||
* [https://www.ruby-lang.org/en/downloads/ Official Listing of Ruby Stable Releases] | |||
* [https://guides.rubygems.org/rubygems-org-api/ RubyGems Official API Documentation] | |||
{{ProjectFooter}} | {{ProjectFooter}} |
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