[#48745] [ruby-trunk - Bug #7267][Open] Dir.glob on Mac OS X returns unexpected string encodings for unicode file names — "kennygrant (Kenny Grant)" <kennygrant@...>

17 messages 2012/11/02

[#48773] [ruby-trunk - Bug #7269][Open] Refinement doesn't work if using locate after method — "ko1 (Koichi Sasada)" <redmine@...>

12 messages 2012/11/03

[#48847] [ruby-trunk - Bug #7274][Open] UnboundMethods should be bindable to any object that is_a?(owner of the UnboundMethod) — "rits (First Last)" <redmine@...>

21 messages 2012/11/04

[#48854] [ruby-trunk - Bug #7276][Open] TestFile#test_utime failure — "jonforums (Jon Forums)" <redmine@...>

14 messages 2012/11/04

[#48988] [ruby-trunk - Feature #7292][Open] Enumerable#to_h — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

40 messages 2012/11/06

[#48997] [ruby-trunk - Feature #7297][Open] map_to alias for each_with_object — "nathan.f77 (Nathan Broadbent)" <nathan.f77@...>

19 messages 2012/11/06

[#49001] [ruby-trunk - Bug #7298][Open] Behavior of Enumerator.new different between 1.9.3 and 2.0.0 — "ayumin (Ayumu AIZAWA)" <ayumu.aizawa@...>

12 messages 2012/11/06

[#49018] [ruby-trunk - Feature #7299][Open] Ruby should not completely ignore blocks. — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

13 messages 2012/11/07

[#49044] [ruby-trunk - Bug #7304][Open] Random test failures around test_autoclose_true_closed_by_finalizer — "luislavena (Luis Lavena)" <luislavena@...>

11 messages 2012/11/07

[#49196] [ruby-trunk - Feature #7322][Open] Add a new operator name #>< for bit-wise "exclusive or" — "alexeymuranov (Alexey Muranov)" <redmine@...>

18 messages 2012/11/10

[#49211] [ruby-trunk - Feature #7328][Open] Move ** operator precedence under unary + and - — "boris_stitnicky (Boris Stitnicky)" <boris@...>

20 messages 2012/11/11

[#49229] [ruby-trunk - Bug #7331][Open] Set the precedence of unary `-` equal to the precedence `-`, same for `+` — "alexeymuranov (Alexey Muranov)" <redmine@...>

17 messages 2012/11/11

[#49256] [ruby-trunk - Feature #7336][Open] Flexiable OPerator Precedence — "trans (Thomas Sawyer)" <transfire@...>

18 messages 2012/11/12

[#49354] review open pull requests on github — Zachary Scott <zachary@...>

Could we get a review on any open pull requests on github before the

12 messages 2012/11/15
[#49355] Re: review open pull requests on github — "NARUSE, Yui" <naruse@...> 2012/11/15

2012/11/15 Zachary Scott <zachary@zacharyscott.net>:

[#49356] Re: review open pull requests on github — Zachary Scott <zachary@...> 2012/11/15

Ok, I was hoping one of the maintainers might want to.

[#49451] [ruby-trunk - Bug #7374][Open] File.expand_path resolving to first file/dir instead of absolute path — mdube@... (Martin Dubé) <mdube@...>

12 messages 2012/11/16

[#49463] [ruby-trunk - Feature #7375][Open] embedding libyaml in psych for Ruby 2.0 — "tenderlovemaking (Aaron Patterson)" <aaron@...>

21 messages 2012/11/16
[#49494] [ruby-trunk - Feature #7375] embedding libyaml in psych for Ruby 2.0 — "vo.x (Vit Ondruch)" <v.ondruch@...> 2012/11/17

[#49467] [ruby-trunk - Feature #7377][Open] #indetical? as an alias for #equal? — "aef (Alexander E. Fischer)" <aef@...>

13 messages 2012/11/17

[#49558] [ruby-trunk - Bug #7395][Open] Negative numbers can't be primes by definition — "zzak (Zachary Scott)" <zachary@...>

10 messages 2012/11/19

[#49566] [ruby-trunk - Feature #7400][Open] Incorporate OpenSSL tests from JRuby. — "zzak (Zachary Scott)" <zachary@...>

11 messages 2012/11/19

[#49770] [ruby-trunk - Feature #7414][Open] Now that const_get supports "Foo::Bar" syntax, so should const_defined?. — "robertgleeson (Robert Gleeson)" <rob@...>

9 messages 2012/11/20

[#49950] [ruby-trunk - Feature #7427][Assigned] Update Rubygems — "mame (Yusuke Endoh)" <mame@...>

17 messages 2012/11/24

[#50043] [ruby-trunk - Bug #7429][Open] Provide options for core collections to customize behavior — "headius (Charles Nutter)" <headius@...>

10 messages 2012/11/24

[#50092] [ruby-trunk - Feature #7434][Open] Allow caller_locations and backtrace_locations to receive negative params — "sam.saffron (Sam Saffron)" <sam.saffron@...>

21 messages 2012/11/25

[#50094] [ruby-trunk - Bug #7436][Open] Allow for a "granularity" flag for backtrace_locations — "sam.saffron (Sam Saffron)" <sam.saffron@...>

11 messages 2012/11/25

[#50207] [ruby-trunk - Bug #7445][Open] strptime('%s %z') doesn't work — "felipec (Felipe Contreras)" <felipe.contreras@...>

19 messages 2012/11/27

[#50424] [ruby-trunk - Bug #7485][Open] ruby cannot build on mingw32 due to missing __sync_val_compare_and_swap — "drbrain (Eric Hodel)" <drbrain@...7.net>

15 messages 2012/11/30

[#50429] [ruby-trunk - Feature #7487][Open] Cutting through the issues with Refinements — "trans (Thomas Sawyer)" <transfire@...>

13 messages 2012/11/30

[ruby-core:50306] Towards a better process for changing Ruby

From: Magnus Holm <judofyr@...>
Date: 2012-11-29 08:35:29 UTC
List: ruby-core #50306
Hey folks,

Recently I've seen a lot of snarky tweets about the process around
changes in Ruby. It seems to me that there *is* a real problem here,
and I feel like this should be discussed here in the open.

I don't have all the details here so I'll try to summarize the current
situation and then you'll have to correct any misunderstandings and
share your perspective.

## State of Ruby

Ruby is mature, and I think it's great that matz has decided to
continue evolving the language without making breaking changes (like
Perl 6 or Python 3).

We have several alternative implementations of Ruby (JRuby and
Rubinius being the most popular one) which tries to keep up-to-date
with the changes that matz approves and are implemented in MRI.

## How does Ruby change?

There are typically two classes of changes:

(1) New functionality. Examples: caller_locations, TracePoint, refinements

(2) Spec changes. Examples: Changing #lines to Array.

## Current process

The current process seems something like this:

1. Someone opens a bug report.
2. Discussions.
3. matz acknowledges that it's something we should fix.
4. Discussions.
5. matz approves the whole or parts of the proposed changes.
6. It's implemented pretty quickly in trunk.

## Problems

I think one of the biggest problems is that the 3rd and 5th step often
happens too close to each other (sometimes it's in the same email!).
This means that an issue can go from "new" to "implemented" in just a
few days, and we're missing value feedback from the community.

For functionality changes, it would be very helpful to get feedback
from people working with alternative implementations. There are
certain changes that can be more difficult (or easier) to implement in
other implementations. It would be preferable if we can treat the
other implementations as first-class citizens, and design changes so
they can be implemented outside of MRI too.

Example: Some implementations might have more or less tracing details
available; how does TracePoint handle other events than the one MRI
provides?

I also think that functionality that can be replicated in three
different implementations will be more solid than functionality that's
designed around MRI's current architecture.

For spec changes, it would be helpful if we could actually see the
impact of the changes. There are some people here who works on big
codebases (e.g. Rails) and might know the impact of the changes. And
even if they don't know it off-hand, they might be able to run the
test suites with a patch.

Example: I know for certain that I've depended on #lines being an
Enumerator (e.g. lines.with_index), but I have no idea how common it
is.

If we wish to avoid major changes we need to know the impact of the changes.

## My proposed solution

While we're all envy of Python's PEPs, I don't think it will work for Ruby.

So I'm only proposing three things:

1. More time between a change is proposed and accepted (let's say, 7 days).
2. A list of proposed changes (this could just be a Redmine
category/tag; just a way for people to get a big list of all pending
changes).
3. More focus on updating RubySpec. A change shouldn't get accepted if
no-one is able to write specs for it in the 7-day-timeframe.

I think that this should have minimal impact on the current workflow,
and should hopefully give us better feedback from the community.

--

Magnus Holm

In This Thread

Prev Next