IGNITE-16297 Added 2.12.0 release notes
diff --git a/releases/2.12.0/release_notes.html b/releases/2.12.0/release_notes.html
new file mode 100644
index 0000000..e18de2e
--- /dev/null
+++ b/releases/2.12.0/release_notes.html
@@ -0,0 +1,192 @@
+<head>
+<link rel="canonical" href="https://ignite.apache.org/releases/2.12.0/release_notes.html" />
+<META NAME="ROBOTS" CONTENT="NOINDEX">
+
+<!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+    
+      ym(72949126, "init", {
+           clickmap:true,
+           trackLinks:true,
+           accurateTrackBounce:true,
+           webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+<script type='text/javascript'>
+    window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+
+
+
+	<style>h1 {    color: #113847;    font-size: 33px;    font-weight: bold;    margin: 30px 0 15px 0;    padding-bottom: 7px;    width: 700px;}h2 {  border-bottom: 2px solid #ccc;     color: #113847;     font-size: 29px;     font-weight: normal;     margin: 30px 0 15px 0;     padding-bottom: 7px;  width: 700px; }a {      color: #cc0000;      text-decoration: none;  }span {    color: #cc0000;}a:hover {    text-decoration: underline;}ul,ol {    list-style: disc;    margin-left: 30px;}ul li,ol li {    margin: 5px 0;}p.description {    width: 700px;}</style>
+
+	<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-61232409-1', 'auto');
+  ga('send', 'pageview');
+
+	</script></head>
+<body>
+	<h1>Apache Ignite 2.12.0</h1>
+			<div></div>
+
+    <h2>WARNINGS</h2>
+    <ul>
+        <li>The community accepted deprecate for removal in future releases: CacheMode#LOCAL, CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT, CacheConfiguration#rebalanceDelay.</li>
+        <li>GCE, AWS, Azure modules, CacheSpringStoreSessionListener, and TcpDiscoveryZookeeperIpFinder migrated to the Ignite extensions.</li>
+        <li>The deprecated legacy service grid implementation will be removed in the next release.</li>
+    </ul>
+
+    <h2>Ignite</h2>
+    <ul>
+        <li>Added Ignite Distributed Environment Tests.</li>
+        <li>Added IndexQuery API for fast index scans.</li>
+        <li>Added KubernetesConnectionConfiguration.discoveryPort.</li>
+        <li>Added MergeSort distributed cache query reducer.</li>
+        <li>Added Read Repair on specified partition to the Control.sh.</li>
+        <li>Added an ability to track request handling completion in GridRestProcessor.</li>
+        <li>Added an explicit method to register binary type based on class.</li>
+        <li>Added batch cache operations histogram metrics.</li>
+        <li>Added benchmarks for cache queries - scan, index, text.</li>
+        <li>Added docker image for s390x.</li>
+        <li>Added events for snapshot restore operation.</li>
+        <li>Added expire policy info into log of started cache.</li>
+        <li>Added firing event for any ReadRepair attempt (if consistency violation found). Atomic caches are also supported.</li>
+        <li>Added offline utility to read and analyze index files.</li>
+        <li>Added possibility to accept while indexing classes/enums that are extending interfaces/classes marked to be stored in cache.</li>
+        <li>Added rename index tree operation with corresponding WAL record.</li>
+        <li>Added resource de-allocation in SharedPageLockTracker.</li>
+        <li>Added snapshot thread pool configuration.</li>
+        <li>Added support for creating IndexQuery without index name.</li>
+        <li>Added the ability to cancellation of consistency recovery command (Read Repair via control.ch).</li>
+        <li>Added the ability to record Control.sh consistency check violations to other log file.</li>
+        <li>Added the ability to restore snapshot taken on different topologies.</li>
+        <li>Added the ability to snapshot encrypted caches.</li>
+        <li>Added the cache destroy command for control.sh.</li>
+        <li>Added the force deactivation flag to the IgniteMXBean.</li>
+        <li>Added time metrics and statistics for the IgniteCache#getAllOutTx.</li>
+        <li>Added unconditional logging of tx states to WAL to ensure correct tx recovery after node crash.</li>
+        <li>Changed IGNITE_PDS_WAL_REBALANCE_THRESHOLD from System property to Distributed property.</li>
+        <li>Deprecated CacheConfiguration#rebalanceDelay for removal.</li>
+        <li>Deprecated CacheMode#LOCAL for removal.</li>
+        <li>Deprecated CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT deprecated for removal.</li>
+        <li>Deprecated the IGNITE_THRESHOLD_WAL_ARCHIVE_SIZE_PERCENTAGE system property.</li>
+        <li>Expanded kubernetes examples to include full beans.</li>
+        <li>Fixed AssertionError: Unexpected rebalance on rebalanced cluster.</li>
+        <li>Fixed CacheObjectAdapter#put incorrect offset handling.</li>
+        <li>Fixed NPE on remote listener registration with null remote filter and security enabled.</li>
+        <li>Fixed PagesWriteSpeedBasedThrottle time to throttle calculation.</li>
+        <li>Fixed REST and Zookeeper module logging: use the slf4j facade to log third-party libraries.</li>
+        <li>Fixed REST request failure when cache node filter is used.</li>
+        <li>Fixed SSL read error.</li>
+        <li>Fixed StackOverflowError in case if exception suppressed with itself.</li>
+        <li>Fixed adaptation of the historical rebalance to the release of WAL segments.</li>
+        <li>Fixed an error when starting a node due to exceeding the DataStorageConfiguration#getMaxWalArchiveSize.</li>
+        <li>Fixed azure-blob-storage dependency versions.</li>
+        <li>Fixed builds with maven 3.8.1+.</li>
+        <li>Fixed cancelling WAL segments reservation when max WAL archive size is reached.</li>
+        <li>Fixed change permissions required to create/destroy caches in GridRestProcessor.</li>
+        <li>Fixed check of SERVICE_DEPLOY permission.</li>
+        <li>Fixed check statistics obsolescence on server nodes only.</li>
+        <li>Fixed client node reconnect with enabled security.</li>
+        <li>Fixed concurrent heartbeat update while in blocking section for system workers.</li>
+        <li>Fixed contention in lock on Compound future.</li>
+        <li>Fixed diagnostic information for PDS corruption scenarios.</li>
+        <li>Fixed error extension about B+tree lock retry for indexes.</li>
+        <li>Fixed exception for checkpoint marker reading error.</li>
+        <li>Fixed exception message of closed the GridCloseableIteratorAdapter.</li>
+        <li>Fixed execution of daemon node operations that require authorization.</li>
+        <li>Fixed fallback to full rebalance in case of historical rebalancing failure.</li>
+        <li>Fixed handle windows in ODBC on Windows.</li>
+        <li>Fixed idle verify and snapshot check ambiguity error output.</li>
+        <li>Fixed multiple results bug when query parallelism is enabled for single partition query.</li>
+        <li>Fixed node restart in maintenance mode with security enabled.</li>
+        <li>Fixed performance suggestion URL to legacy documentation.</li>
+        <li>Fixed preconfigured service deployment authorization.</li>
+        <li>Fixed security context propagation for cache event.</li>
+        <li>Fixed security context propagation for compute tasks.</li>
+        <li>Fixed snapshot restore fails if metadata is missing on any baseline node.</li>
+        <li>Fixed snapshot restore on not all affinity partitions are physically present.</li>
+        <li>Fixed spontaneous SocketTimeoutException in server socket accept (JDK-8247750).</li>
+        <li>Fixed storage of physical pageIds in a DurableBackgroundCleanupIndexTreeTask.</li>
+        <li>Fixed the AssertionError when the JmxMetricExporterSpi unregister a filtered metric registry.</li>
+        <li>Fixed the data structures system views registration on inactive cluster start.</li>
+        <li>Fixed the inconsistency of the built new indexes after restarting the node.</li>
+        <li>Fixed the remove metric value is different for sync and async methods.</li>
+        <li>Fixed triple flushing of meta information at the checkpoint.</li>
+        <li>Fixed unconditional Lucene index creation.</li>
+        <li>Fixed unnecessary socket shutdown and close log output.</li>
+        <li>Fixed walTotalSize incorrectly reported when wal archiving is turned off.</li>
+        <li>Implemented CDC metrics.</li>
+        <li>Implemented Change Data Capture.</li>
+        <li>Implemented IndexQuery filter operation.</li>
+        <li>Implemented Yardstick benchmark for multi cache transaction operations.</li>
+        <li>Implemented forbid duplicated field in CREATE INDEX clause.</li>
+        <li>Improved logging of the peer class loading error message.</li>
+        <li>Improved the snapshot procedure logging.</li>
+        <li>Migrated CacheSpringStoreSessionListener to the Ignite extensions.</li>
+        <li>Migrated TcpDiscoveryZookeeperIpFinder to the Ignite extensions.</li>
+        <li>Migrated gce, aws, azure modules to the Ignite extensions.</li>
+        <li>Updated Bouncycastle version (fixes CVE-2020-15522, CVE-2020-0187, CVE-2020-26939).</li>
+        <li>Updated log4j version to 2.17.1 (fixes CVE-2021-44228, CVE-2021-44832, CVE-2021-45046, CVE-2021-45105).</li>
+        <li>Updated PostgreSQL JDBC Driver version (fixes CVE-2020-13692).</li>
+        <li>Updated httpclient, httpcore versions (fixes CVE-2020-13956).</li>
+        <li>Updated the Jackson dependency version (fixes CVE-2019-16942, CVE-2019-16943, CVE-2019-17531).</li>
+        <li>Updated the MySql connector dependency version (fixes CVE-2019-2692).</li>
+        <li>Updated the Netty dependency version (fixes CVE-2021-21295).</li>
+    </ul>
+    <h2>Java thin-client</h2>
+    <ul>
+        <li>Added SQLSTATE to thin client SQL error message.</li>
+        <li>Added client cache for OptimizedMarshaller class names.</li>
+        <li>Added partition awareness for ScanQuery with specified partition.</li>
+        <li>Added requests thread pool monitoring.</li>
+        <li>Fixed ClassNotFoundException on service call after failover.</li>
+        <li>Fixed follow user-defined endpoint order, try default port first.</li>
+        <li>Fixed issue with explicit binary type configuration.</li>
+        <li>Fixed transaction failure after timeout.</li>
+    </ul>
+    <h2>.Net</h2>
+    <ul>
+        <li>Fixed NRE in ClientFailoverSocket due to late logger setter.</li>
+        <li>Fixed NullPointerException in ContinuousQuery with security enabled.</li>
+        <li>Fixed Schema project version and examples packaging.</li>
+        <li>Fixed SslStreamFactory.CertificatePath null value.</li>
+        <li>Fixed TypeNameParser to ignore escaped characters in compiler-generated type names.</li>
+        <li>Fixed dynamic assemblies handling in TypeResolver.</li>
+        <li>Fixed thin client streamer not creating SQL table entries.</li>
+        <li>Fixed verify-nuget.ps1 failure when .NET 5 is installed.</li>
+    </ul>
+    <h2>Ignite C++</h2>
+    <ul>
+        <li>Added Compute task functionality.</li>
+        <li>Added support for affinity fields.</li>
+        <li>Extended platforms API to call Java versioned entry processor.</li>
+        <li>Fixed compilation on Visual Studio.</li>
+        <li>Implemented building windows installer of ODBC Driver on CMake.</li>
+        <li>Removed separate JNI module and moved it to Core.</li>
+    </ul>
+    <h2>SQL</h2>
+    <ul>
+        <li>Added support of precision parameter for varbinary type.</li>
+        <li>Fixed PK flag ordering in SQL AST traverse.</li>
+        <li>Fixed incorrect JOIN when querying a single-node cluster.</li>
+        <li>Fixed setting alias for affinity fields.</li>
+        <li>Implemented table statistics.</li>
+    </ul>
+</body>