-
Notifications
You must be signed in to change notification settings - Fork 3
Feature: SDK versioning document #10
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
base: main
Are you sure you want to change the base?
Changes from 1 commit
5528bcd
1bf3e10
fd53f77
0131c06
a781254
91c9ce8
ac724f0
1769715
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,33 @@ | ||||||||||||||||||||||||||
| ## Revised SDK Versioning Strategy for Iroha Core | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Semantic Versioning | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The SDKs will continue to follow semantic versioning with `MAJOR.MINOR.PATCH`. However, the meaning of each part will be related to the current delivery strategy of the Iroha 2 Core. | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `MAJOR`: Incremented only when there are breaking changes in the SDK itself, regardless of Iroha Core's version. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Though there is no sense to try keeping existing SDK API if Iroha API changes, i.e. encode the entire signature and parameters in an abstract way or create another level of abstraction on the SDK level exclusively. So I'd rather add something like this.
Suggested change
Another point is that we probably should to maintain more or less the same API in the SDK the Iroha offers so it's not clear what kind of API changes may be expected just on the SDK level. But I agree to cover that as a possibility.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we are not the same page about what we mean by "API". I use term API (Application Programming Interface) in a broad sense. SDK's API is their programming interface, the functionality that is exposed to the users. If something happens to how this functionality is presented (extended, changed, removed), that is an API change of the SDK. Understanding of the nature of changes might vary between languages & platforms, because e.g. one lang can have types in its API and other could not support types at all. SDKs could not be the same. Semver is purely focused on incrementing the versions relatively to the nature of an API change, and it is clearly determined except extreme edge cases. I think we should not add any additional rules into it. Btw, each SDK might consist of multiple packages each with its own version. And they might be different too!
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is no contradiction with that, I'd just like to highlight that one can expect SDK major increment without any change in Iroha API, but Iroha breaking API change would always come with an SDK version major increment supporting that, wouldn't it?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Most probably yes. Just not sure if it is 100% formally "mathematically" impossible to not have major increment in the SDK in that case. |
||||||||||||||||||||||||||
| - `MINOR`: Incremented for backward-compatible features or enhancements in the SDK. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
| - `PATCH`: Incremented for backward-compatible bug fixes or minor updates in the SDK. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Relationship with Iroha Core | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 1. Initial Compatibility: Initially, set the SDK versions to align with Iroha Core `20.0.0`, reflecting the current release. For example, the SDKs might start at `2.0.0`. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see any benefit from it. Moreover, JS SDK packages are already of major version
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's just an example not even a recommendation to follow
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Might be less confusing if we use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we still should have some kind of reference to Iroha RC |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 2. Incremental SDK Updates: As we continue to deliver enhancements, features, and bug fixes for Iroha Core `2.0.0`, increment the SDK versions independently of Iroha Core's version. Use `MINOR` and `PATCH` version increments to indicate the level of changes in the SDKs themselves. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 3. Documentation Updates: Continuously update the documentation to specify which version of Iroha Core your SDK versions are compatible with. This information should be prominently displayed for users to reference. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Versioning Example | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Let's say we have a Java SDK initially at version `2.0.0`, which aligns with Iroha Core `20.0.0`. | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - If we make non-breaking enhancements to the Java SDK, we can increment the version to `2.1.0`. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - For bug fixes or minor updates that don't introduce breaking changes in the SDK, we can increment the version to `2.1.1`. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - Whenever you release updates, ensure that the documentation clearly states the compatibility of each SDK version with Iroha Core `2.0.0`. | ||||||||||||||||||||||||||
|
Comment on lines
+23
to
+27
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @0x009922
I'd remove 'minor'.
Sounds like a breaking change. Rather just remove 'have to'.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. lgtm
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we use semver naming conventions, it would be just |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Continuous SDK Development | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| This strategy allows our SDKs to continue evolving and improving while keeping compatibility with Iroha Core `2.0.0`. By using `MINOR` and `PATCH` version increments, we can convey the level of changes within each SDK release. Make sure to maintain clear and up-to-date documentation to assist users in choosing the appropriate SDK version for their needs, considering compatibility with Iroha Core `2.0.0`. | ||||||||||||||||||||||||||
6r1d marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.