Versioning
Iglu is a monorepo, this provides some advantages and some disadvantages. One of those disadvantages is versioning. As such we have decided to strictly follow semantic versioning and every project in our mono repo to have the same version number. This sometimes results in patches being "empty" (i.e zero code changes) for some releases but it also has the advantage of being extremely simple to develop with as every part of the project with the same version number is guaranteed to work with any other of the same version number.
Creating a new Iglu Version
Creating a new Iglu Version entails a few steps, primarely involving updating our package.json any pyproject.yml files.
Here's a list of all the version numbers that need to be changed for an iglu version, DO THIS BEFORE THE STEPS LATER DOWN IN THIS CHAPTER:
builder/pyproject.tomlcache/package.jsondocs/package.jsonopenapi/package.jsonsdks/typescript/package.json- Here, the dependency for
@iglu-sh/sharedneeds to be updated to the new version as well. That has to also be done in the package.json
- Here, the dependency for
shared/package.jsonpackage.jsonnix/packages/iglu-builder/package.nix
After all of these versions are updated, go through these steps one after another
- A Github Release needs to be drafted as well, however this must only be done after the versions are updated in the files above so that the workflows aren't affected.
- Once the Github Release has been drafted and published, create a new release note in
docs/docs/04-versionswith the version's number as the title, put the Github Release Markdown into this document and add some Meta information (like a Link to the Github Release). - Add the Release to the releases table in
docs/docs/04-versions/index.mdx - If this release is for a a Minor or Major version or entails some big docs changes in any way (even on a patch), a new versioned doc has to be created. Follow these steps:
- Enter the new Doc version in the
docs/docusaurus.config.tsfile under thepreset.classic.docs.versionspath with the version number as the key, label, path andbanner:"none" - Create a new directory at
docs/versioned_docs/version-${your_version_number} - Copy all the files from
docs/docsinto your new directory
- Enter the new Doc version in the
- Add the Github Release URL to the table later down this document
List of Versions
| Version | Gh-Release |
|---|---|
| v0.0.2 | https://github.com/iglu-sh/iglu/releases/tag/v0.0.2 |