Skip to content

Commit b336771

Browse files
committed
Updated README.md, Added Versioning.md
1 parent f41b6ac commit b336771

File tree

2 files changed

+112
-6
lines changed

2 files changed

+112
-6
lines changed

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -197,21 +197,25 @@ Example of webhook implementation:
197197
}
198198
```
199199
#### Two-Factor Authentication (2FA)
200-
For 2FA quick start guide please check [these examples](two-factor-authentication.md).
200+
For the 2FA quick start guide please check [these examples](two-factor-authentication.md).
201201

202202
#### Send email
203-
For send email quick start guide please check [these examples](email.md).
203+
For the send email quick start guide please check [these examples](email.md).
204204

205205
#### Moments
206-
For Flow & Forms quick start guide please check [these examples](moments.md).
206+
For the Flow & Forms quick start guide please check [these examples](moments.md).
207+
208+
## Versioning
209+
210+
This project follows a pragmatic Semantic Versioning approach.
211+
For full details on how versions are managed, please see our [Versioning guide][versioning].
207212

208213
## Ask for help
209214

210-
Feel free to open issues on the repository for any issue or feature request.
215+
Feel free to open an issue on the repository if you see any problem or want to request a feature.
211216
Check the `CONTRIBUTING` [file][contributing] for details about contributions - in short, we will not merge any pull requests since this code is auto-generated.
212217

213-
However, if you find something that requires our imminent attention feel free to contact us @ [support@infobip.com](mailto:support@infobip.com).
214-
218+
However, if you find something that requires our immediate attention, feel free to contact us @ [support@infobip.com](mailto:support@infobip.com).
215219
[apidocs]: https://www.infobip.com/docs/api
216220
[freetrial]: https://www.infobip.com/docs/essentials/getting-started/free-trial
217221
[signup]: https://www.infobip.com/signup
@@ -221,3 +225,4 @@ However, if you find something that requires our imminent attention feel free to
221225
[authentication-apikey]: https://www.infobip.com/docs/essentials/api-authentication#api-key-header
222226
[datetimeformat]: https://www.infobip.com/docs/essentials/api-essentials/integration-best-practices#date-formats-backward-compatibility
223227
[receive-inbound-sms]: https://www.infobip.com/docs/api/channels/sms/inbound-sms/receive-inbound-sms-messages
228+
[versioning]: VERSIONING.md

VERSIONING.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Versioning Strategy
2+
3+
This document defines the versioning strategy for the Infobip C# API Client.
4+
5+
---
6+
7+
## 1. Versioning Model
8+
9+
The SDK follows a **pragmatic Semantic Versioning** model:
10+
11+
```
12+
MAJOR.MINOR.PATCH
13+
```
14+
15+
While we adhere to the core principles of SemVer, the SDK evolves in tandem with Infobip's backend APIs, which may require **occasional breaking changes in MINOR releases**. These will always be documented clearly.
16+
17+
### Summary of Intent
18+
19+
* **MAJOR** → Large, coordinated breaking changes across multiple areas, architectural redesigns, endpoint version migrations.
20+
* **MINOR** → New features, new endpoints, model updates, and in some cases *breaking changes required by API correctness*.
21+
* **PATCH** → Bug fixes, documentation fixes, safe dependency bumps.
22+
23+
---
24+
25+
## 2. Change Classification
26+
27+
### 2.1 Patch Changes (PATCH)
28+
29+
PATCH versions include changes that are fully backward compatible:
30+
31+
* Bug fixes.
32+
* Typo and documentation corrections.
33+
* Safe dependency upgrades.
34+
* Internal refactors with no public API impact.
35+
36+
---
37+
38+
### 2.2 New Features and API Updates (MINOR)
39+
40+
MINOR versions introduce:
41+
42+
* New endpoints, webhooks, or new request/response fields.
43+
* Support for new message types, enums, or capabilities.
44+
* Fixing wrong field types (e.g., `string``int`).
45+
* Removing fields or models when upstream endpoints no longer support them.
46+
* Unifying models (e.g., platform enums, validity windows, message statuses).
47+
* Replacing request/response classes due to upstream schema changes.
48+
49+
**Breaking changes may appear in MINOR releases** when necessary.
50+
51+
---
52+
53+
### 2.3 Major Changes (MAJOR)
54+
55+
MAJOR releases are reserved for **significant, multi-area-breaking changes**, such as:
56+
57+
* Full API reorganization.
58+
* Global unification or rework of API surface.
59+
* Endpoint version migrations across several products.
60+
* Architectural redesigns.
61+
* Removal of deprecated features accumulated over multiple MINOR releases.
62+
63+
---
64+
65+
## 3. Handling Upstream API Changes
66+
67+
* **Correctness takes priority over C# API backward compatibility.**
68+
* When upstream APIs change field types, remove fields, or alter schemas, the SDK must remain consistent.
69+
* Such updates may cause MINOR releases to include breaking changes.
70+
* These will always be documented with a ⚠️ note in the CHANGELOG.
71+
72+
This ensures the SDK remains reliable and accurate for production usage.
73+
74+
---
75+
76+
## 4. C# and Dependency Compatibility Policy
77+
78+
### 4.1 Minimum C# Version Changes
79+
80+
Increasing the **minimum targeted .NET/C# framework version** (e.g.,.NET Standard 2.0 → .NET 6.0) is always treated as a **MAJOR** version change. Such a change breaks compilation and runtime compatibility for existing users and therefore constitutes a breaking API change.
81+
82+
### 4.2 Dependency Upgrade Policy
83+
84+
**PATCH**
85+
86+
* Only patch-level dependency updates are allowed (e.g., Polly 7.2.0 → 7.2.4).
87+
* Must not introduce behavior changes, serialization differences, or require consumers to adjust their dependencies.
88+
* Test/build-only dependency bumps are allowed.
89+
90+
**MINOR**
91+
92+
* Patch or minor dependency updates are allowed (e.g., Polly 7.0 → 7.2).
93+
* No breaking serialization or model changes caused solely by dependency bumps.
94+
95+
**MAJOR**
96+
97+
* All dependency upgrades are allowed, including breaking changes.
98+
* Major dependency upgrades (e.g., Polly 7 → 8) should be shipped in major releases.
99+
* Framework switches, large refactors, or structural changes belong here.
100+
101+
All dependency-related breaking changes will be clearly documented in the CHANGELOG.

0 commit comments

Comments
 (0)