This document describes the version management system used in OwnLang, including how versions are defined, how the changelog is maintained, and the evolution of the language across releases. This covers the technical implementation of version tracking and the documentation of changes over time.
For information about the documentation generation system itself, see Documentation Generation. For information about the build and release process, see Distribution and Deployment.
OwnLang uses semantic versioning (MAJOR.MINOR.PATCH) with build date information. The version system is centrally managed through a dedicated version class that provides constants for all version components.
The version system is implemented in ownlang-core/src/main/java/com/annimon/ownlang/Version.java1-11 with the following structure:
VERSION_MAJOR
: Major version number indicating breaking changesVERSION_MINOR
: Minor version number for new featuresVERSION_PATCH
: Patch version for bug fixesVERSION
: Combined version string including build dateGen.BUILD_DATE
: Automatically generated build timestampSources: ownlang-core/src/main/java/com/annimon/ownlang/Version.java1-11
The version information is exposed to OwnLang programs through the std
module's OwnLang
constant, which provides metadata about the language version and platform.
Sources: ownlang-core/src/main/java/com/annimon/ownlang/Version.java1-11 docs/docs/en/changelog.md80
The changelog system maintains parallel English and Russian documentation files that track all changes across releases. The changelog follows a structured format for consistent documentation of changes.
Each changelog entry is organized by version number with the following sections:
Section | Purpose | Example |
---|---|---|
Breaking Changes | API changes requiring code updates | Java 17 requirement, syntax changes |
Changes | New features and improvements | Package manager, constant support |
Fixes | Bug fixes and corrections | Command-line argument handling |
Modules | Module-specific updates | New functions, module additions |
Sources: docs/docs/en/changelog.md1-114 docs/docs/ru/changelog.md1-116
Sources: docs/docs/en/changelog.md1-114 docs/docs/ru/changelog.md1-116
The changelog tracks OwnLang's evolution from version 1.2.0 to the current 2.1.0, documenting the progressive addition of features and modules.
Sources: docs/docs/en/changelog.md6-114
The changelog demonstrates several key evolutionary patterns:
Module System Growth:
canvasfx
, date
, yml
, aimp
)socket
, base64
, java
, forms
, jdbc
)downloader
, regex
)zip
, gzip
, okhttp
)server
)Language Feature Development:
Sources: docs/docs/en/changelog.md50-114
The changelog integrates with the broader documentation system through VuePress generation and maintains consistency across language versions.
The documentation system maintains version consistency between:
Version.java
std
moduleSources: ownlang-core/src/main/java/com/annimon/ownlang/Version.java1-11 docs/docs/en/changelog.md40
The system maintains parallel changelog files for internationalization:
Language | File Path | Maintenance Status |
---|---|---|
English | docs/docs/en/changelog.md | Primary documentation |
Russian | docs/docs/ru/changelog.md | Synchronized translation |
Both files follow identical structural organization with version-specific sections for breaking changes, features, fixes, and module updates.
Sources: docs/docs/en/changelog.md1-114 docs/docs/ru/changelog.md1-116
Refresh this wiki