crystal-lang / crystal

The Crystal Programming Language
https://crystal-lang.org
Apache License 2.0
19.45k stars 1.62k forks source link

Central place to host RFCs #7267

Closed j8r closed 5 years ago

j8r commented 5 years ago

What's an RFC?

RFC means Request For Comments. Essentially, it's a publication describing a change to perform. Other community are invited to share their opinions on it.

Why we need a central place to host them

As now their are usually issues in this repo tagged [RFC], sometimes PR too. Their state are difficult to track, and that's not rare to not find them back. This leads to having hard time to recall decisions that was made for a particular topic.

Suggestion

Similar to https://github.com/rust-lang/rfcs, Crystal could have https://github.com/crystal-lang/rfcs too. This isn't perfect, time/metadata are missing, but it's still a lot better than nothing.

asterite commented 5 years ago

Duplicate of #4944

I still think it might be a good idea, though...

RX14 commented 5 years ago

The forums, if anywhere.

RX14 commented 5 years ago

I suggest you bring this up on the forum

asterite commented 5 years ago

@RX14 Ooooh... that's an excellent idea! We should probably have an RFCs category in the forums.

straight-shoota commented 5 years ago

The forum is a great place for an initial discussion, brainstorming etc. But when it comes to working out the details, a PR-based system is probably far superior. It represents current state and history of discussion and gives context to comments focusing on individual aspects. That's hardly possible to keep track of in a forum thread.

RX14 commented 5 years ago

@straight-shoota but an RFC is for working out the plan, before something is implemented into code

straight-shoota commented 5 years ago

The RFC procedure to working out a plan is, someone makes a detailed proposal (this can come from a discussion in the forum) and submits this proposal for review, as a request for comments. Then people get to comment on and improve the details of the proposal and it finally gets either approved and implemented or disapproved. This reviewing process fits exactly to the concept of pull requests. Leading such discussions in a linear-only forum thread will have everyone loose their sanity.

j8r commented 5 years ago

Sorry @asterite, didn't see the previous issue about hosting RFCs. When writing the title, RFCs were suggested 😅 . Having them as text would be so much easier for searching keywords locally. Another good point is migration – actually every RFC is lost if for a reason or another, Crystal goes out of GitHub.

RX14 commented 5 years ago

@straight-shoota the github PR interface is very linear. I struggle to see the benefit.

Doing any kind of review on anything 1000+ lines (which RFC PRs will be, since they cannot be split up) is hell anywhere. This is why we prefer smaller PRs to larger ones on github, but that's simply not possible in an RFC document which must be a cohesive whole.

The only sane process for editing an RFC is to appoint an editor, which is responsible for translating the concepts into text, then debate the concepts in multiple threads. I don't see how it can be done on Github, and even on the forums it'll be difficult. It would have to translate as each RFC having a category on the forum, or more likely a tag.

proyb6 commented 5 years ago

Perhaps, try Kanban for Github?