...
Currently, Ignite 3 does not have a ready-made mechanism for delivering the required components to the user. The purpose of this IEP is to work out and create all kinds of options for packaging and distribution distributing the required components of Ignite 3 to the user, taking into account the UX of various user platforms and OS.
...
As ready-made resulting packages, it is planned to make only completely independent parts of Apache Ignite. At the moment only Ignite core part and Ignite CLI can work as standalone applications and these applications should be distributed as OS specific packages for all supported platforms. (Linux, Windows, MacOs). However, we will publish not only compiled packages, there is a need to publish individual parts of Apache Ignite that are not standalone applications, and we need to provide the user with the access to these parts. The prime candidate for this is the ignite-client with all its subparts (JDBC, SQL Api, etc Api). More about this will be described in paragraph Publishing.
Three packages will be provided:
...
...
rpm -i <package> / apt install <path-to-deb> / dpkg -i <package>
Uninstallation:
rpm -e <package> / dpkg --r
<package>`<package>
Upgrade:
rpm -U <package> / dpkg -i
<package>`<package>
NOTE: upgrade process should not remove data files.
...
yum install https://yum-rep-address/repo-info.rpm
`add-apt-repository
httpshttp://repo-address
yum install ignite3
apt install ignite3
...
brew uninstall ignite3
Upgrade:
brew upgrade
ignite3` ignite3
SDKman is a multiplatform package manager with supported platforms:
...
sdk upgrade ignite3
List:
`sdk list
ignite3`ignite3
Publishing process is described here and it's not much different from other package managers.
...
As you can see https://github.com/jreleaser/jreleaser can help us with publishing setup infrastructure and cover all cases. This is a good reason to try to use it as the only required dependency to unify how different packages are built.
Also https://jreleaser.org/guide/latest/examples/micronaut-cli-app.html provides native support of Micronaut CLI project which is Apache Ignite CLI.
TDB
// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.
...