csharplang/proposals
Eyal Solnik 30b064fd95 Remove abbreviations from the text (#68)
* Update proposal-template.md
* Remove abbreviation from the text

Some people aren't native English speakers and they might have problems understanding the text when abbreviations are used.
2017-02-13 14:59:12 -08:00
..
csharp-7.1 Add folders and READMEs 2017-01-27 11:02:27 -08:00
csharp-8.0 Add folders and READMEs 2017-01-27 11:02:27 -08:00
inactive Add folders and READMEs 2017-01-27 11:02:27 -08:00
rejected Add folders and READMEs 2017-01-27 11:02:27 -08:00
async-streams.md Add directory structure for repo. 2017-01-06 13:19:16 -08:00
auto-prop-field-attrs.md Create auto-prop field attributes proposal specification (#25) 2017-02-09 11:55:28 -08:00
covariant-returns.md Add proposal for covariant return types. (#47) 2017-02-09 13:06:45 -08:00
default-interface-methods.md Add spec for default interface methods. (#51) 2017-02-09 16:30:35 -08:00
expression-variables-in-initializers.md Add some championed proposals. 2017-02-09 09:02:29 -08:00
improved-common-type.md Add some championed proposals. 2017-02-09 09:02:29 -08:00
intptr-operators.md Updating the intptr-operators proposal to include the list of operators. (#50) 2017-02-13 11:05:50 -08:00
null-coalecing-assignment.md Add question regarding &&= to the ??= spec 2017-02-13 11:27:45 -08:00
null-conditional-await.md Add some championed proposals. 2017-02-09 09:02:29 -08:00
nullable-reference-types.md Fix typo in the nullable reference types proposal 2017-02-03 11:18:41 +07:00
patterns.md Add an early (already out-of-date) draft of pattern-matching spec. (#44) 2017-02-09 12:24:13 -08:00
private-protected.md Add some championed proposals. 2017-02-09 09:02:29 -08:00
proposal-template.md Remove abbreviations from the text (#68) 2017-02-13 14:59:12 -08:00
README.md Consitency updates between C# and VB repos. 2017-02-01 16:12:01 -05:00
readonly-ref.md Adding the "Readonly references" proposal (#28) 2017-02-08 12:56:35 -08:00
records.md Add some championed proposals. 2017-02-09 09:02:29 -08:00

C# Language Proposals

Language proposals are living documents describing the current thinking about a give language feature.

Proposals can be either active, inactive, rejected or done. Active proposals are stored directly in the proposals folder, inactive and rejected proposals are stored in the inactive and rejected subfolders, and done proposals are archived in a folder corresponding to the language version they are part of.

Lifetime of a proposal

A proposal starts its life when the language design team decides that it might make a good addition to the language some day. Typically it will start out being active, but if we want to capture an idea without wanting to work on it right now, a proposal can also start out in the inactive subfolder. Proposals may even start out directly in the rejected state, if we want to make a record of something we don't intend to do. For instance, if a popular and recurring request is not possible to implement, we can capture that as a rejected proposal.

The proposal may start out as an idea on the mailing list, or it may come from discussions in the LDM, or arrive from many other fronts. The main thing is that the design team feels that it should be done, and that there's someone who is willing to write it up.

A proposal is active if it is moving forward through design and implementation towards an upcoming release. Once it is completely done, i.e. an implementation has been merged into a release and the feature has been specified, it is moved into a subdirectory corresponding to its release.

If a feature turns out not to be likely to make it into the language at all, e.g. because it proves unfeasible, does not seem to add enough value or just isn't right for the language, it will be rejected, and moved to the corresponding subfolder. If a feature has reasonable promise but is not currently being prioritized to work on, it is inactive and will be moved to the corresponding subfolder. It is perfectly fine for work to happen on inactive or rejected proposals, and for them to be resurrected later. The categories are there to reflect current design intent.

Discussion of proposals

Feedback and discussion happens on the C# design mailing list. When a new proposal is added, it should be announced on the mailing list.