Skip to content

Commit

Permalink
Refactor versioning documentation and adopt semantic versioning guide…
Browse files Browse the repository at this point in the history
…lines
  • Loading branch information
lum1n0us committed Dec 26, 2024
1 parent 56b0434 commit db69420
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 22 deletions.
5 changes: 4 additions & 1 deletion build-scripts/version.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# BE AWARE: This file depends on ${WAMR_ROOT_DIR}
if(NOT WAMR_ROOT_DIR)
# if from wamr-compiler
set(WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
endif()

set(WAMR_VERSION_MAJOR 2)
set(WAMR_VERSION_MINOR 2)
Expand Down
21 changes: 0 additions & 21 deletions doc/semantic_version.md

This file was deleted.

28 changes: 28 additions & 0 deletions doc/stability_release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Semantic Versioning

WAMR has adopted [semantic versioning](https://semver.org/) to replace the former *date versioning system*. The new version string consists of three parts:

- *major*: Any change that is not compatible with previous versions, affecting either the ABI or APIs, will result in an increase in the major version number. APIs include: wasm_export.h, wasm_c_api.h, sections in AOT files, among others.
- *minor*: This number increases with the addition of new features. This encompasses not only MVP (Minimum Viable Product) or POST-MVP features but also WebAssembly System Interface (WASI) features and WAMR-specific features.
- *patch*: This number is incremented for patches.

## Legacy releases

All previous versions (tags) will retain their current status. There will be no changes to existing release names and links.

# Release Process

WAMR has been deployed across various devices. A frequent release cycle would strain customers' testing resources and add extra deployment work. Two factors can trigger a new WAMR release:

- Community requests, particularly following the integration of significant and new features.
- Security vulnerabilities and critical bug fixes that ensure correctness.

Patch releases will be made only to address security vulnerabilities and critical issues related to default behavior in prior releases.

Once a release decision has been made:

- Create a PR that:
1. Modifies *build-scripts/version.cmake*.
2. Updates *RELEASE.md*.
- Once the PR is merged, create a new tag.
- Initiate the release process by triggering *the binary release processes* in *Actions*.
1 change: 1 addition & 0 deletions wamr-compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ include (${IWASM_DIR}/common/gc/iwasm_gc.cmake)
include (${IWASM_DIR}/interpreter/iwasm_interp.cmake)
include (${IWASM_DIR}/aot/iwasm_aot.cmake)
include (${IWASM_DIR}/compilation/iwasm_compl.cmake)
include (${PROJECT_SOURCE_DIR}/../build-scripts/version.cmake)

if (WAMR_BUILD_LIBC_BUILTIN EQUAL 1)
include (${IWASM_DIR}/libraries/libc-builtin/libc_builtin.cmake)
Expand Down

0 comments on commit db69420

Please sign in to comment.