-
Notifications
You must be signed in to change notification settings - Fork 18
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
Add initial pass of deprecation guide post RFC #141
Conversation
Signed-off-by: Tom Hulton-Harrop <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a writer, the near 100% omission of sentence-completing periods (".") raises an eyebrow 😉, but otherwise this is clearly written. I just have a few comments.
guides/deprecation.md
Outdated
## Philosophy | ||
|
||
- When modifying existing code that external customers rely on, we should strive wherever possible to not break them when making changes | ||
- If code is to be changed or removed, we should let customers know ahead of time with a reasonable notice period (approximately 1 release (2-3 months)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is "2-3 months" accurate going forward?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm yeah might be more like 3-4 given when the last release happened 🤔 Or just omit and say 1 release
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer the latter. No need to reference time when release sequence is more important here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Release will start accelerating as we become better at making them and as feature stabilize (requiring less testing churn). However, a concern with saying 1 release is that what if someone deprecates a feature or API call right before the next release. Maybe we can reference 1 full release cycle?
😅 sorry, I just picked a convention and tried to be consistent, I can go through and add them all (I just didn't want a mix of having some on some lines any not on others). Thanks for the feedback, will take a look back tomorrow 👍 Cheers! |
Add apostrophe Co-authored-by: William Hayward <[email protected]> Signed-off-by: Tom Hulton-Harrop <[email protected]>
a049261
to
f09a0eb
Compare
guides/deprecation.md
Outdated
``` | ||
|
||
- Add an announcement to the Discord Impactful Change channel | ||
- Note: If you do not have permissions for this, please contact the sig your deprecation applies to and someone will post the impactful change announcement on your behalf |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here and in the next section the guide mentions locating the responsible sig for the deprecation change, but the sig feature matrix isn't linked until the very last section, so might be useful to link it sooner so that a new user can easily discover how to look-up the code-owner sig for the file(s) they are touching.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah good spot! I can add that here too, thanks for the feedback @cgalvan 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually I had a think about this and with the PR, the author should be notified of the code owner automatically, but I can make an explicit mention of this to be clearer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good. If we have an example of a deprecation it may be worth referring to it with PR links to assist the community in understanding what an overall deprecation looks like from start to end. I'm thinking about this especially because of the 2-steps: "O3DE_DEPRECATION_NOTICE" followed by "AZ_DEPRECATED". This can always be added later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to see the timeline resolved (ie, 1 release, 1 full release cycle, or 2-3 months) before I am willing to sign off on the plan. Otherwise, looks good.
That's fair, I think at this stage in the project we should go with 1 release right now which is largely what engineers have been doing already. If/when releases become more regular we could adjust this but I think that's a good starting option. I'll updating the wording to clarify. |
Co-authored-by: William Hayward <[email protected]> Signed-off-by: Tom Hulton-Harrop <[email protected]>
Signed-off-by: Tom Hulton-Harrop <[email protected]>
7b214ce
to
0925b47
Compare
Signed-off-by: Tom Hulton-Harrop <[email protected]>
@willihay, @Ulrick28, @tonybalandiuk, @cgalvan - I've made some updates following your feedback. Once you're happy let me know and I'll get this merged. Thanks again for your time looking at this 👍 |
As an reader, IMHO the term deprecation can have a narrow view ie I should follow this guide when I am removing things, not when I am revising an API etc. Its also asking more cognitive process from non-english speakers. Its probably healthier to have this focus on "Breaking changes ARE deprecation changes" ie deprecate the old thing, introduce the thing. I would:
|
@lmbr-pip There is a list of things that constitute a breaking change (see I'll make a couple of the updates you mentioned when I get time but then I'd really like to merge this at least as version 1.0. I'd then be happy for to to create a follow-up PR to make some additional changes/updates. Thanks! |
Signed-off-by: Tom Hulton-Harrop <[email protected]>
@lmbr-pip I have made some additional changes regarding your feedback (see 205ea1f). I don't agree formatting changes should be included here, they are out of scope of the topic of deprecation. There is already information in the doc about how to deprecate things by notifying SIGs etc. I would really appreciate if you could approve in the current state and if you would like to make further updates/additions please follow the process steps at the top of the doc. Thanks! |
Am happy to disagree and commit on using deprecation but I still think its confusing and overly narrow. We really want folks to use this guide when renaming or adding breaking changes to an API, many folks are going to miss that this is "deprecation" Yes, you provide rename as an example, but its halfway through the document. I have already had this confusion with one developer who renamed an API without a) deprecating the old API and b) adding a new renamed API - they did not consider this to be a "deprecating" change as they weren't "removing" functionality but instead went straight to breaking the API. And yes, we can solve that through better education, but I want to call out the risks in starting with "deprecation" as the main action of this guide. As to the notification guide, again, yes it exists, but most folks can't find it and so we do not follow it consistently. Linking and highlighting those expectations here would help clarify that. |
Thanks for the feedback @lmbr-pip. I understand your concern, so would your proposed solution to be to rename the document? That seems like the biggest point of contention right now is that right? We could call is |
@hultonha I didn't see your comment. I think we should publish this as is, so we can start using the guide. We can rename after the fact (or cover with linking overview documentation) |
Okay thanks @lmbr-pip, I'm going to merge now. Thank you! |
This is a follow-on from the O3DE Deprecation Strategy RFC.
This is a first pass at creating a deprecation document engineers can use as a guide. It is not perfect nor exhaustive, but can be something we continue to refine and improve over time.
Signed-off-by: Tom Hulton-Harrop [email protected]