Centralize app version in config/VERSION and update documentation#141
Merged
Conversation
Previously the version was duplicated across pyproject.toml, the voxkit package __init__, three app_info.yaml files, and the Windows installer script, and had drifted (0.1.0 / 0.4.0 / 0.4.1). All consumers now read from config/VERSION (canonicalized to 0.4.1).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request implements a "single source of truth" for the application version by centralizing version management in the
config/VERSIONfile. All references to the version throughout the codebase, configuration files, installer scripts, and packaging metadata now read from this canonical file. The PR also updates documentation and tests to reflect this change, and enhances the onboarding guide for contributors.The most important changes are:
Centralized Version Management:
config/VERSIONas the authoritative version file, and updated all version consumers (code, config, installer, packaging) to read from it instead of hardcoded or duplicated strings. [1] [2] [3] [4] [5] [6] [7] [8] [9]Code and Installer Updates:
src/voxkit/__init__.pyandAppConfig.from_yamlto read the version fromconfig/VERSIONat runtime, handling both normal and PyInstaller-bundled execution. [1] [2]installer/windows/VoxKit.iss) to dynamically read the version fromconfig/VERSIONat build time, ensuring installers are always version-accurate.pyproject.tomlto use a dynamic version sourced fromconfig/VERSIONfor packaging, removing the previous hardcoded version. [1] [2]Configuration and Documentation:
versionfields fromapp_info.yamlfiles in both the main config and profile directories, with comments explaining the new version sourcing. [1] [2] [3]AGENTS.md), including explicit instructions about version management, configuration layout, and development workflow withinvoke. [1] [2] [3]Testing:
config/VERSION, and to verify the existence and format of the canonical version file. [1] [2] [3] [4]These changes ensure consistent versioning across all parts of the application and streamline the process for future version bumps.