⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.133
Server IP:
185.119.109.197
Server:
Linux managedhosting.chostar.me 5.15.0-160-generic #170-Ubuntu SMP Wed Oct 1 10:06:56 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.1.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
usr
/
share
/
ri
/
3.0.0
/
system
/
View File Name :
page-contributing_rdoc.ri
U:RDoc::TopLevel[ i I"contributing.rdoc:EFcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[ąS:RDoc::Markup::Heading: leveli: textI"Contributing to Ruby;To:RDoc::Markup::BlankLine o:RDoc::Markup::Paragraph;[I"TRuby has a vast and friendly community with hundreds of people contributing to ;TI"Pa thriving open-source ecosystem. This guide is designed to cover ways for ;TI"/participating in the development of CRuby.;T@ o; ;[I"PThere are plenty of ways for you to help even if you're not ready to write ;TI"Tcode or documentation. You can help by reporting issues, testing patches, and ;TI"5trying out beta releases with your applications.;T@ S; ; i;I"How To Report;T@ o; ;[ I"OIf you've encountered a bug in Ruby please report it to the redmine issue ;TI"Utracker available at {bugs.ruby-lang.org}[https://bugs.ruby-lang.org/]. Do not ;TI"@report security vulnerabilities here, there is a {separate ;TI"Cchannel}[rdoc-label:label-Reporting+Security+Issues] for them.;T@ o; ;[I"QThere are a few simple steps you should follow in order to receive feedback ;TI"on your ticket.;T@ o:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o; ;[I"If you haven't already, ;TI"R{sign up for an account}[https://bugs.ruby-lang.org/account/register] on the ;TI"bug tracker.;To;;0;[o; ;[I"Try the latest version.;T@ o; ;[I"LIf you aren't already using the latest version, try installing a newer ;TI"stable release. See ;TI"A{Downloading Ruby}[https://www.ruby-lang.org/en/downloads/].;To;;0;[o; ;[I"
ruby -v).;To;;0;[o; ;[I"QAttach any logs or reproducible programs to provide additional information. ;TI"9Reproducible scripts should be as small as possible.;To;;0;[o; ;[I"QBriefly describe your problem. A 2-3 sentence description will help give a ;TI"quick response.;To;;0;[o; ;[I"NPick a category, such as core for common problems, or lib for a standard ;TI" library.;To;;0;[o; ;[I"Check the {Maintainers ;TI"Qlist}[https://bugs.ruby-lang.org/projects/ruby/wiki/Maintainers] and assign ;TI"Lthe ticket if there is an active maintainer for the library or feature.;To;;0;[o; ;[I"JIf the ticket doesn't have any replies after 10 days, you can send a ;TI"reminder.;To;;0;[o; ;[I"RPlease reply to feedback requests. If a bug report doesn't get any feedback, ;TI"#it'll eventually get rejected.;T@ S; ; i;I"*Reporting to downstream distributions;T@ o; ;[I"\You can report downstream issues for the following distributions via their bug tracker:;T@ o;;;;[ o;;0;[o; ;[I"N{debian}[https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=ruby-defaults];To;;0;[o; ;[I"I{freebsd}[http://www.freebsd.org/cgi/query-pr-summary.cgi?text=ruby];To;;0;[o; ;[I"|{redhat}[https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED];To;;0;[o; ;[I"f{macports}[https://trac.macports.org/query?status=assigned&status=new&status=reopened&port=~ruby];To;;0;[o; ;[I"1etc (add your distribution bug tracker here);T@ S; ; i;I"Platform Maintainers;T@ o; ;[I"SFor platform specific bugs in Ruby, you can assign your ticket to the current ;TI"(maintainer for a specific platform.;T@ o; ;[I"
graveyard which is unfortunate. If you check the {issues ;TI"Vlist}[https://bugs.ruby-lang.org/projects/ruby-master/issues] you will find lots ;TI"/of delinquent bugs that require attention.;T@ o; ;[I"SYou can help by verifying the existing tickets, try to reproduce the reported ;TI"Pissue on your own and comment if you still experience the bug. Some issues ;TI"Slack attention because of too much ambiguity, to help you can narrow down the ;TI"Pproblem and provide more specific details or instructions to reproduce the ;TI"Qbug. You might also try contributing a failing test in the form of a patch, ;TI"-which we will cover later in this guide.;T@ o; ;[ I"NIt may also help to try out patches other contributors have submitted to ;TI"Oredmine, if gone without notice. In this case the +patch+ command is your ;TI"Sfriend, see
man patch
for more information. Basically this would ;TI"go something like this:;T@ o:RDoc::Markup::Verbatim;[I"cd path/to/ruby ;TI"patch -p0 < path/to/patch ;T:@format0o; ;[ I"SYou will then be prompted to apply the patch with the associated files. After ;TI"Sbuilding ruby again, you should try to run the tests and verify if the change ;TI"Sactually worked or fixed the bug. It's important to provide valuable feedback ;TI"Ton the patch that can help reach the overall goal, try to answer some of these ;TI"questions:;T@ o;;;;[ o;;0;[o; ;[I"(What do you like about this change?;To;;0;[o; ;[I"#What would you do differently?;To;;0;[o; ;[I"/Are there any other edge cases not tested?;To;;0;[o; ;[I"FIs there any documentation that would be affected by this change?;T@ o; ;[ I"RIf you can answer some or all of these questions, you're on the right track. ;TI"QIf your comment simply says "+1", then odds are that other reviewers aren't ;TI"Ogoing to take it too seriously. Show that you took the time to review the ;TI"patch.;T@ S; ; i;I"How To Request Features;T@ o; ;[I"SIf there's a new feature that you want to see added to Ruby, you will need to ;TI"Dwrite a convincing proposal and patch to implement the feature.;T@ o; ;[ I"3For new features in CRuby, use the {'Feature' ;TI"`tracker}[https://bugs.ruby-lang.org/projects/ruby-master/issues?set_filter=1&tracker_id=2] ;TI"Ton ruby-master. For non-CRuby dependent features, features that would apply to ;TI"Talternate Ruby implementations such as JRuby and Rubinius, use the {CommonRuby ;TI"?tracker}[https://bugs.ruby-lang.org/projects/common-ruby].;T@ o; ;[ I"NWhen writing a proposal be sure to check for previous discussions on the ;TI"Rtopic and have a solid use case. You will need to be persuasive and convince ;TI"TMatz on your new feature. You should also consider the potential compatibility ;TI".issues that this new feature might raise.;T@ o; ;[ I"QConsider making your feature into a gem, and if there are enough people who ;TI"Rbenefit from your feature it could help persuade ruby-core. Although feature ;TI"Orequests can seem like an alluring way to contribute to Ruby, often these ;TI"Sdiscussions can lead nowhere and exhaust time and energy that could be better ;TI",spent fixing bugs. Choose your battles.;T@ o; ;[I"LA good template for a feature proposal should look something like this:;T@ o;;;;[o;;[I" Abstract;T;[o; ;[I"Summary of your feature;To;;[I"Background;T;[o; ;[I"LDescribe current behavior and why it is problem. Related work, such as ;TI"Dsolutions in other language helps us to understand the problem.;To;;[I" Proposal;T;[o; ;[I"&Describe your proposal in details;To;;[I"Details;T;[o; ;[I"/If it has complicated feature, describe it;To;;[I"Usecase;T;[o; ;[I">How would your feature be used? Who will benefit from it?;To;;[I"Discussion;T;[o; ;[I"JDiscuss about this proposal. A list of pros and cons will help start ;TI"discussion.;To;;[I"Limitation;T;[o; ;[I" Limitation of your proposal;To;;[I"!Another alternative proposal;T;[o; ;[I"3If there are alternative proposals, show them.;To;;[I" See also;T;[o; ;[I")Links to the other related resources;T@ S; ; i;I"Backport Requests;T@ o; ;[ I"RWhen a new version of Ruby is released, it starts at patch level 0 (p0), and ;TI"Rbugs will be fixed first on the master branch. If it's determined that a bug ;TI"Pexists in a previous version of Ruby that is still in the bug fix stage of ;TI"Tmaintenance, then a patch will be backported. After the maintenance stage of a ;TI"Oparticular Ruby version ends, it goes into "security fix only" mode which ;TI"Qmeans only security related vulnerabilities will be backported. Versions in ;TI"NEnd-of-life (EOL) will not receive any updates and it is recommended you ;TI"!upgrade as soon as possible.;T@ o; ;[I"TIf a major security issue is found or after a certain amount of time since the ;TI"Flast patch level release, a new patch-level release will be made.;T@ o; ;[ I"QWhen submitting a backport request please confirm the bug has been fixed in ;TI"Qnewer versions and exists in maintenance mode versions. There is a backport ;TI"Qtracker for each major version still in maintenance where you can request a ;TI"@particular revision merged in the affected version of Ruby.;T@ o; ;[I"QEach major version of Ruby has a release manager that should be assigned to ;TI"Phandle backport requests. You can find the list of release managers on the ;TI"N{wiki}[https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering].;T@ S; ; i;I" Branches;T@ o; ;[I":Status and maintainers of branches are listed on the ;TI"N{wiki}[https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering].;T@ S; ; i;I"Running tests;T@ o; ;[I"SIn order to help resolve existing issues and contributing patches to Ruby you ;TI"+need to be able to run the test suite.;T@ o; ;[ I"QCRuby uses git for source control, the {git homepage}[https://git-scm.com/] ;TI"Qhas installation instructions with links to documentation for learning more ;TI"_about git. There is a mirror of the repository on {github}[https://github.com/ruby/ruby]. ;TI"=For other resources see the {ruby-core documentation on ;TI"Gruby-lang.org}[https://www.ruby-lang.org/en/community/ruby-core/].;T@ o; ;[I"QInstall the prerequisite dependencies for building the CRuby interpreter to ;TI"run tests.;T@ o;;;;[ o;;0;[o; ;[I"C compiler;To;;0;[o; ;[I"/autoconf - 2.67 or later, preferably 2.69.;To;;0;[o; ;[I"*bison - 2.0 or later, preferably 3.4.;To;;0;[o; ;[I",gperf - 3.0.3 or later, preferably 3.1.;To;;0;[o; ;[I"Lruby - Ruby itself is prerequisite in order to build Ruby from source. ;TI"\You should use [a maintained version of Ruby](https://www.ruby-lang.org/en/downloads/).;T@ o; ;[I"JYou should also have access to development headers for the following ;TI"+libraries, but these are not required:;T@ o;;;;[ o;;0;[o; ;[I"NDBM/QDBM;To;;0;[o; ;[I" GDBM;To;;0;[o; ;[I"OpenSSL/LibreSSL;To;;0;[o; ;[I"readline/editline(libedit);To;;0;[o; ;[I" zlib;To;;0;[o; ;[I"libffi;To;;0;[o; ;[I"libyaml;To;;0;[o; ;[I"libexecinfo (FreeBSD);T@ o; ;[I"Now let's build CRuby:;T@ o;;;;[o;;0;[o; ;[I"$Checkout the CRuby source code:;T@ o;;[I"