-
Notifications
You must be signed in to change notification settings - Fork 5
Release Process
Note: At the bottom of this page of this page you'll find the markdown source of this checklist to paste it in a release issue
-
Preparation
- Update the
README.txt
andWHATSNEW.txt
in thepackaging/common/khiops
directory - Update the PDF documentation
- Update the technical repo khiops-win-install-assets
- Update the versions of all assets that require an update, namely:
- Khiops Visualization
- Khiops Covisualization
- Khiops PDF Docs
- Java JRE installer
- MS MPI installer
- Update the versions of all assets that require an update, namely:
- Update the
-
Full Test Loop
- Create a pre-release tag in the
dev
or*-hotfix
branch. The tag may be alpha, beta or release candidate, see Versioning.- This will create a pre-release entry in the release section with all the the CICD generated packages
- Create a pre-release tag in the
dev
or*-hotfix
branch of thekhiops-python
repository- The will upload to a test channel the conda packages for Khiops
- Example:
git tag 10.2.1-a1 dev
, thengit push --tags
- Execute the end-to-end tests (aka.
LearningTest
) in all supported environments- If there are major issues, fix them (making issues, PRs) and go back to "Create a pre-release tag..."
- Execute the manual tests for the GUI packages
- Create a pre-release tag in the
-
Finalize the Release
- For a
MAJOR
orMINOR
release: Mergedev
intomain
(via PR)-
PATCH
releases are kept and tagged*-hotfix
branch
-
- Create the final release tag (see also Versioning):
- For a
MAJOR
orMINOR
release: Tag themain
branch (ex.git tag v10.3.0
thengit push --tags
) - For a
PATCH
release: Tag the corresponding*-hotfix
(ex.git tag 10.2.1
thengit push --tags
)
- For a
- Copy and paste the release notes from
packaging/common/khiops/WHATSNEW.txt
to in the new github release entry - Remove any packages that haven't been deemed to release
- We create more package than we release for testing purposes
- Sign the Windows package and replace it in the release
- Release enablers:
khiops-python
,khiops-notebook
.- At this point the update of the website is unblocked
- For a
-
Final Git Manipulations
- Only for
MAJOR
orMINOR
releases, update the main - Create branch
*-hotfix
branched from the tagged commit inmain
- Make the
dev
branch point tomain
- Locally execute
git fetch
, thengit switch main
,git switch dev
andgit reset --hard main
- In the repo's branch protecting settings remove temporarily "Require a pull request before merging"
- Locally execute
git push
- Restore in the branch protecting settings "Require a pull request before merging"
- Locally execute
- Only for
The versioning scheme for Khiops has the following format MAJOR.MINOR.PATCH{-PRE_RELEASE.PR_INCREMENT}
where
-
MAJOR
is a number and marks a major release. It contains major and minor features, API changes (probably) and bug fixes. -
MINOR
is a number and marks a minor release. It contains minor features and bug fixes. -
PATCH
is a number and marks a patch release. It contains only bug fixes. -
PRE_RELEASE
is one ofa
,b
,rc
marks a pre-release status:-
a
is an Alpha release : A limited release for initial private testing. -
b
is a Beta release : A wider release for public testing. -
rc
is a Release Candidate : a candidate for a release. If we find no major bugs it may become a definitive release.
-
-
PR_INCREMENT
: Numerical increment for a pre-release.
After the final release for an major series, the subsequent versions are all alpha until the beta for the next version is declared. For example: The last version of the 10 series is 10.2.x so the development versions are 10.5.0-a.1 until the new major release alpha version are available.
TBD
Tags for releases are only on the main
branch. Tags for pre-release may go in dev
and ocasionally in a feature branch.
Currently, they trigger the creation of an entry in the "Releases" section of the GitHub repository. This entry contain all linux and windows packages. If some of them do not pass the end-to-end tests they should be removed from a final release.
The following checklists describe the manual tests for the Khiops packages to execute upon release. Each step has variants specified as sub-bullets.
The result of each step should be report as
- OK
- Ok with warning:
- It works but there is a strange behavior or popup
- We should think of a warning to put in the installation guide or troubleshooting section
- It works but there is a strange behavior or popup
- KO
- Give the maximum context information to the developers to reproduce the problem
The checklist below should be performed on the following system combinations:
Versions:
- Windows 10
- Windows 11
Machine Types:
- Personal/Home Machine
- Orange IT's machines
- Check that the download link in https://khiops.org works correctly
- with Chrome
- with Edge
- with Firefox
- Execute the installer
- by right clicking the installer and selecting "Execute as administrator"
- by double clicking the installer exe (not equivalent when done with a normal user)
- check that it is signed by Orange and not "Unknown Publisher"/"Editeur Inconnu"
- Select the installation directory
- the default
C:\Program Files\khiops
- one within the user home directory (ex:
C:\Users\<USERNAME>\khiops
) - another directory (ex:
C:\Temp\khiops
,C:\Applications\khiops
)
- the default
- Launch the Khiops applications
- From the start menu
- From the desktop icon
- From the shortcut of the installation directory
- Check the version and year date (ex: 2024) of the tool and in the documentation
- From the application menu
Help/About Khiops...
- In the text documents available in the installation directory:
LICENSE.txt
,README.txt
,WHATSNEW.txt
- In the pdf documents available in
doc
sub-directory of the installation directory: guides and tutorial
- From the application menu
- Check in the application:
- That the menu "Open Dictionary File..." opens in
C:\Users\Public\khiops_data\samples
- That
Adult
supervised analysis works fine - That the resulting
AllReports.khj
work fine with the Khiops Visualization
- That the menu "Open Dictionary File..." opens in
- Uninstall the application
- From the start menu
- From the "Apps & Features"/"Applications et Fonctionnalités" pane in the settings
- Check that the files were removed
- The installation dir
- The
C:\Users\Public\khiops_data\samples
directory- But that any user generated files in the above
Adult
analysis have not been removed
- But that any user generated files in the above
- Install/Reinstall
- Uninstall everything if necessary
- Install once with whatever method
- Install again
- in the same directory
- in another directory
- Check that:
- a popup saying that "Khiops is already installed" appears and accept.
- when installing another directory the old was removed.
The checklist below should be performed on the following system combinations:
OS:
- Ubuntu 20.04
- Ubuntu 22.04
- Rocky Linux 8
- Rocky Linux 9
- Install with the proper method in each OS
- Launch the Khiops applications
- From the start menu
- From the desktop icon (?)
- Check in the application:
- That the menu "Open Dictionary File..." opens in
/usr/bin
(?) - That
Adult
supervised analysis works fine - That the resulting
AllReports.khj
work fine with the Khiops Visualization
- That the menu "Open Dictionary File..." opens in
- Uninstall the application
- Check that the files were removed
-
MODL*
khiops
andkhiops-env
khiops-coclustering
from/usr/bin
-
norm.jar
,khiops.jar
from TBD
-
- **Preparation**
- [ ] Update the `README.txt` and `WHATSNEW.txt` in the `packaging/common/khiops` directory
- [ ] Update the [PDF documentation][pdf-docs]
- [ ] Update the technical repo [khiops-win-install-assets][win-install-assets]
- Update the versions of all assets that require an update, namely:
- Khiops Visualization
- Khiops Covisualization
- Khiops PDF Docs
- Java JRE installer
- MS MPI installer
- **Full Test Loop**
- [ ] Create a pre-release tag in the `dev` or `*-hotfix` branch. The tag may be alpha, beta or
release candidate, see [Versioning][versioning].
- This will create a pre-release entry in the [release section][khiops-releases] with all the
the CICD generated packages
- [ ] Create a pre-release tag in the `dev` or `*-hotfix` branch of the `khiops-python` repository
- The will upload to a test channel the conda packages for Khiops
- Example: `git tag 10.2.1-a1 dev`, then `git push --tags`
- [ ] Execute the end-to-end tests (aka. `LearningTest`) in all supported environments
- If there are major issues, fix them (making issues, PRs) and go back to "Create a pre-release tag..."
- [ ] Execute the [manual tests for the GUI packages][manual-tests]
- **Finalize the Release**
- [ ] For a `MAJOR` or `MINOR` release: Merge `dev` into `main` (via PR)
- `PATCH` releases are kept and tagged `*-hotfix` branch
- [ ] Create the final release tag (see also [Versioning][versioning]):
- For a `MAJOR` or `MINOR` release: Tag the `main` branch (ex. `git tag v10.3.0` then `git push --tags`)
- For a `PATCH` release: Tag the corresponding `*-hotfix` (ex. `git tag 10.2.1` then `git push --tags`)
- [ ] Copy and paste the release notes from `packaging/common/khiops/WHATSNEW.txt` to in the new
[github release entry][khiops-releases]
- [ ] Remove any packages that haven't been deemed to release
- We create more package than we release for testing purposes
- [ ] Sign the Windows package and replace it in the release
- [ ] Release enablers: `khiops-python`, `khiops-notebook`.
- **At this point the update of the website is unblocked**
- **Final Git Manipulations**
- Only for `MAJOR` or `MINOR` releases, update the main
- [ ] Create branch `*-hotfix` branched from the tagged commit in `main`
- [ ] Make the `dev` branch point to `main`
- Locally execute `git fetch`, then `git switch main`, `git switch dev` and `git reset --hard
main`
- In the repo's [branch protecting settings][branch-settings] remove temporarily "Require a pull
request before merging"
- Locally execute `git push`
- Restore in the [branch protecting settings][branch-settings] "Require a pull request before
merging"