Skip to content

Commit be6fe7d

Browse files
Add breaking changes policy (#6585) (#6595)
* Add breaking changes policy * Add release notes to index * Fix docs * Change heading level * Fix formatting * Fix formatting Co-authored-by: Steve Gordon <[email protected]>
1 parent ebde26a commit be6fe7d

7 files changed

+39
-34
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ test-results/*
3030
*.sbr
3131
*.DotSettings.user
3232
obj/
33-
[Rr]elease*/
33+
[Rr]elease/
3434
_ReSharper*/
3535
_NCrunch*/
3636
[Tt]est[Rr]esult*

docs/index.asciidoc

+5-8
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@
33
[[elasticsearch-net-reference]]
44
= Elasticsearch .NET Client
55

6-
////
7-
IMPORTANT NOTE
8-
==============
9-
This file has been generated from https://github.com/elastic/elasticsearch-net/tree/master/src/Tests/Tests/index.asciidoc.
10-
If you wish to submit a PR for any spelling mistakes, typos or grammatical errors for this file,
11-
please modify the original csharp file found at the link and submit the PR with that change. Thanks!
12-
////
6+
:net-client: Elasticsearch .NET Client
7+
138

149
include::{asciidoc-dir}/../../shared/attributes.asciidoc[]
1510

@@ -35,4 +30,6 @@ include::query-dsl.asciidoc[]
3530

3631
include::aggregations.asciidoc[]
3732

38-
include::redirects.asciidoc[]
33+
include::redirects.asciidoc[]
34+
35+
include::release-notes/release-notes.asciidoc[]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[[breaking-changes-policy]]
2+
== Breaking changes policy
3+
4+
The {net-client} source code is generated from a https://github.com/elastic/elasticsearch-specification[formal specification of the Elasticsearch API]. This API specification is large, and although it is tested against hundreds of Elasticsearch test files, it may have discrepancies with the actual API that result in issues in the {net-client}.
5+
6+
Fixing these discrepancies in the API specification results in code changes in the {net-client}, and some of these changes can require code updates in your applications.
7+
8+
This section explains how these breaking changes are considered for inclusion in {net-client} releases.
9+
10+
[discrete]
11+
==== Breaking changes in patch releases
12+
13+
Some issues in the API specification are properties that have an incorrect type, such as a `long` that should be a `string`, or a required property that is actually optional. These issues can cause the {net-client} to not work properly or even throw exceptions.
14+
15+
When a specification issue is discovered and resolved, it may require code updates in applications using the {net-client}. Such breaking changes are considered acceptable, _even in patch releases_ (e.g. 7.17.0 -> 7.17.1), as they introduce stability to APIs that may otherwise be unusable.
16+
17+
[discrete]
18+
==== Breaking changes in minor releases
19+
20+
Along with these bug fixes, the API specification is constantly refined, more precise type definitions are introduced to improve developer comfort and remove ambiguities. The specification of often-used APIs is fairly mature, so these changes happen generally on less often used APIs. These changes can also cause breaking changes requiring code updates which are considered _acceptable in minor releases_ (e.g. 8.0 -> 8.1).
21+
22+
[discrete]
23+
==== Breaking changes in major releases
24+
25+
Major releases (e.g. 7.x -> 8.x) can include larger refactorings of the API specification and the framework underlying the {net-client}. These refactorings are considered carefully and done only when they unlock new important features or new developments.
26+
27+
[discrete]
28+
==== Elasticsearch API stability guarantees
29+
30+
All Elasticsearch APIs have stability indicators, which imply potential changes. If an API is `stable` only additional non-breaking changes are added. In case of `experimental` APIs, breaking changes can be introduced any time, which means that these changes, will also be reflected in the {net-client}.

docs/release-notes/release-notes-8.0.0-generated.asciidoc

-9
This file was deleted.

docs/release-notes/release-notes-8.0.0-human.asciidoc

-1
This file was deleted.

docs/release-notes/release-notes-8.0.0.asciidoc

+1-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,4 @@
22
[[release-notes-8.0.0]]
33
== Release-Notes 8.0.0
44

5-
include::release-notes-8.0.0-human.asciidoc[]
6-
include::release-notes-8.0.0-generated.asciidoc[]
7-
8-
5+
Coming soon!
+2-11
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
[[release-notes]]
22
= Release notes
33

4-
[partintro]
5-
--
6-
Review important information about 8.0.x releases.
7-
8-
* <<release-notes-8.0.0>>
9-
--
10-
11-
12-
13-
include::release-notes-8.0.0.asciidoc[]
14-
4+
* <<breaking-changes-policy,Breaking changes policy>>
155

6+
include::breaking-change-policy.asciidoc[]

0 commit comments

Comments
 (0)