This page explains the versioning strategy for Patterned Designs modules.

Semantic Versioning

All modules follow Semantic Versioning (SemVer):

  • MAJOR (1.x.x) - Breaking changes
  • MINOR (x.1.x) - New features, backward compatible
  • PATCH (x.x.1) - Bug fixes, backward compatible

Version Constraints

Specify version constraints in your Terraform configuration:

module "vpc" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/vpc/aws"
  version = "~> 1.0"  # Any 1.x version
}

Constraint Syntax

ConstraintMeaning
= 1.0.0Exactly version 1.0.0
>= 1.0.0Version 1.0.0 or higher
~> 1.0Any 1.x version
~> 1.0.0Any 1.0.x version

Upgrading Modules

Check for Updates

Review the changelog for each module to understand changes between versions.

Update Safely

  1. Update the version constraint
  2. Run terraform init -upgrade
  3. Run terraform plan to preview changes
  4. Apply if changes are acceptable

Breaking Changes

Major version upgrades may include breaking changes. Always:

  • Read the changelog
  • Test in a non-production environment
  • Plan before applying

Pinning Versions

For production, pin to specific versions:

version = "1.2.3"  # Exact version

This ensures reproducible builds and prevents unexpected changes.

Next Steps