-
Notifications
You must be signed in to change notification settings - Fork 749
Add a semantic version for WAMR #1374
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
Conversation
db890e8 to
0c490a2
Compare
246d3d3 to
b72ae9f
Compare
|
what's included in our public api and what's not? |
b72ae9f to
f734531
Compare
WASM_RUNTIME_API_EXTERN void
wasm_runtime_get_version(uint32_t *major, uint32_t *minor, uint32_t *patch); |
f734531 to
880d7d5
Compare
my question was about the following. https://semver.org/#semantic-versioning-specification-semver
|
thansk for reminding. IIUC |
880d7d5 to
cff82a1
Compare
7c67fb6 to
89da5c7
Compare
product-mini/platforms/linux-sgx/enclave-sample/Enclave/Enclave.cpp
Outdated
Show resolved
Hide resolved
89da5c7 to
bbd4efa
Compare
i think we are talking past each other. to maintain semantic version properly, it's necessary to declare what kind of compatibility we guarantee to users. it's called "public api." (i think it's a semantic version term)
|
bbd4efa to
5c48994
Compare
doc/semantic_version.md
Outdated
| ## Legacy versions | ||
|
|
||
| All legacy versions(tags) will keep their current status. We treat the first releasing, | ||
| _WAMR-11-28-2019_, as the version 1.0.0, and so on. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's the point to assign semver to old releases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just in case somebody is interested in why our next release would be 1.20.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI, we won't change any existing release names or links.
doc/semantic_version.md
Outdated
| There are three parts in the new version string: | ||
|
|
||
| - _major_. WAMR only changes _major_ when APIs are modified in an incompatible way. | ||
| APIs includes: `wasm_export.h`, `wasm_c_api.h`, _sections in AOT files_, and so on. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
APIs includes:
wasm_export.h,wasm_c_api.h
does this mean ABI changes are not relevant?
sections in AOT files
what do you mean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Our APIs do not just include headers but also AOT internal structures, like section headers, offsets, fields, and so on.
- Both ABI and API matter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both ABI and API matter.
it's confusing because all legacy releases below share the major 1, while there were actually abi-breaking changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my suggestion is
- simply start from 1.0.0
- just say "pre-1.0.0 releases don't follow semver convention"
5c48994 to
21f1627
Compare
before publish a release - manually change the content of config_common.cmake - or pass new version by `cmake -DWAMR_VERSION_MAJOR=XXX -DWAMR_VERSION_MINOR=YYY -DWAMR_VERSION_PATCH=ZZZ ...` There is [a table](doc/legacy_versions.md) which semantic version string a legacy release should have Now, `iwasm --version` is able to return the version number, like "Wasm-Micro-Runtime v1.20.0".
21f1627 to
03bec7c
Compare
Use the semantic versioning (https://semver.org) to replace the current date versioning system, which is more general and is requested by some developers, e.g. issue bytecodealliance#1357. There are three parts in the new version string: - major. Any incompatible modification on ABIs and APIs will lead to an increment in the value of major, which mainly includes: AOT calling conventions, AOT file format, wasm_export.h, wasm_c_api.h, and so on. - minor. It represents new features, including MVP/POST-MVP features, libraries, WAMR private ones, and so one. - patch. It represents patches. The new version will start from 1.0.0. Update the help info and version showing for iwasm and wamrc.
|
So the next release will be cut according to SemVer? When can we expect it? |
|
@bonifaido We have created the new release WAMR-1.0.0, hope it is helpful to you, thanks. |
|
This is great! Thank you! |
Use the semantic versioning (https://semver.org) to replace the current date versioning system, which is more general and is requested by some developers, e.g. issue bytecodealliance#1357. There are three parts in the new version string: - major. Any incompatible modification on ABIs and APIs will lead to an increment in the value of major, which mainly includes: AOT calling conventions, AOT file format, wasm_export.h, wasm_c_api.h, and so on. - minor. It represents new features, including MVP/POST-MVP features, libraries, WAMR private ones, and so one. - patch. It represents patches. The new version will start from 1.0.0. Update the help info and version showing for iwasm and wamrc.
before publish a release
cmake -DWAMR_VERSION_MAJOR=XXX -DWAMR_VERSION_MINOR=YYY -DWAMR_VERSION_PATCH=ZZZ ...