Summary
This release focuses on documentation improvements, especially in for modules. Other bigger change is that this we have fixed Dockerfile generation so that the Docker layer cache can be reused.
**NOTE:** Version `3.3.0` was **never released** due to the fact that we encountered issues with PyPi which made it impossible to push version `3.3.0` again. There are no changes in the code between version `3.3.0` and `3.3.1`.
Please see below for all changes that went in.
Fixed
* Template used to generate Dockerfile was updates so that we can now utilize properly Docker layer cache, 544
* ZSH completion was fixed and it should work now, 554
Added
* A new switch to the `build` command was added: `--validate`. It is responsible for checking that the image descriptor (and relevant modules) are correct. It does **not** generate files for the specific builder.
* Documentation around module versioning was added, 194, 196
* Documentation was updated on best practices regarding module naming, 197
* A warning is now printed when artifact does not define a `name` key. This is to remind you that in order to make overrides work nicely, you should define it, 198
* Documentation covering local module development was extended, 527
* All available Docker builder engine environment variables are now documented, 526
* A workaround was added for `microdnf` where it fails with message similar to `error: cannot move /var/cache/yum/metadata`, 560
* A warning was added when CEKit finds that the [`certifi` library](https://pypi.org/project/certifi/) is found -- in most cases it will lead to certificate validation issues related to missing CA certficates, #577
Changed
* [Image help pages](http://docs.cekit.io/en/latest/descriptor/image.html#help) were overhauled. These contain now information about environment variables and labels defined in image modules too. Help page formatting was updated too. These should now provide full information about the image. 528
* The `--tech-preview` switch in the OSBS builder is now deprecated. It will be removed in CEKit 3.5 or later. Overrides should be used instead of this switch.
* Dependency handling was updated to be more flexible, for example we no longer require the `docker-squash` library when you do not want to squash the image after building in Docker, 576
* Small tweaks to getting started guide were applied, 556
Heads-up
* Please note that [although in documentation](http://docs.cekit.io/en/latest/descriptor/module.html#version) we have stated that module's `version` key is required, we did not enforce it until now. This has been fixed and the `version` key requirement is enforced.