Talks

How to Begin to Develop Ruby Core

EuRuKo 2016

00:00:03.550 to our next speaker he comes all the way from Japan and he's the chief engineer
00:00:11.440 it GM o people so welcome Hiroshi shibata he's going to
00:00:17.769 tell us how to help with developing the Ruby core
00:00:28.510 oh hell a house of you and how you go so
00:00:34.030 I talked to heart begin to that of Rubik or it contains the secret or Sylvia
00:00:41.050 ecosystem so my name is hero since shibata the please call me here see my twitter and
00:00:49.120 the key hub account is HS BTW who characters or praise for me
00:00:56.550 i'm from japan tokyo 15 5 hours fight so i'm happy to talk
00:01:04.540 european ruby conferences Yuriko it's the first time to technical talk outside
00:01:10.659 least as young nations so japan has
00:01:16.680 internal we conference name the Rubik i doona rubik I a
00:01:23.220 thank you so Caillou means conference so 2016 was finished a couple of week ago
00:01:31.470 so Ruby cake has a lot of speak of who speak deeply Ruby in Tanner's includes I
00:01:37.900 gather concurrency or GC etc so 20 70
00:01:43.840 points tentative status please for Twitter account name though a true
00:01:49.570 so I'm chief engineer / dream of paper
00:01:55.690 ball and a member Ruby core team also
00:02:01.090 maintain rubygems rake and a dog and psyche and more are I maintain many
00:02:09.700 other ivory on the Rue vehicle system so finally so I'm a world Dexter with a
00:02:18.010 race gossip an event we have a lot of race girls event with tokyo kyoto nagoya
00:02:25.659 and other city in japan i support to authorizers these towns
00:02:32.819 so finally I need to introduce to GMO
00:02:38.319 paper ball because our CEO and CTO support to on the hotel costs in Europe
00:02:44.349 oh thank you thank you
00:02:50.099 so Jim own people provides shell hosting server and domain registration and the
00:02:55.900 e-commerce spot home in Japan so commercial time is ending so I start
00:03:03.519 to talk to his maintainer the first section is what Sylvie Sylvie we have version of
00:03:11.860 Ruby interpreter famous implementation is a Sylvie
00:03:16.890 written by Syrian gases other implementation are Jeremy and ravines
00:03:23.410 and Appa and Mo and we have Ruby apply the standard of iso iso standard there
00:03:31.390 are sleepy and a movie only so we had difference between 1.8 and 1.9
00:03:41.370 mad mats made ruby 1.8 however p.m. virtual machine on ruby 1.9
00:03:50.590 or rita is made by cochise's of the same kind of stable version Ruby 2 point 3
00:03:57.930 use it the same way mo of ruby 1.9
00:04:03.810 so mad max ruby is restore now so i introduce
00:04:10.989 people of silica team we have a full-time connectors with sponsored
00:04:17.919 Heroku and money for us Ruby committee number is 91 people and
00:04:24.970 to both account to part against every day commit he they are hard workers
00:04:33.870 hurler it contains armena kind active committee number are 10 to 20 people
00:04:43.260 they are branch meta they are branch went down we suffered for bon jovi
00:04:49.690 depository development branch versioned 2.4
00:04:55.590 favorite branch is version 2.3 although stable branch is
00:05:01.640 2.2 and the only security maintenance punch version 2.1
00:05:09.200 there are maintained by three people named Oh Narcy and the Nagas chica and
00:05:15.930 uses on mobile we have practical methods they
00:05:23.760 maintain patent specific issue kind support at home our linux windows
00:05:30.290 obviously and saris and McCoys if you hurt proton specific issue please
00:05:38.400 ask these these people our issue to our cars
00:05:45.410 we have a plenty of mental scope so matt has the responsibility of range
00:05:52.740 design on Bri language if you have a new sink new future syntax you need to get
00:06:01.050 to accept from but it's too it's too difficult so such as I maintains our
00:06:08.160 brain and rated issues had just set and the TC and evaluate are also
00:06:15.590 causes such as string array has anyone
00:06:20.760 are painting the Ruby connectors however it is related to Ronnies design we
00:06:29.280 discussed with Matt before new implementations
00:06:35.420 standard library such as an open URI neta hdb and the URI and more are
00:06:43.040 maintained each character's it does not need to accept from but it is the
00:06:52.050 difference between Cochran cod crusted Maura we have a bundle libraries such as
00:07:01.560 psych Ruby gems and our doc it is maintained up streams outside the
00:07:09.960 Ruby code repository and noble noble who are part monster
00:07:16.069 painting and backboard else and finally documentation is maintained by
00:07:23.069 Jack I Scott so next one is a web site of a ruby
00:07:30.330 languages i introduce so there are options / see Ruby
00:07:36.439 derivative is a main entire site it's obvious I'd it uses a github repository
00:07:44.419 we welcome to translate English to other implementation as our languages and
00:07:52.580 STM is the many paucity of Ruby source code oh thanks Ruby Rong's orbs are is
00:08:01.340 option we should talk a bit by rabbi and
00:08:07.580 ftp is a website of package this vision ducks are official documentation site
00:08:15.229 so i have our responsibility for this high durability and web operations
00:08:23.000 so we are supported from our first story for CDN na
00:08:28.669 wa and casually angles a dispute distributed for our puzzle
00:08:34.760 cache is a package interval site if you
00:08:40.050 need to our rate is ruby package please use a cash Ruby languor instead of ftp
00:08:47.310 revealing org it's so fast so it is a kind user status of the story oh USA is
00:08:55.410 a certain seven point nine percent your Parisian is a
00:09:01.190 about seventeen percent Asia is
00:09:06.709 about forty percent and other nation is
00:09:11.839 five percent so so I need to describe
00:09:20.320 what off shar so such an official package of the side of the document
00:09:26.480 asians are Terra contoured by Matt it's a on the on the other hand these distant
00:09:34.370 items are not controller mods so Ruby duck course it is a different from the
00:09:40.160 docs Revere angles so I ok so and
00:09:47.080 really James end bandra and the Ruby Empire will be packaged environment
00:09:53.120 managers so name the IBM IBM and see Ruby so we cannot take over these
00:10:00.170 software we cannot so finally Ruby licenses to Chris vs
00:10:07.850 their air and Ruby license so please see filename the copying why individuals
00:10:15.290 column so Ruiz are completely OSS we did not
00:10:23.570 only develop to be committers you can develop or contribute the Ruby language
00:10:29.210 now so I introduce instruction or the
00:10:34.910 developing OSS includes Ruby core many of people say OSS is great so you
00:10:43.670 can contribute or develop OSS please the documentation our force so you imagine
00:10:50.360 documentation is easy ok I try to contribute to documentation to OSS but a
00:10:57.170 horrible documentation is had to be hard so especially Ruby situation no one
00:11:03.440 knows the true behavior or with Ruby languages it is already much noise in
00:11:10.900 documentation is a tale walk rather than the coding for the Paloma there what
00:11:17.960 documentation is by a walk so on the other hand testing and Wang
00:11:23.870 run encoder is easy ruby has a lot of tests excess a man the library's like me
00:11:31.910 test a spec and the capybara moreover now bundling and the Taurus provides us
00:11:38.899 with an insurrection of their environment if you get test fails you can sell me
00:11:47.240 too easy to get to the trackers like a key have if you if test cover is missing
00:11:54.980 for summer record you can also write new tests and summit approach
00:12:01.149 so you can read 12 is configuration or Ruby languages like our other rubygems
00:12:08.199 so you will get our like this so this instruction are has do you understand by
00:12:15.620 the GUI commenters to I I can't understand
00:12:22.009 this so I introduced to run tests or Ruby language and faculty
00:12:30.250 these instructions are best processor Ruby development includes Ruby camita
00:12:36.860 includes ruvi camita pass right card it
00:12:42.139 is the most important things next one is a test run test and test
00:12:47.630 passes and next one is pretty create our track account and the stomach to your
00:12:54.380 patch into the deadmines okay and press some it it is all done so
00:13:02.660 I give details for a test and proposal writing
00:13:08.470 how to test the rangas so this instruction these six
00:13:14.870 instructions are women set of Ruby language tests only six command it is
00:13:21.319 easy to raise one not need some middle right my see care pasta seeking men can
00:13:29.000 see and read easy and other difficult middleware not need it
00:13:34.329 you can get wrong results so I describe these results
00:13:41.410 the entry point ever make not the rake make comment is this file
00:13:48.100 name the comm om care in the Ruby depository this file contains these thus created
00:13:56.170 Tesla embarking while the main task is a make tests make
00:14:03.129 test command this task is to build by pete s movie Peter Salovey and test
00:14:10.930 basic and the test known bug bit is a ruby means a Buddha swab test
00:14:17.790 this test compounds due to simple syntax of Ruby language
00:14:24.360 like this so this assertion confirmed to cross method
00:14:29.670 becomes cross knowing variables so define the cross C and C dot the cross
00:14:37.209 returns cross stirrings
00:14:42.509 these next one these assertions proved to name
00:14:48.069 method returns module Riker em module
00:14:53.319 defined and Emma daughter named invoking returns are M strings and
00:15:00.389 here if just have a hierarchy and a
00:15:06.060 current wrong p returns a quorum be it assassin so next one is Tesla basic this
00:15:16.720 basic answer to assign method as I and the message definitional and more like
00:15:23.709 this so it is a much per assignment so a car Michael Neal so
00:15:32.069 we as a we need to assign a coracle near
00:15:46.089 here so if you are interested in developing language p.m. DC sin Turkish
00:15:53.800 and our make this helps you so sometimes our member doovy core team apprised
00:16:01.900 biggest thing down changes their first gory is a test pass or make tests as I
00:16:09.220 meant and the cus returns and the more next one is make tests or grant it is
00:16:19.180 near your side not rang gauge developer if you are
00:16:25.510 interested in raga library you can test the roller library with
00:16:32.290 these instructions I'll make tests or and environment variable name of the
00:16:38.020 tests gold roba so this or supports a party execution
00:16:47.490 like this a make this all and test go hiking j4
00:16:54.510 so it is a test case of our a class it is a
00:17:04.630 simple test to test using X in each side not the r-spec you
00:17:12.430 need to define Testament source projects test on the score like this test on the
00:17:18.220 scope passing to our I testo underscored arrow literal
00:17:24.780 these tests check to my page I instructions so it is a result eco Assad Igor so
00:17:34.590 percent are a pocket full ba echoecho so
00:17:41.250 symbol who and simple ba ra
00:17:46.980 sorry it is a simple so next one is the
00:17:52.210 taste or odor fire this fight is a test case of raga library it is a same as I
00:17:59.530 tests so it is simply x into scientists so it is a inheritance for
00:18:07.879 test unit test case so we create a robot instance and the
00:18:16.339 setting up basic instructions and
00:18:21.909 added to route a string and we assert local configurations
00:18:30.819 so test hi PSD hike on the actually
00:18:37.249 contains C API tests it is a test of our the I resize the API
00:18:45.669 if you are see existential gem also I recommend it right
00:18:52.089 recommended to run these files and those are tests oh hi exp hyphen Decker is
00:19:02.799 this task named our make tests or for you most of the Rubies to come right
00:19:11.679 artistical you can you can write a wrong each test same as your application and
00:19:19.909 Gemma library using excellent scientists make check is afoot Haskell put Ruby
00:19:29.389 language test you need to embark it before submitting
00:19:34.909 a patch or prayer requests into our Ruby core team
00:19:41.739 so next topic is wisely we use it to testify amok name the test in it and the
00:19:48.169 me test we have some bundled libraries like our
00:19:54.379 Ruby gems and our dock and psyche and anyone these upstream are not to be Cory
00:20:02.089 foster yeah I say again so we need to adopt to use several tests of wimax uses
00:20:17.210 so it is a instruction of rubygems majha CP seas are n CP CP CP and the kids
00:20:27.679 check out so we need to guarantee to walk these vandals libraries on the Ruby
00:20:34.520 core and upstream repository
00:20:40.149 so back body is too hot it's too hot
00:20:46.000 example station or overdue be James is here so Ruby gems do this version still
00:20:55.039 supports ruby 1.8 some of you to consult why got temp files dot costs
00:21:01.840 exclamations not provided ruby 1.8 we couldn't use it
00:21:09.380 on rubygems upstream a depository so we need to handle our respond to a message
00:21:16.539 across !
00:21:21.880 so okay next topic with Ruby's spec status do not Ruby spec
00:21:29.470 you know Ruby spec is a project or an exam executable specification for the
00:21:36.890 Ruby however the original project is sunset status now
00:21:43.299 so Eragon who are Ruby committer folk due respect to our release on spec
00:21:51.380 depositories it is available on github we use Ruby suspect to county to
00:22:00.409 regression tests regression behavior
00:22:05.770 you can invoke groovy spec disrespect and does a ruby code repository you can
00:22:12.140 run you need to run make up day to do this back and make tehsil respect task
00:22:21.070 so Ruby suspect it to use uses ms back
00:22:26.720 it's not an aspect however I'm expect provider r-spec
00:22:33.370 scientists case like this like this so describe do a broken it behaves like a
00:22:42.490 sling coke at it we have the ice and Kolkata encoding so it is a
00:22:49.650 child example file so but it is defined from our our specs I so respect uses are
00:22:57.370 described and the option add it with a shell to option it
00:23:03.420 provides a shoddy example in r-spec so it is a sewing append specs
00:23:12.990 yeah so please check details to
00:23:18.600 Ruby suspect repositories in gay ha if you were interested in spec
00:23:27.250 scientists and the Ruby called behaviors and
00:23:32.320 regressions please some it progressed to this lipid sorry you have to be suspect
00:23:39.360 so add hell is true or author of Jerry said are so nice to see Ruby spec so
00:23:48.340 Ruby spec helps as an implementation or Ruby right Jerry and 0 bar so we will
00:23:55.840 come to submit a new tests for our Ruby 2.3 and 2.4 features
00:24:03.540 next one is a test coverage so we have a coverage mechanism or Ruby son of the
00:24:10.179 ivories these instructions show test coverage over break so you can you need
00:24:18.010 to add cover race ecor ET or two or etc
00:24:24.429 but environment by other and run test our command so you can get this one this
00:24:32.800 is that so sorry it's more characters so
00:24:38.970 it shows that do get this do get test is noticed it is so serious status
00:24:49.880 please do to run the test and wider test
00:24:54.900 and some it it to a beretta mine or key
00:25:00.000 hub this cover is it's always welcome we are always vehicle to test coverage
00:25:06.900 increase pudsey okay so you can test Ruby language now
00:25:13.200 so it's all next topic is our Ruby code ever pain
00:25:20.750 so how request week or so we need to pass these requirements
00:25:27.530 for a future request includes are really committed so we focus or a use case leads jump
00:25:36.330 function and we focus the codes an idea
00:25:43.070 called it's too important we need to our much upper bar so it is a most important
00:25:51.120 and changing and the difficult things so however however much except some cases
00:25:59.549 without use cases it just to eat a secret so these are
00:26:05.640 Semitic ecol cases like array shift and unzipped methods it's a symmetrical
00:26:12.480 method if you found our aunt symmetrical methods so you can propose a symmetrical
00:26:20.039 message one and the system core define the POSIX
00:26:27.380 so like socket get host by name methods
00:26:33.049 it is defined by POSIX system course we
00:26:39.030 will add this system core to our Ruby methods and the
00:26:45.140 restaurant is a peg and SEGA segmentation heart so pas grave out is a much easier than
00:26:53.970 free to request it is not it is not need too much a
00:27:00.180 probar you need to attach the production called minimally production code and
00:27:07.070 writing our expected behavior or intentional behavior and
00:27:12.980 the rock fire and the results with different version of pervy we approve
00:27:19.410 your issue and fix it we reek of it
00:27:25.730 erotica is built by red wine red wine so we apply the Sun or
00:27:32.760 customizing of mainly Grizzlies decoration mailing list is a ruby color
00:27:39.810 or ruby devil or revised it is integrated to with what ruckus
00:27:48.080 so we upload to your purchased on the key
00:27:54.390 hub repository named or / movie / movie
00:28:00.230 so why we caught team uses kiha mainly so
00:28:08.160 it reads that that is only a very irate
00:28:13.170 money so not aware ever did have one so we start to consider an issue of why do
00:28:22.800 we call team does not use get not get her does not use get it contains many
00:28:30.510 other issues like searching of a release management and the better environment development
00:28:37.290 resources and more and the horribly komitas announcement it is too hot so
00:28:45.060 but I started to consider to
00:28:50.090 migrating as we am from a git repository please wait our course
00:28:58.130 so we have monthly developer meeting I entered it
00:29:03.500 so we hope to increase too transparency for the Ruby development process in the
00:29:10.850 mid in this meeting we toil the issue on red wine if you have our future requests
00:29:17.630 and no response issues sorry please this to agenda over this meeting quick passes
00:29:25.610 like this so it right it is writing by
00:29:31.220 English please join our developer meetings
00:29:36.340 so fine so I introduce communication plan of the Rubik or so we hope to
00:29:44.779 reduce to record responsibility and closes I'm working this issue some of
00:29:53.059 the unmaintained standard libraries like TK or XML TC
00:30:02.350 are extracted from the Ruby core repository
00:30:08.299 to our duty organization on github
00:30:15.549 extent library are different the Ruby committee meetin's policy and matts
00:30:22.640 approval if you interested in these extracted drivers please ask me I am
00:30:30.020 going to discuss and provides committed to you
00:30:37.240 so next topic is how to develop a week or so we have Pat home test suite named the
00:30:46.130 Ruby CI so Ruby Thea is a CIA's earthquake for
00:30:51.470 alternative / home contains the enactus Windows Mac OS and thesaurus and the BSD
00:30:59.169 Ruby CIA so it is a top phase of Ruby CI so it shows a prat home and access your
00:31:08.299 name and the bill time and branch am it is an orbit trunk branch test results
00:31:16.310 and shows a revision and the tehsil set us
00:31:21.550 so we gon t2 or green status before
00:31:26.900 reach time at the stable version or also stable value so we guarantee to work or
00:31:35.540 at home in with our Ruby packages
00:31:41.230 you can enter your server to ruby's the I we hope to as hava
00:31:47.920 to our support at home however a puffy about the home is enough
00:31:54.320 Polina so we hope to example the air a RM
00:32:01.790 architecture wizardry necklace and be asleep at home without of previously
00:32:07.760 like Natalie SD and openbsd and the windows pat home used or ms bleachy
00:32:14.330 compiler or ceiling compiler or ma Bing Darby compiles it is a good choice
00:32:23.860 if you are interested in the BCI project please ask me please ask me
00:32:30.490 so next topic is a really cycle we have the pantry stable version on christmas
00:32:38.150 day ever here in kind set us we are developing to our Ruby 2 point for
00:32:44.330 targeted 25 December in this year we add the new feature to do be 2.4 with wait
00:32:53.000 until race day in a three-masted okay so i just ate it to a backboard
00:33:00.950 process backboard process or the old version of Ruby so we already back to
00:33:07.820 old branch from a trunk or the branch from a trunk only we do
00:33:16.910 not apply a patch to trunk punch from an old version we do not apply or diversion
00:33:24.110 to tranq punch so because of you find the sum of the issue o
00:33:30.990 Lord watch a movie please try to rate as well this latest stable version will be
00:33:37.710 the most recent version of Ruby still has the same issue or a very pleased hum
00:33:44.380 it out Rocko Thank You fund our some of the effects or or the badger
00:33:52.020 we have some rules for race day like this we take care of a compatibility
00:33:59.830 with ultra generally if you we find the
00:34:05.230 regression on our new version Nancy some who are risk manager / but it
00:34:14.100 this compatibility policy is to accept with Matt yeah we needed to we
00:34:21.810 we accept to our compatibility so res
00:34:27.399 van is a security handling circuit is a heart so we have two channels or
00:34:34.080 security reports past one is a mirrorless named our security at Revere
00:34:40.030 angle org please um it secretary pot when you find
00:34:46.899 security vulnerability with this mail need to equip it with a denote
00:34:55.540 easy we are trying to handle it but however we have no second in specialized
00:35:04.390 in aruba connectors it is a baseline for work and
00:35:12.570 we run we add up to use our jacala
00:35:18.480 other channel is Hikawa so we start to use jaco van in this year or early this
00:35:26.470 year so it has a bouncy problem provided by IV v it's poison same as Merida's one
00:35:35.190 it melodies and Hakka one eyes okay
00:35:40.390 welcomed we're is Ruby 2.24 private to on the
00:35:47.950 fossil day / Ruby ke we add some broken
00:35:53.320 changes on do be 2 pi for example for unification of the integer
00:35:59.200 and the giving cold-cast mappings if you have jam or ivory and the
00:36:05.920 production application and some of your personal application please do the test
00:36:12.760 and embark with our Ruby 2 point for private to and
00:36:18.330 report our track of a new faces some of issues
00:36:23.640 so it is a great contribution with no code
00:36:29.680 it helps as a stable version release okay so conclusion so i disguised sylvie
00:36:39.430 secret from japan so who develop attila lee soffer the ocean resources of sylvie
00:36:46.740 how to develop therapy and what important of future castle in therapy
00:36:53.620 and when do the Easter diversion of therapy I described and
00:37:00.750 final words is I ask this question for you so why is Ruby
00:37:06.660 matt says our Ruby is designed to make programmers hottie for make programmers
00:37:12.730 happy so I'm happy I am happy to develop Ruby language it's more happy than only
00:37:20.830 using Ruby languages okay thank you your
00:37:36.369 you