Skip to content

Commit c3b2d6d

Browse files
committed
Add guidelines for handling breaking changes
1 parent 492c0bf commit c3b2d6d

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

CONTRIBUTING.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,18 @@ We use tabs for code indentation, not spaces. To make this easier, NHibernate ha
104104

105105
After submitting your pull request, come back later to check the outcome of automated builds. If some have failed, they will be listed in your pull request with a link to the corresponding TeamCity build. Find out in the build which tests are newly failing, and take appropriate action. Some of those builds may have known failing tests, which does not trigger a build failure. In this case a *Comparison.txt* file in build Artifacts may help finding which failing tests are not known failing tests and must be addressed.
106106

107+
## Breaking Changes
108+
109+
* Avoid binary breaking changes (changes that make previously compiled user assemblies fail to load or run: removed/renamed public members, signature changes, sealed/abstract changes impacting inheritance, etc.).
110+
* Source and behaviour breaking changes are acceptable when they provide clear value and are documented.
111+
112+
When you introduce any breaking change:
113+
1. Clearly state it in the PR description under a heading: `Breaking Changes` (list each item).
114+
2. Provide a concise migration note (old → new) for each item.
115+
3. Update tests without deleting coverage.
116+
117+
See Microsoft guidance on breaking changes for libraries [5][6] for definitions and recommended practices.
118+
107119
## Further Discussion
108120

109121
The NHibernate team monitors GitHub regularly, so your request will be noticed. If you want to discuss it further, you are welcome to post to the [nhibernate-development mailing list][4].
@@ -116,3 +128,5 @@ The NHibernate community values your contributions. Thank you for the time you h
116128
[2]: https://github.com/nhibernate/nhibernate-core/
117129
[3]: http://www.editorconfig.org/
118130
[4]: http://groups.google.com/group/nhibernate-development
131+
[5]: https://learn.microsoft.com/en-us/dotnet/standard/library-guidance/breaking-changes
132+
[6]: https://learn.microsoft.com/en-us/dotnet/core/compatibility/library-change-rules

0 commit comments

Comments
 (0)