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 backward compatibility promise in CONTRIBUTING.md to reflect HIP 0004 #13045

Open
banjoh opened this issue May 17, 2024 · 3 comments · May be fixed by #13048
Open

Update backward compatibility promise in CONTRIBUTING.md to reflect HIP 0004 #13045

banjoh opened this issue May 17, 2024 · 3 comments · May be fixed by #13048
Labels

Comments

@banjoh
Copy link

banjoh commented May 17, 2024

In the Semantic Versioning section of CONTRIBUTING.md document, the backward compatibility promise does not align to HIP-0004

CONTRIBUTING.md

We also try very hard to not change publicly accessible Go library definitions inside of the pkg/ directory of our source code.

  • This ought to say public functions MUST not be changed in the pkg/ directory

Go libraries inside of pkg/ SHOULD remain backward compatible, though code inside of cmd/ and internal/ may be changed from release to release without notice.

  • SHOULD ought to be changed to MUST
  • Question: Since cmd/ is meant to be internal code, should have all code that isn't meant to be a subcommand live in cmd/helm/internal, to allow ease of sharing code within the cmd/helm package, but ensure no one can import that code?

The section should point to HIP-0004

HIP-0004

programs using the Helm Go API will continue to compile

  • Should this also include changing functionality? If a public function/method should probably not change overall internal functionality e.g if a change removes previous functionality and makes the function a no-op, perhaps this should not be allowed.
@scottrigby
Copy link
Member

@banjoh thanks for making this follow-up issue! Adding my replies from slack here for better transparency.

Should this also include changing functionality?

HIP-0004 covers that point, indirectly, by linking to another article that covers it:

exported Go APIs will remain compatible as per this article

that article, under “Add configuration methods”, says:

So far we’ve talked about overt breaking changes, where changing a type or a function would cause users’ code to stop compiling. However, behavior changes can also break users, even if user code continues to compile…

@scottrigby
Copy link
Member

how about changing this:

We also try very hard to not change publicly accessible Go library definitions inside of the pkg/ directory of our source code.
to something like:

We also remain committed to not change publicly accessible Go library definitions inside of the pkg/ directory of our source code in a non-backwards-compatible way.

and link to the HIP like you suggested, for more details on Helm’s minor and patch release backwards-compatibility rules before the summary bulletin list?

@banjoh
Copy link
Author

banjoh commented May 17, 2024

I'll incorporate your suggestions in a PR.

Leaving the description as is, else comments won't make sense afterwards :)

@banjoh banjoh changed the title Update backward compatibility promises in CONTRIBUTING.md and HIP 0004 Update backward compatibility promise in CONTRIBUTING.md to reflect HIP 0004 May 20, 2024
@banjoh banjoh linked a pull request May 20, 2024 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants