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