Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the lifecycle of a language feature documentation. #4143

Merged
merged 4 commits into from
Nov 4, 2024

Conversation

kallentu
Copy link
Member

@kallentu kallentu commented Oct 28, 2024

I've been working on adding to this doc on and off for the last few weeks and I wanted it to reflect my experience and learnings from making language features.

I highly recommend "View file" so you can see the way tips and notes are displayed.

cc. @dart-lang/language-team feel free to review if you'd like. I'll tag a few of you, but I welcome any review. This doc should represent how our team works on and communicates languages features.

Changes

  • Reformatted some of the sections, added some more info, removed some info. Added some tips and resources that I've found helpful.

  • The changes are written realistically, and this isn't an aspirational doc. I've done all the steps that I've written down, with the exception of sending an email to the team to let them know that work is starting on a certain feature (although, I would like to do that for the next language feature I work on).

  • Added a table of contents with 7 different sections, in somewhat the order that we do them in. Some things run concurrently or we might go back and forth in some stages, but this is the general outline.

    • I've split the sections more granularly so it's clear what steps someone needs to take. (e.g. from Feature Spec -> Feature Project -> Meta issue -> other implementation issues)
  • I tried to be descriptive about each section and what resources/checklists to use. Might still be missing some parts (especially in the migration and implementation sections), but we can iterate.

  • I've added @itsjustkevin 's script for generating new issues for a feature. It simplifies the process and needing to remember what issues or teams to talk to.

Copy link
Member

@stereotype441 stereotype441 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! Thank you, Kallen 😃

Copy link
Member

@mit-mit mit-mit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great overall! Just a few comments.

doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved

- The related `request` and `feature` issues (if they exist)
We'll [create a project](https://github.com/orgs/dart-lang/projects) in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I much prefer using issues over projects; projects get unwieldy fast, and are harder for most to consume. I think especially given GitHub is working on rolling out support for sub-issues, we should not recommend using projects, and just stick with meta-issues for now. That also seems like it's what is being discussed below?

https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/adding-sub-issues

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to keep this for now. I feel like we've always used projects, even if we do have a meta issue. Plus, as being someone trying to get an understanding of all the open bugs or feedback, it's useful to have them all linked together in one project to look at and they might not always be covered by the umbrella of sub-issues that stem from the one meta issue.

I saw the new sub-issues feature and I haven't had a chance to use it yet. I'll give it a shot for organizing enum shorthands and I'll update the doc once we do.

Copy link
Member

@munificent munificent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thank you! I am somewhat embarrassed to admit that I learned a lot going through this.

doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved
4. [Team Communication](https://github.com/dart-lang/language/blob/main/doc/life_of_a_language_feature.md#team-communication) (eg. kick-off meetings)
5. [Implementation and Testing](https://github.com/dart-lang/language/blob/main/doc/life_of_a_language_feature.md#implementation-and-testing)
6. [Migrations](https://github.com/dart-lang/language/blob/main/doc/life_of_a_language_feature.md#migrations)
7. [Shipping](https://github.com/dart-lang/language/blob/main/doc/life_of_a_language_feature.md#shipping)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once I learned that GitHub will auto-generate a live TOC for you:

Screenshot 2024-11-01 at 5 40 41 PM

I stopped hand-maintaining them. I won't tell you how long it took me to discover this feature.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeaah, I knew about that feature, but purposefully made a TOC. If we prefer, we can remove it, I just really like showing all the sections up front at the start of the document.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping SGTM if you like it.

doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved
doc/life_of_a_language_feature.md Show resolved Hide resolved
doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved
doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved
doc/life_of_a_language_feature.md Outdated Show resolved Hide resolved
@kallentu
Copy link
Member Author

kallentu commented Nov 4, 2024

Gonna merge this PR now. I can make more follow-up changes if we feel strongly about anything else. Thanks everyone!

@kallentu kallentu merged commit 48d3cbd into main Nov 4, 2024
3 checks passed
@kallentu kallentu deleted the update-language-cycle branch November 4, 2024 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants