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

Contributing file updates, remove old development file #4246

Merged
merged 8 commits into from
Dec 12, 2024

Conversation

lornajane
Copy link
Contributor

A pretty major overhaul of the contributing file. The main aims are to fill in gaps, capture informal conventions, and try to structure the information more for newcomers as well as project regulars.

A huge number of "we should write this down" issues are (at least partially) addressed in this update:

I think there's a lot here that probably isn't perfect, but let's try to merge when it's good enough to be considered an improvement on our current file, even if there are followup actions to take?

Copy link
Contributor

@ralfhandl ralfhandl left a comment

Choose a reason for hiding this comment

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

Minor editorial suggestions, formatting, and corrected links

CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
@ralfhandl ralfhandl requested a review from a team December 10, 2024 12:09
@lornajane lornajane requested a review from ralfhandl December 10, 2024 20:06
Copy link
Contributor

@ralfhandl ralfhandl left a comment

Choose a reason for hiding this comment

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

+1, only broken links and minor nits

Opened

to make this easier in the future

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
Copy link
Member

@handrews handrews left a comment

Choose a reason for hiding this comment

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

Excellent work, @lornajane , thank you so much!

I have various minor comments but no dealbreakers.

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved

### Milestones

We use milestones in GitHub to plan what should be included in future releases.
Copy link
Member

Choose a reason for hiding this comment

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

Specifically, use the oldest-release-line milestone that is relevant if we are working on multiple releases at once.

CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
* Bring the future closer by making changes that are in line with future 3.x releases and the planned OpenAPI 4.x (Moonwalk) specification as the details of that become available.
* Make the specification document clearer or easier to understand.

A minor release is due when there are some meaningful features (including one or a small number of headline features).
Copy link
Member

Choose a reason for hiding this comment

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

I don't think we defined "headline feature" although it's fairly obvious. Just commenting in case we want to give it a definition- I'm fine with it as-is, though.

4. Use "OpenAPI Object" instead of "root".
5. Fixed fields are monospaced.
6. Field values are monospaced in JSON notation: `true`, `false`, `null`, `"header"` (with double-quotes around string values).
7. A combination of fixed field name with example value uses JS notation: `in: "header"`, combining rules 5 and 6.
Copy link
Member

Choose a reason for hiding this comment

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

I think of this as YAML notation, although now that I read this I realize that JS might allow bar key names and require quoted values, so I guess this makes sense. But to folks like me who avoid JS like the plague, it's not the most obvious statement. I'm not going to be upset if it's left as-is, though.

5. Fixed fields are monospaced.
6. Field values are monospaced in JSON notation: `true`, `false`, `null`, `"header"` (with double-quotes around string values).
7. A combination of fixed field name with example value uses JS notation: `in: "header"`, combining rules 5 and 6.
8. An exception to 5-7 is colloquial use, for example "values of type `array` or `object`" - "type" is not monospaced, so the monospaced values aren't enclosed in double quotes.
Copy link
Member

Choose a reason for hiding this comment

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

Can we add some note that "primitive" is not a formal type and should not be written primitive? We messed this up in the patch releases in a few places.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure how to provide an exhaustive list of words that shouldn't be formatted. The list above should help us just format the ones we do want, I think?

Copy link
Member

Choose a reason for hiding this comment

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

Oh, I definitely wouldn't try to be exhaustive, and maybe there's a better way to handle it than a word list.

The problem we have in the new patch releases is that primitive looks like a literal type value impacting the style field, when really it's a category encompassing the literal values number, integer, string, boolean, and "null". That's confusing, although we do use "primitives" with an example using a string and in an example in another section.

Ideally, our style guide would help us avoid these category-vs-literal-value errors (although I don't know that we have any other such errors).

style-guide.md Outdated Show resolved Hide resolved
Comment on lines +33 to +34
* JSON Schema keywords -> "keyword"
* OpenAPI fixed fields -> "field"
Copy link
Member

Choose a reason for hiding this comment

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

Possibly too much of a corner case, but I do sometimes talk about Schema Object "fields" when talking about it in the context of OAS Objects as a whole, to avoid complicated "fields or keywords" phrasing. If we want a rule about this it might be worth an issue to discuss rather than holding up this PR.

@lornajane lornajane requested review from handrews, ralfhandl and a team December 11, 2024 20:37
Copy link
Member

@handrews handrews left a comment

Choose a reason for hiding this comment

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

I'm happy with this as-is, any remaining concerns are more open-ended and can be handled as follow-up discussions.

@lornajane lornajane merged commit 3326a4b into OAI:main Dec 12, 2024
2 checks passed
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.

3 participants