Version Management
This document describes the version management system for the eevee.bot project suite.
Overview
Each eevee module manages its own version independently via its package.json. Modules with shared dependencies (e.g., @eeveebot/libeevee) can use the npm run update-libraries script available in each package to bump shared dependency versions.
Note: A master versioning script (
vm.sh) was previously used to coordinate version bumps across all packages but has been removed. The versioning workflow below describes the manual process for versioning individual packages.
Versioning Workflow
- Make your code changes
- Update the version in the module’s
package.json - Commit with an appropriate message
- Tag the commit with the version number
- Push changes and tags to the remote repository
Updating Dependencies
Each package with @eeveebot/libeevee as a dependency has an npm run update-libraries script that updates core eevee libraries to their latest versions.
Package Dependencies
When libeevee-js is updated, dependent packages should have their @eeveebot/libeevee dependency version updated. Dependent packages include: admin, connector-irc, connector-discord, echo, router, operator, cli, calculator, dice, emote, weather, help, tell, urltitle, crds, helm.
Helm Chart Management
The version manager automatically handles Helm chart updates when relevant packages are versioned:
- When
operatorpackage is versioned, the operator Helm chart image tag is automatically updated - When
crdspackage is versioned, the CRDs Helm chart image tag is automatically updated - When any command module (admin, calculator, cli, etc.) is versioned, the bot version in
helm/versions.yamlis automatically incremented - When
operatororcrdsversions change, the corresponding entries inhelm/versions.yamlare automatically updated
The Helm repository (separate git repository) is automatically tagged when any of these changes occur. Tags must be pushed manually to the remote.
Versioning Strategy
- Library packages (
libeevee-js) follow semantic versioning - Application packages follow semantic versioning
- All packages are tagged with their version number (e.g.,
1.2.3) - Some packages have special tag suffixes:
crdsandhelmpackages are tagged with-buildsuffix (e.g.,1.2.3-build)
- Helm repository is tagged with version numbers following the pattern
v{package-version}orv{bot-version}for bulk updates