summaryrefslogtreecommitdiff
path: root/doc/contributing/making_changes_to_stdlibs.md
diff options
context:
space:
mode:
authorStan Lo <stan.lo@shopify.com>2022-05-11 17:03:39 +0100
committerPeter Zhu <peter@peterzhu.ca>2022-05-11 15:13:01 -0400
commit26a07b8b46d0ae775d01c023146881564f285419 (patch)
treed5b96b1caf30423e9daf18eead388d77d6472d2c /doc/contributing/making_changes_to_stdlibs.md
parent019169346ab9c8ec940ebfd41c5b66347fa0f16b (diff)
Add a separate doc for contributing to stdlibs [ci skip]
co-authored-by: Peter Zhu <peter@peterzhu.ca>
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5901
Diffstat (limited to 'doc/contributing/making_changes_to_stdlibs.md')
-rw-r--r--doc/contributing/making_changes_to_stdlibs.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/doc/contributing/making_changes_to_stdlibs.md b/doc/contributing/making_changes_to_stdlibs.md
new file mode 100644
index 0000000000..ef3811ea12
--- /dev/null
+++ b/doc/contributing/making_changes_to_stdlibs.md
@@ -0,0 +1,49 @@
+# Making Changes To Standard Libraries
+
+Everything in the [lib](https://github.com/ruby/ruby/tree/master/lib) directory is mirrored from a standalone repository into the Ruby repository.
+If you'd like to make contributions to standard libraries, do so in the standalone repositories, and the
+changes will be automatically mirrored into the Ruby repository.
+
+For example, CSV lives in [a separate repository](https://github.com/ruby/csv) and is mirrored into [Ruby](https://github.com/ruby/ruby/tree/master/lib/csv).
+
+## Maintainers
+
+You can find the list of maintainers [here](https://docs.ruby-lang.org/en/master/maintainers_rdoc.html#label-Maintainers).
+
+## Build
+
+First, install its dependencies using:
+
+```
+bundle install
+```
+
+### Libraries with C-extension
+
+If the library has a `/ext` directory, it has C files that you need to compile with:
+
+```
+bundle exec rake compile
+```
+
+## Running tests
+
+All standard libraries use [test-unit](https://github.com/test-unit/test-unit) as the test framework.
+
+To run all tests:
+
+```
+bundle exec rake test
+```
+
+To run a single test file:
+
+```
+bundle exec rake test TEST="test/test_foo.rb"
+```
+
+To run a single test case:
+
+```
+bundle exec rake test TEST="test/test_foo.rb" TESTOPS="--name=/test_mytest/"
+```