IGNITE-18129 Fixed Ignite 3 build and publishing for beta1. Fixes #1335
Signed-off-by: Slava Koptilin <slava.koptilin@gmail.com>
diff --git a/RELEASE.md b/RELEASE.md
index e26665a..b038ed8 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -59,40 +59,71 @@
rm -rf {dist.dev}/{version}-rc{rc}
mkdir {dist.dev}/{version}-rc{rc}
```
-7. Create zip distributions
+7. Create a signed src zip:
+ ```
+ ./gradlew buildAndSignAllSrcZip
+ ```
+8. Copy src zip with checksums and signatures
+ ```
+ cp packaging/build/distributions/apache-ignite-3.0.0-beta1-src.zip \
+ packaging/build/distributions/ignite3-{version}.zip.asc \
+ packaging/build/distributions/ignite3-{version}.zip.sha512 \
+ {dist.dev}/{version}-rc{rc}
+ ```
+9. Create zip distributions
```
./gradlew allDistZip
```
-8. Sign zip distributions
- ```
- ./gradlew signAllDistZip signCliZip signDbZip
- ```
-9. Copy ZIP packages along with checksums and signatures to the development distribution directory:
- ```
- cp packaging/build/distributions/ignite3-{version}.zip packaging/build/distributions/ignite3-{version}.zip.asc \
- packaging/build/distributions/ignite3-{version}.zip.sha512 packaging/build/db/distributions/ignite3db-{version}.zip \
- packaging/build/db/distributions/ignite3db-{version}.zip.asc packaging/build/db/distributions/ignite3db-{version}.zip.sha512 \
- packaging/build/cli/distributions/ignite3cli-{version}.zip packaging/build/cli/distributions/ignite3cli-{version}.zip.asc \
- packaging/build/cli/distributions/ignite3cli-{version}.zip.sha512 \
- /Users/vkulichenko/GridGain/dist-dev/{version}-rc{rc}
- ```
-10. Create DEB\RPM distributions, they will be signed
+10. Sign zip distributions
+ ```
+ ./gradlew signAllDistZip signCliZip signDbZip
+ ```
+11. Copy ZIP packages along with checksums and signatures to the development distribution directory:
+ ```
+ cp packaging/build/distributions/ignite3-{version}.zip \
+ packaging/build/distributions/ignite3-{version}.zip.asc \
+ packaging/build/distributions/ignite3-{version}.zip.sha512 \
+ packaging/build/db/distributions/ignite3db-{version}.zip \
+ packaging/build/db/distributions/ignite3db-{version}.zip.asc \
+ packaging/build/db/distributions/ignite3db-{version}.zip.sha512 \
+ packaging/build/cli/distributions/ignite3cli-{version}.zip \
+ packaging/build/cli/distributions/ignite3cli-{version}.zip.asc \
+ packaging/build/cli/distributions/ignite3cli-{version}.zip.sha512 \
+ /Users/vkulichenko/GridGain/dist-dev/{version}-rc{rc}
+ ```
+12. Create DEB\RPM distributions, they will be signed
```
./gradlew buildDeb buildRpm
```
-11. Copy DEB\RPM packages to the development distribution directory:
+13. Copy DEB\RPM packages to the development distribution directory:
```
- cp packaging/db/build/distributions/*.deb packaging/db/build/distributions/*.changes packaging/db/build/distributions/*.rpm \
- packaging/cli/build/distributions/*.deb packaging/cli/build/distributions/*.changes packaging/cli/build/distributions/*.rpm \
- /Users/vkulichenko/GridGain/dist-dev/{version}-rc{rc}
+ cp packaging/db/build/distributions/*.deb packaging/db/build/distributions/*.changes \
+ packaging/db/build/distributions/*.rpm \
+ packaging/cli/build/distributions/*.deb packaging/cli/build/distributions/*.changes \
+ packaging/cli/build/distributions/*.rpm \
+ {dist.dev}/{version}-rc{rc}
```
-12. Commit ZIP and DEB\RPM packages:
+14. Create Dotnet and C++ clients
+ ```
+ ./gradlew buildAndSignCppClient buildAndSignNuGetZip
+ ```
+15. Copy zip with checksums and signatures
+ ```
+ cp modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-cpp.zip \
+ modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-cpp.zip.asc \
+ modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-cpp.zip.sha512 \
+ modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-nuget.zip \
+ modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-nuget.zip.asc \
+ modules/platforms/build/distributions/apache-ignite-3.0.0-beta1-nuget.zip.sha512 \
+ {dist.dev}/{version}-rc{rc}
+ ```
+16. Commit ZIP and DEB\RPM packages:
```
cd {dist.dev}
svn add {version}-rc{rc}
svn commit -m “Apache Ignite {version} RC{rc}”
```
-13. Put the release on a vote on the developers mailing list.
+17. Put the release on a vote on the developers mailing list.
## Finalizing the Release
diff --git a/assembly/README.md b/assembly/README.md
index bca0841..0959c5f 100644
--- a/assembly/README.md
+++ b/assembly/README.md
@@ -1,18 +1,28 @@
-# Apache Ignite 3 Alpha 5
+# Apache Ignite 3 Beta 1
Apache Ignite is a distributed database for high-performance computing with in-memory speed.
Ignite 3 is the next generation of the platform that will support a modernized modular architecture,
along with improved usability and developer experience.
-The current alpha version includes the following features:
-* Unified CLI tool
-* New configuration engine
-* New schema management engine
-* Table API
-* Atomic storage implementation based on Raft
-* New SQL engine based on Apache Calcite and JDBC driver
-* New binary client protocol and its implementation in Java
+The current beta version includes the following features:
+* RPM and DEB packages: simplified installation and node management
+with system services.
+* Client's Partition Awareness: Clients are now aware of data distribution over the cluster nodes which helps avoid
+additional network transmissions and lowers operations latency.
+* C++ client: Basic C++ client, able to perform operations on data.
+* Autogenerated values: now a function can be specified as a default value generator during a table creation.
+Currently only gen_random_uuid is supported.
+* SQL Transactions.
+* Transactional Protocol: improved locking model, multi-version based
+lock-free read-only transactions.
+* Storage: A number of improvements to memory-only and on-disk engines
+based on Page Memory.
+* Indexes: Basic functionality, hash and sorted indexes.
+* Client logging: A LoggerFactory may be provided during client
+creation to specify a custom logger for logs generated by the client.
+* Metrics framework: Collection and export of cluster metrics.
+
## Installation
@@ -66,7 +76,7 @@
## Using CLI
-Alpha 5 leverages the advantage of using the CLI for the development. Updated CLI ships the following features:
+Beta 1 leverages the advantage of using the CLI for the development. Updated CLI ships the following features:
* Bash auto-completions. If you are using bash/zsh you can hit the TAB during typing ignite commands.
* Interactive mode. Enter the interactive by running `ignite` without arguments.
* SQL REPL. Run SQL queries right from your terminal with `ignite sql` command.
diff --git a/modules/platforms/build.gradle b/modules/platforms/build.gradle
index 6a5e555..aee698b 100644
--- a/modules/platforms/build.gradle
+++ b/modules/platforms/build.gradle
@@ -16,9 +16,13 @@
*/
plugins {
+ id 'signing'
+ alias(libs.plugins.checksum)
alias(libs.plugins.cmake)
}
+import org.gradle.crypto.checksum.Checksum
+
task copyNativeLibs(type: Copy) {
include "**/*.so"
from("$rootDir/modules/platforms/cpp")
@@ -32,3 +36,53 @@
buildConfig='Release'
buildTarget='install'
}
+
+task buildNuGet(type: Exec) {
+ workingDir "$rootDir/modules/platforms/dotnet"
+
+ commandLine "dotnet", "pack", "Apache.Ignite",
+ "--configuration", "Release",
+ "--include-source",
+ "--output", "$buildDir/nupkg"
+ "/p:Version=${project.version}"
+}
+
+task zipNuGet(type: Zip) {
+ archiveName "apache-ignite-${project.version}-nuget.zip"
+
+ from ("$buildDir/nupkg") {
+ include "*.nupkg"
+ include "*.snupkg"
+ }
+
+ dependsOn buildNuGet
+}
+
+task zipCppClient(type: Zip) {
+ archiveName "apache-ignite-${project.version}-cpp.zip"
+
+ from ("$projectDir/cpp") {
+ exclude "CMakeFiles"
+ exclude "pom.xml"
+ exclude "StyleGuide.md"
+ exclude ".clang-tidy"
+ }
+}
+
+task createChecksums(type: Checksum) {
+ dependsOn zipCppClient, zipNuGet
+ //TODO: remove distribution name hard code IGNITE-18092
+ files = files("${buildDir}/distributions/apache-ignite-${project.version}-cpp.zip",
+ "${buildDir}/distributions/apache-ignite-${project.version}-nuget.zip")
+ outputDir = new File("${buildDir}/distributions")
+ algorithm = Checksum.Algorithm.SHA512
+}
+
+task buildAndSignNuGetZip(type: Sign) {
+ sign zipNuGet
+}
+
+task buildAndSignCppClient(type: Sign) {
+ dependsOn createChecksums
+ sign zipCppClient
+}
\ No newline at end of file
diff --git a/modules/platforms/dotnet/Directory.Build.props b/modules/platforms/dotnet/Directory.Build.props
index 77e7a66..dc543dd 100644
--- a/modules/platforms/dotnet/Directory.Build.props
+++ b/modules/platforms/dotnet/Directory.Build.props
@@ -21,7 +21,7 @@
<WarningsAsErrors>CS8785</WarningsAsErrors>
<LangVersion>10</LangVersion>
<Nullable>enable</Nullable>
- <Version>3.0.0-alpha3</Version>
+ <Version>3.0.0-beta1</Version>
<Company>Apache Software Foundation</Company>
<Authors>Apache Ignite</Authors>
diff --git a/modules/rest/openapi/openapi.yaml b/modules/rest/openapi/openapi.yaml
index f2f496b..88b9586 100644
--- a/modules/rest/openapi/openapi.yaml
+++ b/modules/rest/openapi/openapi.yaml
@@ -6,7 +6,7 @@
license:
name: Apache 2.0
url: https://ignite.apache.org
- version: 3.0.0-alpha
+ version: 3.0.0-beta1
paths:
/management/v1/cluster/init:
post:
diff --git a/packaging/build.gradle b/packaging/build.gradle
index fedc129..6d748b1 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -87,20 +87,42 @@
}
}
-signing {
- sign allDistZip
-}
-
-task createChecksums(type: Checksum) {
+task createDistZipChecksums(type: Checksum) {
//TODO: remove distribution name hard code IGNITE-18092
files = files(files("${buildDir}/distributions/ignite3-${project.version}.zip"))
outputDir = new File("${buildDir}/distributions")
algorithm = Checksum.Algorithm.SHA512
}
-allDistZip.finalizedBy(createChecksums)
+task createSrcZipChecksums(type: Checksum) {
+ //TODO: remove distribution name hard code IGNITE-18092
+ files = files(files("${buildDir}/distributions/apache-ignite-${project.version}-src.zip"))
+ outputDir = new File("${buildDir}/distributions")
+ algorithm = Checksum.Algorithm.SHA512
+}
-// copyCliAndDbZi depends on configurations.cliZip and configurations.dbZip
+allDistZip.finalizedBy(createDistZipChecksums)
+
+task allSrcZip(type: Exec) {
+ workingDir rootDir
+
+ commandLine "git", "archive",
+ "--prefix=apache-ignite-${project.version}-src",
+ "-o", "$buildDir/distributions/apache-ignite-${project.version}-src.zip",
+ "HEAD"
+}
+
+task buildAndSignAllSrcZip(type: Sign) {
+ dependsOn allSrcZip, createSrcZipChecksums
+
+ sign file("$buildDir/distributions/apache-ignite-${project.version}-src.zip")
+}
+
+// copyCliAndDbZip depends on configurations.cliZip and configurations.dbZip
// it makes allDistZip be depended on configurations.cliZip and configurations.dbZip
// https://issues.apache.org/jira/browse/IGNITE-17918
allDistZip.dependsOn copyCliAndDbZip
+
+signing {
+ sign allDistZip
+}
\ No newline at end of file