Versioning

Semantic versioning MAJOR.MINOR.PATCH, +meta build metadata, and one GitHub tag with many named assets.

Simple Icons contributors / Simple IconsCC0 1.0

Semantic versioning MAJOR.MINOR.PATCH, +meta build metadata, and one GitHub tag with many named assets.

https://dev.to/saurabhdaware/but-what-the-hell-is-package-lock-json-b04

Semantic versioning

Major . Minor . Bugs / Iteration

  • Bugs — no features added or removed
  • Minor — backward compatible within the same major version
  • Major — backward incompatible

Notes (concise)

AI generated.

Core

Format: MAJOR.MINOR.PATCH

  • MAJOR → breaking
  • MINOR → backward-compatible feature
  • PATCH → backward-compatible fix

Non-code changes

Docs/README only → no version bump.

Same version can have multiple builds.

Build metadata

Syntax: 1.2.3+meta

Examples:

  • 0.8.7+docs.1
  • 0.8.7+keyboard-svg.1

Rules:

  • ignored for precedence (treated same as 1.2.3)
  • allowed chars: [0-9A-Za-z-], use . separator

Pre-release (if needed)

1.2.3-beta.1 (affects ordering)

4th number

1.2.3.4 → common but non-SemVer. Prefer +build instead.

Releases vs builds

Don't publish multiple "releases" with only +meta.

Use:

  • single release: v0.8.7
  • artifacts with metadata

Rule of thumb

  • behavior change → bump version
  • rebuild/docs → metadata only

Caveat: some tooling ignores or strips +meta entirely.

Keep the same tag

  1. Keep tag/release: v0.8.7
  2. Rename old artifact:

- app-0.8.7+original.zip - or app-0.8.7+build.1.zip

  1. Upload new artifact:

- app-0.8.7+docs.1.zip

  1. Add release note:

Build artifacts

  • app-0.8.7+build.1.zip — original release artifact
  • app-0.8.7+docs.1.zip — README/docs update only; no code change

If you already deleted the GitHub release asset, recover from:

  • local build output
  • CI artifact history
  • GitHub Actions run artifacts
  • backup/downloaded copy

Best rule: one tag, many named assets.

Indicate latest release artifact: use one tag + mark asset clearly.

Inside GitHub release (v0.8.7), name assets:

  • app-0.8.7+build.1.zip
  • app-0.8.7+docs.1.zip
  • app-0.8.7-latest.zip (alias)

No real alias in GitHub artifact, hence two options:

  1. Upload a copy file — with latest in the filename
  2. Indicate the latest filename in the release title
Updated: 2026 Aug 19