You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by pa...@apache.org on 2025/11/10 15:11:44 UTC
(hbase-site) branch asf-site-staging updated: HBASE-29689 Update new website with latest improvements
This is an automated email from the ASF dual-hosted git repository.
paksyd pushed a commit to branch asf-site-staging
in repository https://gitbox.apache.org/repos/asf/hbase-site.git
The following commit(s) were added to refs/heads/asf-site-staging by this push:
new fd05801a1c8 HBASE-29689 Update new website with latest improvements
fd05801a1c8 is described below
commit fd05801a1c8545fe712ae17d76ddab1b0d1afb51
Author: Dávid Paksy <pa...@gmail.com>
AuthorDate: Mon Nov 10 16:11:33 2025 +0100
HBASE-29689 Update new website with latest improvements
---
__spa-fallback.html | 10 +--
acid-semantics/index.html | 15 ++--
assets/acid-semantics-CYo_TaA9.js | 127 ++++++++++++++++++++++++++++++
assets/app-BzlgZNf1.css | 1 +
assets/code-of-conduct-CJPklNRV.js | 44 +++++++++++
assets/downloads-BRAGpK9n.js | 45 +++++++++++
assets/mailing-lists-doDVBa9G.js | 32 ++++++++
assets/manifest-339485e6.js | 1 +
assets/root-CPpn2GwT.js | 75 ++++++++++++++++++
assets/source-repository-D7Xzv9nd.js | 53 +++++++++++++
assets/sponsors-D__nLzUg.js | 35 +++++++++
assets/team-7qd-tD0H.js | 147 +++++++++++++++++++++++++++++++++++
code-of-conduct/index.html | 13 ++--
downloads/index.html | 13 ++--
fonts/inter-latin-wght-italic.woff2 | Bin 0 -> 51832 bytes
fonts/inter-latin-wght-normal.woff2 | Bin 0 -> 48256 bytes
index.html | 10 +--
mailing-lists/index.html | 13 ++--
news/index.html | 10 +--
other-resources/index.html | 10 +--
powered-by-hbase/index.html | 10 +--
source-repository/index.html | 13 ++--
sponsors/index.html | 13 ++--
team/index.html | 13 ++--
24 files changed, 635 insertions(+), 68 deletions(-)
diff --git a/__spa-fallback.html b/__spa-fallback.html
index a8f5c138ae5..0562736df64 100644
--- a/__spa-fallback.html
+++ b/__spa-fallback.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="modulepreload" href="/assets/manifest-a00575a7.js"/><link rel="modulepreload" href="/assets/entry.client-D-YQWBLI.js"/><link rel="modulepreload" href="/ass [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-latin-wght-italic.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="modulepreload" href="/assets/manifest-339485e6.js"/><link rel [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,16 +12,16 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
console.log(
"💿 Hey developer 👋. You can provide a way better UX than this " +
"when your app is loading JS modules and/or running `clientLoader` " +
"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
"for more information."
);
- </script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ </script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
window.__reactRouterRouteModules = {"root":route0};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
diff --git a/acid-semantics/index.html b/acid-semantics/index.html
index 2d63a064581..a8bc3415794 100644
--- a/acid-semantics/index.html
+++ b/acid-semantics/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics - Apache HBase</title><meta name="description" content="Apache HBase ACID properties and guarantees specification."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="modulepreload" h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics - Apache HBase</title><meta name="description" content="Apache HBase ACID properties and guarantees specification."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-l [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">ACID properties of HBase</h1>
<p class="mb-4 text-base leading-7">Apache HBase (TM) is not an ACID compliant database. However, it does guarantee certain specific properties.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">Definitions</h2>
<p class="mb-4 text-base leading-7">For the sake of common vocabulary, we define the following terms:</p>
@@ -114,7 +115,7 @@ an update is considered visible if any subsequent read will see the update as ha
<li class="leading-7">Durability may be tuned to only flush data to disk on a periodic basis</li>
</ul>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">More Information</h2>
-<p class="mb-4 text-base leading-7">For more information, see the <a class="text-primary underline-offset-4 hover:underline" href="/acid-semantics/book.html#client" data-discover="true">client architecture</a> or <a class="text-primary underline-offset-4 hover:underline" href="/acid-semantics/book.html#datamodel" data-discover="true">data model</a> sections in the Apache HBase Reference Guide.</p>
+<p class="mb-4 text-base leading-7">For more information, see the <a class="text-primary underline-offset-4 hover:underline" href="https://hbase.apache.org/book.html#client">client architecture</a> or <a class="text-primary underline-offset-4 hover:underline" href="https://hbase.apache.org/book.html#datamodel">data model</a> sections in the Apache HBase Reference Guide.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">Footnotes</h2>
<p class="mb-4 text-base leading-7">[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a portion of a row in one RPC then going back to fetch another portion of the row in a subsequent RPC. Intra-row scanning happens when you set a limit on how many values to return per Scan#next (See <a href="http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int)" target="_blank" rel="noopener noreferrer" class="text-primary inline underline-of [...]
<p class="mb-4 text-base leading-7">[2] In the context of Apache HBase, "durably on disk" implies an hflush() call on the transaction log. This does not actually imply an fsync() to magnetic media, but rather just that the data has been written to the OS cache on all replicas of the log. In the case of a full datacenter power loss, it is possible that the edits are not truly durable.</p>
@@ -133,11 +134,11 @@ an update is considered visible if any subsequent read will see the update as ha
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/acid-semantics-uL_sMrFF.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/acid-semantics-CYo_TaA9.js";
window.__reactRouterRouteModules = {"root":route0,"routes/acid-semantics":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/assets/acid-semantics-CYo_TaA9.js b/assets/acid-semantics-CYo_TaA9.js
new file mode 100644
index 00000000000..4ead2d45471
--- /dev/null
+++ b/assets/acid-semantics-CYo_TaA9.js
@@ -0,0 +1,127 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# ACID properties of HBase
+
+Apache HBase (TM) is not an ACID compliant database. However, it does guarantee certain specific properties.
+
+## Definitions
+
+For the sake of common vocabulary, we define the following terms:
+
+**Atomicity**
+an operation is atomic if it either completes entirely or not at all
+
+**Consistency**
+all actions cause the table to transition from one valid state directly to another (eg a row will not disappear during an update, etc)
+
+**Isolation**
+an operation is isolated if it appears to complete independently of any other concurrent transaction
+
+**Durability**
+any update that reports "successful" to the client will not be lost
+
+**Visibility**
+an update is considered visible if any subsequent read will see the update as having been committed
+
+The terms _must_ and _may_ are used as specified by RFC 2119. In short, the word "must" implies that, if some case exists where the statement is not true, it is a bug. The word "may" implies that, even if the guarantee is provided in a current release, users should not rely on it.
+
+## APIs to consider
+
+- Read APIs
+ - get
+ - scan
+- Write APIs
+ - put
+ - batch put
+ - delete
+- Combination (read-modify-write) APIs
+ - incrementColumnValue
+ - checkAndPut
+
+## Guarantees Provided
+
+### Atomicity
+
+1. All mutations are atomic within a row. Any put will either wholly succeed or wholly fail.[3]
+ 1. An operation that returns a "success" code has completely succeeded.
+ 2. An operation that returns a "failure" code has completely failed.
+ 3. An operation that times out may have succeeded and may have failed. However, it will not have partially succeeded or failed.
+2. This is true even if the mutation crosses multiple column families within a row.
+3. APIs that mutate several rows will _not_ be atomic across the multiple rows. For example, a multiput that operates on rows 'a','b', and 'c' may return having mutated some but not all of the rows. In such cases, these APIs will return a list of success codes, each of which may be succeeded, failed, or timed out as described above.
+4. The checkAndPut API happens atomically like the typical compareAndSet (CAS) operation found in many hardware architectures.
+5. The order of mutations is seen to happen in a well-defined order for each row, with no interleaving. For example, if one writer issues the mutation "a=1,b=1,c=1" and another writer issues the mutation "a=2,b=2,c=2", the row must either be "a=1,b=1,c=1" or "a=2,b=2,c=2" and must _not_ be something like "a=1,b=2,c=1".
+ 1. Please note that this is not true _across rows_ for multirow batch mutations.
+
+### Consistency and Isolation
+
+1. All rows returned via any access API will consist of a complete row that existed at some point in the table's history.
+2. This is true across column families - i.e a get of a full row that occurs concurrent with some mutations 1,2,3,4,5 will return a complete row that existed at some point in time between mutation i and i+1 for some i between 1 and 5.
+3. The state of a row will only move forward through the history of edits to it.
+
+#### Consistency of Scans
+
+A scan is **not** a consistent view of a table. Scans do **not** exhibit _snapshot isolation_.
+
+Rather, scans have the following properties:
+
+1. Any row returned by the scan will be a consistent view (i.e. that version of the complete row existed at some point in time) [1]
+2. A scan will always reflect a view of the data _at least as new as_ the beginning of the scan. This satisfies the visibility guarantees enumerated below.
+ 1. For example, if client A writes data X and then communicates via a side channel to client B, any scans started by client B will contain data at least as new as X.
+ 2. A scan _must_ reflect all mutations committed prior to the construction of the scanner, and _may_ reflect some mutations committed subsequent to the construction of the scanner.
+ 3. Scans must include _all_ data written prior to the scan (except in the case where data is subsequently mutated, in which case it _may_ reflect the mutation)
+
+Those familiar with relational databases will recognize this isolation level as "read committed".
+
+Please note that the guarantees listed above regarding scanner consistency are referring to "transaction commit time", not the "timestamp" field of each cell. That is to say, a scanner started at time _t_ may see edits with a timestamp value greater than _t_, if those edits were committed with a "forward dated" timestamp before the scanner was constructed.
+
+### Visibility
+
+1. When a client receives a "success" response for any mutation, that mutation is immediately visible to both that client and any client with whom it later communicates through side channels. [3]
+2. A row must never exhibit so-called "time-travel" properties. That is to say, if a series of mutations moves a row sequentially through a series of states, any sequence of concurrent reads will return a subsequence of those states.
+ 1. For example, if a row's cells are mutated using the "incrementColumnValue" API, a client must never see the value of any cell decrease.
+ 2. This is true regardless of which read API is used to read back the mutation.
+3. Any version of a cell that has been returned to a read operation is guaranteed to be durably stored.
+
+### Durability
+
+1. All visible data is also durable data. That is to say, a read will never return data that has not been made durable on disk[2]
+2. Any operation that returns a "success" code (eg does not throw an exception) will be made durable.[3]
+3. Any operation that returns a "failure" code will not be made durable (subject to the Atomicity guarantees above)
+4. All reasonable failure scenarios will not affect any of the guarantees of this document.
+
+### Tunability
+
+All of the above guarantees must be possible within Apache HBase. For users who would like to trade off some guarantees for performance, HBase may offer several tuning options. For example:
+
+- Visibility may be tuned on a per-read basis to allow stale reads or time travel.
+- Durability may be tuned to only flush data to disk on a periodic basis
+
+## More Information
+
+For more information, see the [client architecture](https://hbase.apache.org/book.html#client) or [data model](https://hbase.apache.org/book.html#datamodel) sections in the Apache HBase Reference Guide.
+
+## Footnotes
+
+[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a portion of a row in one RPC then going back to fetch another portion of the row in a subsequent RPC. Intra-row scanning happens when you set a limit on how many values to return per Scan#next (See [Scan#setBatch(int)](http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int))).
+
+[2] In the context of Apache HBase, "durably on disk" implies an hflush() call on the transaction log. This does not actually imply an fsync() to magnetic media, but rather just that the data has been written to the OS cache on all replicas of the log. In the case of a full datacenter power loss, it is possible that the edits are not truly durable.
+
+[3] Puts will either wholly succeed or wholly fail, provided that they are actually sent to the RegionServer. If the writebuffer is used, Puts will not be sent until the writebuffer is filled or it is explicitly flushed.
+
+`;function i(){return e.jsx(n,{children:a})}function h({}){return[{title:"ACID Semantics - Apache HBase"},{name:"description",content:"Apache HBase ACID properties and guarantees specification."}]}const u=t(function(){return e.jsx(i,{})});export{u as default,h as meta};
diff --git a/assets/app-BzlgZNf1.css b/assets/app-BzlgZNf1.css
new file mode 100644
index 00000000000..9e4e43e450d
--- /dev/null
+++ b/assets/app-BzlgZNf1.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style [...]
diff --git a/assets/code-of-conduct-CJPklNRV.js b/assets/code-of-conduct-CJPklNRV.js
new file mode 100644
index 00000000000..d09a0cb9e02
--- /dev/null
+++ b/assets/code-of-conduct-CJPklNRV.js
@@ -0,0 +1,44 @@
+import{p as e,w as n}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const i=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Code of Conduct
+
+## Policy
+
+We expect participants in discussions on the HBase project mailing lists, IRC channels, and JIRA issues to abide by the Apache Software Foundation's [Code of Conduct](http://apache.org/foundation/policies/conduct.html).
+
+If you feel there has been a violation of this code, please point out your concerns publicly in a friendly and matter of fact manner. Nonverbal communication is prone to misinterpretation and misunderstanding. Everyone has bad days and sometimes says things they regret later. Someone else's communication style may clash with yours, but the difference can be amicably resolved. After pointing out your concerns please be generous upon receiving an apology.
+
+Should there be repeated instances of code of conduct violations, or if there is an obvious and severe violation, the HBase PMC may become involved. When this happens the PMC will openly discuss the matter, most likely on the dev@hbase mailing list, and will consider taking the following actions, in order, if there is a continuing problem with an individual:
+
+1. A friendly off-list warning;
+2. A friendly public warning, if the communication at issue was on list, otherwise another off-list warning;
+3. A three month suspension from the public mailing lists and possible operator action in the IRC channels.
+4. A permanent ban from the public mailing lists, IRC channels, and project JIRA.
+
+For flagrant violations requiring a firm response the PMC may opt to skip early steps. No action will be taken before public discussion leading to consensus or a successful majority vote.
+
+## Diversity Statement
+
+As a project and a community, we encourage you to participate in the HBase project in whatever capacity suits you, whether it involves development, documentation, answering questions on mailing lists, triaging issue and patch review, managing releases, or any other way that you want to help. We appreciate your contributions and the time you dedicate to the HBase project. We strive to recognize the work of participants publicly. Please let us know if we can improve in this area.
+
+We value diversity and strive to support participation by people with all different backgrounds. Rich projects grow from groups with different points of view and different backgrounds. We welcome your suggestions about how we can welcome participation by people at all skill levels and with all aspects of the project.
+
+If you can think of something we are doing that we shouldn't, or something that we should do but aren't, please let us know. If you feel comfortable doing so, use the public mailing lists. Otherwise, reach out to a PMC member or send an email to [the private PMC mailing list](mailto:private@hbase.apache.org).
+
+`;function o(){return e.jsx(t,{children:i})}function h({}){return[{title:"Code of Conduct - Apache HBase"},{name:"description",content:"Code of Conduct and Diversity Statement for the Apache HBase project community."}]}const u=n(function(){return e.jsx(o,{})});export{u as default,h as meta};
diff --git a/assets/downloads-BRAGpK9n.js b/assets/downloads-BRAGpK9n.js
new file mode 100644
index 00000000000..7b04828004d
--- /dev/null
+++ b/assets/downloads-BRAGpK9n.js
@@ -0,0 +1,45 @@
+import{p as a,w as e}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as s}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Downloads
+
+The below table lists mirrored release artifacts and their associated hashes and signatures available ONLY at apache.org. The keys used to sign releases can be found in our published [KEYS](https://downloads.apache.org/hbase/KEYS) file. See [Verify The Integrity Of The Files](https://www.apache.org/dyn/closer.cgi#verify) for how to verify your mirrored downloads.
+
+## Releases
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 3.0.0-beta-1 | 2024/01/14 | [3.0.0-beta-1 vs 2.0.0](https://downloads.apache.org/hbase/3.0.0-beta-1/api_compare_2.0.0_to_3.0.0-beta-1RC0.html) | [Changes](https://downloads.apache.org/hbase/3.0.0-beta-1/CHANGES.md) | [Release Notes](https://downloads.apache.org/hbase/3.0.0-beta-1/RELEASENOTES.md) | [src](https://www.apache.org/dyn/closer.lua/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz) ([sha512](https://downloads.apache.org/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz.sha512) [...]
+| 2.6.3 | 2025/07/15 | [2.6.2 vs 2.6.3](https://downloads.apache.org/hbase/2.6.3/api_compare_2.6.2_to_2.6.3RC2.html) | [Changes](https://downloads.apache.org/hbase/2.6.3/CHANGES.md) | [Release Notes](https://downloads.apache.org/hbase/2.6.3/RELEASENOTES.md) | [src](https://www.apache.org/dyn/closer.lua/hbase/2.6.3/hbase-2.6.3-src.tar.gz) ([sha512](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz.sha512) [asc](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz. [...]
+| 2.5.12 | 2025/07/24 | [2.5.12 vs 2.5.11](https://downloads.apache.org/hbase/2.5.12/api_compare_2.5.11_to_2.5.12RC0.html) | [Changes](https://downloads.apache.org/hbase/2.5.12/CHANGES.md) | [Release Notes](https://downloads.apache.org/hbase/2.5.12/RELEASENOTES.md) | [src](https://www.apache.org/dyn/closer.lua/hbase/2.5.12/hbase-2.5.12-src.tar.gz) ([sha512](https://downloads.apache.org/hbase/2.5.12/hbase-2.5.12-src.tar.gz.sha512) [asc](https://downloads.apache.org/hbase/2.5.12/hbase-2.5. [...]
+
+## Connectors
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.0.1 | 2023/10/27 | | [Changes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/CHANGELOG.md) | [Release Notes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/RELEASENOTES.md) | [src](https://www.apache.org/dyn/closer.lua/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz) ([sha512](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz.sha512) [asc](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-co [...]
+
+## HBase Operator Tools
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.2.0 | 2021/12/24 | | [Changes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/CHANGES.md) | [Release Notes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/RELEASENOTES.md) | [src](https://www.apache.org/dyn/closer.lua/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz) ([sha512](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz.sha512) [asc](https://downloads.apache.org/hbase/hbase-ope [...]
+
+If you are looking for an old release that is not present here or on the mirror, check the [Apache Archive](https://archive.apache.org/dist/hbase/).
+
+`;function t(){return a.jsx(s,{children:o})}function p({}){return[{title:"Downloads - Apache HBase"},{name:"description",content:"Download Apache HBase releases, connectors, and operator tools with verification hashes and signatures."}]}const i=e(function(){return a.jsx(t,{})});export{i as default,p as meta};
diff --git a/assets/mailing-lists-doDVBa9G.js b/assets/mailing-lists-doDVBa9G.js
new file mode 100644
index 00000000000..f19d9c6255f
--- /dev/null
+++ b/assets/mailing-lists-doDVBa9G.js
@@ -0,0 +1,32 @@
+import{p as e,w as s}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as i}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Apache HBase™ Mailing Lists
+
+For each list, links are provided to subscribe, unsubscribe, and view archives.
+
+| Name | Subscribe | Unsubscribe | Post | Archive | Other Archives |
+|------|-----------|-------------|------|---------|----------------|
+| User List | [Subscribe](mailto:user-subscribe@hbase.apache.org) | [Unsubscribe](mailto:user-unsubscribe@hbase.apache.org) | [Post](mailto:user@hbase.apache.org) | [lists.apache.org](https://lists.apache.org/list.html?user@hbase.apache.org) | [dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user) |
+| Developer List | [Subscribe](mailto:dev-subscribe@hbase.apache.org) | [Unsubscribe](mailto:dev-unsubscribe@hbase.apache.org) | [Post](mailto:dev@hbase.apache.org) | [lists.apache.org](https://lists.apache.org/list.html?dev@hbase.apache.org) | [dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel) |
+| Commits List | [Subscribe](mailto:commits-subscribe@hbase.apache.org) | [Unsubscribe](mailto:commits-unsubscribe@hbase.apache.org) | - | [lists.apache.org](https://lists.apache.org/list.html?commits@hbase.apache.org) | - |
+| Issues List | [Subscribe](mailto:issues-subscribe@hbase.apache.org) | [Unsubscribe](mailto:issues-unsubscribe@hbase.apache.org) | - | [lists.apache.org](https://lists.apache.org/list.html?issues@hbase.apache.org) | - |
+| Builds List | [Subscribe](mailto:builds-subscribe@hbase.apache.org) | [Unsubscribe](mailto:builds-unsubscribe@hbase.apache.org) | - | [lists.apache.org](https://lists.apache.org/list.html?builds@hbase.apache.org) | - |
+| User (ZH) List | [Subscribe](mailto:user-zh-subscribe@hbase.apache.org) | [Unsubscribe](mailto:user-zh-unsubscribe@hbase.apache.org) | [Post](mailto:user-zh@hbase.apache.org) | [lists.apache.org](https://lists.apache.org/list.html?user-zh@hbase.apache.org) | - |
+
+`;function t(){return e.jsx(i,{children:a})}function b({}){return[{title:"Mailing Lists - Apache HBase"},{name:"description",content:"Subscribe to Apache HBase mailing lists including user, developer, commits, issues, and builds lists."}]}const u=s(function(){return e.jsx(t,{})});export{u as default,b as meta};
diff --git a/assets/manifest-339485e6.js b/assets/manifest-339485e6.js
new file mode 100644
index 00000000000..a2f9346ba65
--- /dev/null
+++ b/assets/manifest-339485e6.js
@@ -0,0 +1 @@
+window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-D-YQWBLI.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasErrorBoundary":true,"module":"/assets/root-CPpn2GwT.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js","/assets/button-DZJtN4v4.js","/ass [...]
\ No newline at end of file
diff --git a/assets/root-CPpn2GwT.js b/assets/root-CPpn2GwT.js
new file mode 100644
index 00000000000..62d3ed8b51f
--- /dev/null
+++ b/assets/root-CPpn2GwT.js
@@ -0,0 +1,75 @@
+import{p as s,L as I,a as c,R as he,q as Fo,w as $o,t as Bo,M as Wo,v as Ho,S as zo,x as Uo,O as Vo,i as Go}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{c as V,B as qn}from"./button-DZJtN4v4.js";import{a as Gt,R as Ko}from"./index-CzkX0Xv9.js";import{c as ht}from"./createLucideIcon-2kDJI1LL.js";import{E as z}from"./external-link-BRT3Rnas.js";const Yo="/assets/app-BzlgZNf1.css",We=[{label:"Overview",to:"/"},{label:"Downloads",to:"/downloads"},{label:"Mailing Lists",to:"/mailing-lists"},{labe [...]
+ .`.concat(yi,` {
+ overflow: hidden `).concat(r,`;
+ padding-right: `).concat(l,"px ").concat(r,`;
+ }
+ body[`).concat(Ce,`] {
+ overflow: hidden `).concat(r,`;
+ overscroll-behavior: contain;
+ `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
+ padding-left: `.concat(o,`px;
+ padding-top: `).concat(a,`px;
+ padding-right: `).concat(i,`px;
+ margin-left:0;
+ margin-top:0;
+ margin-right: `).concat(l,"px ").concat(r,`;
+ `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),`
+ }
+
+ .`).concat(ot,` {
+ right: `).concat(l,"px ").concat(r,`;
+ }
+
+ .`).concat(st,` {
+ margin-right: `).concat(l,"px ").concat(r,`;
+ }
+
+ .`).concat(ot," .").concat(ot,` {
+ right: 0 `).concat(r,`;
+ }
+
+ .`).concat(st," .").concat(st,` {
+ margin-right: 0 `).concat(r,`;
+ }
+
+ body[`).concat(Ce,`] {
+ `).concat(Ci,": ").concat(l,`px;
+ }
+`)},$n=function(){var e=parseInt(document.body.getAttribute(Ce)||"0",10);return isFinite(e)?e:0},Wi=function(){c.useEffect(function(){return document.body.setAttribute(Ce,($n()+1).toString()),function(){var e=$n()-1;e<=0?document.body.removeAttribute(Ce):document.body.setAttribute(Ce,e.toString())}},[])},Hi=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Wi();var a=c.useMemo(function(){return Fi(o)},[o]);return c.createElement($i,{styles:Bi(a,!t,o,n?"": [...]
+ .block-interactivity-`.concat(e,` {pointer-events: none;}
+ .allow-interactivity-`).concat(e,` {pointer-events: all;}
+`)},Ji=0,be=[];function Qi(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Ji++)[0],a=c.useState(Wr)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var m=bi([e.lockRef.current],(e.shards||[]).map(Hn),!0).filter(Boolean);return m.forEach(function(w){return w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interacti [...]
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Pe=ht("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Z=ht("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const yl=ht("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Cl=ht("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function dn({...e}){return s.jsx(fl,{"data-slot":"dropdown-menu",...e})}fu [...]
+ (function() {
+ const theme = localStorage.getItem('theme');
+ const root = document.documentElement;
+ root.classList.remove('light', 'dark');
+
+ if (theme && ['light', 'dark'].includes(theme)) {
+ root.classList.add(theme);
+ } else {
+ const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
+ root.classList.add(systemTheme);
+ localStorage.setItem('theme', systemTheme);
+ }
+ })();
+ `}}),s.jsx("noscript",{children:s.jsx("style",{children:".theme-toggle-wrapper { display: none !important; }"})})]}),s.jsx("body",{className:"font-base",children:s.jsxs(Ml,{defaultTheme:"light",children:[s.jsx(Ol,{}),e,s.jsx(zo,{}),s.jsx(Uo,{}),s.jsx(Hl,{}),s.jsx(Zo,{})]})})]})}const ql=$o(function(){return s.jsx(Vo,{})}),Zl=Bo(function({error:t}){let n="Oops!",r="An unexpected error occurred.",o;return Go(t)&&(n=t.status===404?"404":"Error",r=t.status===404?"The requested pa [...]
diff --git a/assets/source-repository-D7Xzv9nd.js b/assets/source-repository-D7Xzv9nd.js
new file mode 100644
index 00000000000..440a394a718
--- /dev/null
+++ b/assets/source-repository-D7Xzv9nd.js
@@ -0,0 +1,53 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Overview
+
+Apache HBase™ uses [Git](https://git-scm.com/) to manage its source code. Instructions on Git use can be found at [https://git-scm.com/documentation](https://git-scm.com/documentation).
+
+### Web Browser Access
+
+The following is a link to a browsable version of the source repository:
+
+\`\`\`
+https://gitbox.apache.org/repos/asf?p=hbase.git
+\`\`\`
+
+[Browse the repository](https://gitbox.apache.org/repos/asf?p=hbase.git)
+
+### Anonymous Access
+
+The source can be checked out anonymously from Git with this command (See [https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)):
+
+\`\`\`bash
+$ git clone git://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Developer Access
+
+Only project developers can access the Git tree via this method (See [https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)).
+
+\`\`\`bash
+$ git clone https://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Access from Behind a Firewall
+
+Refer to the documentation of the SCM used for more information about access behind a firewall.
+
+`;function s(){return e.jsx(n,{children:o})}function p({}){return[{title:"Source Repository - Apache HBase"},{name:"description",content:"Access the Apache HBase source code repository."}]}const m=t(function(){return e.jsx(s,{})});export{m as default,p as meta};
diff --git a/assets/sponsors-D__nLzUg.js b/assets/sponsors-D__nLzUg.js
new file mode 100644
index 00000000000..608880c2eb2
--- /dev/null
+++ b/assets/sponsors-D__nLzUg.js
@@ -0,0 +1,35 @@
+import{p as e,w as o}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const n=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Sponsors
+
+First off, thanks to [all who sponsor](http://www.apache.org/foundation/thanks.html) our parent, the Apache Software Foundation.
+
+The below companies have been gracious enough to provide their commercial tool offerings free of charge to the Apache HBase™ project.
+
+- The crew at [ej-technologies](http://www.ej-technologies.com/) have been let us use [JProfiler](http://www.ej-technologies.com/products/jprofiler/overview.html) for years now.
+- The lads at [headway software](http://headwaysoftware.com/) have given us a license for [Restructure101](http://headwaysoftware.com/products/?code=Restructure101) so we can untangle our interdependency mess.
+- [YourKit](http://www.yourkit.com) allows us to use their [Java Profiler](http://www.yourkit.com/overview/index.jsp).
+- Some of us use [IntelliJ IDEA](http://www.jetbrains.com/idea) thanks to [JetBrains](http://www.jetbrains.com/).
+- Thank you to Boris at [Vector Portal](http://www.vectorportal.com/) for granting us a license on the [image](http://www.vectorportal.com/subcategory/205/KILLER-WHALE-FREE-VECTOR.eps/ifile/9136/detailtest.asp) on which our logo is based.
+
+## Sponsoring the Apache Software Foundation
+
+To contribute to the Apache Software Foundation, a good idea in our opinion, see the [ASF Sponsorship](http://www.apache.org/foundation/sponsorship.html) page.
+
+`;function r(){return e.jsx(t,{children:n})}function p({}){return[{title:"Sponsors - Apache HBase"},{name:"description",content:"Companies and organizations that sponsor the Apache HBase project with tools and resources."}]}const w=o(function(){return e.jsx(r,{})});export{w as default,p as meta};
diff --git a/assets/team-7qd-tD0H.js b/assets/team-7qd-tD0H.js
new file mode 100644
index 00000000000..c5a6a36274a
--- /dev/null
+++ b/assets/team-7qd-tD0H.js
@@ -0,0 +1,147 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as o}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const c=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# The Team
+
+A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.
+
+The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.
+
+## Members
+
+These are the developers with commit privileges that have directly contributed to the project in one way or another.
+
+| Image | Id | Name | Email | Time Zone |
+|-------|----|----|-------|-----------|
+|  | achouhan | Abhishek Singh Chouhan | [achouhan@apache.org](mailto:achouhan@apache.org) | +5 |
+|  | acube123 | Amitanand S. Aiyer | [acube123@apache.org](mailto:acube123@apache.org) | -8 |
+|  | allan163 | Allan Yang | [allan163@apache.org](mailto:allan163@apache.org) | +8 |
+|  | andor | Andor Molnar | [andor@apache.org](mailto:andor@apache.org) | -5 |
+|  | appy | Apekshit Sharma | [appy@apache.org](mailto:appy@apache.org) | -8 |
+|  | anastasia | Anastasia Braginsky | [anastasia@apache.org](mailto:anastasia@apache.org) | +2 |
+|  | apurtell | Andrew Purtell | [apurtell@apache.org](mailto:apurtell@apache.org) | -8 |
+|  | anoopsamjohn | Anoop Sam John | [anoopsamjohn@apache.org](mailto:anoopsamjohn@apache.org) | +5 |
+|  | antonov | Mikhail Antonov | [antonov@apache.org](mailto:antonov@apache.org) | -8 |
+|  | ashishsinghi | Ashish Singhi | [ashishsinghi@apache.org](mailto:ashishsinghi@apache.org) | +5 |
+|  | ashu | Ashu Pachauri | [ashu@apache.org](mailto:ashu@apache.org) | +5 |
+|  | bharathv | Bharath Vissapragada | [bharathv@apache.org](mailto:bharathv@apache.org) | -8 |
+|  | binlijin | Lijin Bin | [binlijin@apache.org](mailto:binlijin@apache.org) | +8 |
+|  | brfrn169 | Toshihiro Suzuki | [brfrn169@apache.org](mailto:brfrn169@apache.org) | +9 |
+|  | busbey | Sean Busbey | [busbey@apache.org](mailto:busbey@apache.org) | -6 |
+|  | chenglei | Cheng Lei | [chenglei@apache.org](mailto:chenglei@apache.org) | +8 |
+|  | chenheng | Heng Chen | [chenheng@apache.org](mailto:chenheng@apache.org) | +8 |
+|  | chia7712 | Chia-Ping Tsai | [chia7712@apache.org](mailto:chia7712@apache.org) | +8 |
+|  | ddas | Devaraj Das | [ddas@apache.org](mailto:ddas@apache.org) | -8 |
+|  | dimaspivak | Dima Spivak | [dimaspivak@apache.org](mailto:dimaspivak@apache.org) | -8 |
+|  | dmeil | Doug Meil | [dmeil@apache.org](mailto:dmeil@apache.org) | -5 |
+|  | eclark | Elliott Clark | [eclark@apache.org](mailto:eclark@apache.org) | -8 |
+|  | elserj | Josh Elser | [elserj@apache.org](mailto:elserj@apache.org) | -5 |
+|  | enis | Enis Soztutar | [enis@apache.org](mailto:enis@apache.org) | -8 |
+|  | eshcar | Eshcar Hillel | [eshcar@apache.org](mailto:eshcar@apache.org) | +2 |
+|  | fenghh | Honghua Feng | [fenghh@apache.org](mailto:fenghh@apache.org) | +8 |
+|  | garyh | Gary Helmling | [garyh@apache.org](mailto:garyh@apache.org) | -8 |
+|  | gchanan | Gregory Chanan | [gchanan@apache.org](mailto:gchanan@apache.org) | -8 |
+|  | gjacoby | Geoffrey Jacoby | [gjacoby@apache.org](mailto:gjacoby@apache.org) | -5 |
+|  | gxcheng | Guangxu Cheng | [gxcheng@apache.org](mailto:gxcheng@apache.org) | +8 |
+|  | haxiaolin | Xiaolin Ha | [haxiaolin@apache.org](mailto:haxiaolin@apache.org) | +8 |
+|  | huaxiangsun | Huaxiang Sun | [huaxiangsun@apache.org](mailto:huaxiangsun@apache.org) | -8 |
+|  | huiruan | Hui Ruan | [huiruan@apache.org](mailto:huiruan@apache.org) | +8 |
+|  | jdcryans | Jean-Daniel Cryans | [jdcryans@apache.org](mailto:jdcryans@apache.org) | -8 |
+|  | jeffreyz | Jeffrey Zhong | [jeffreyz@apache.org](mailto:jeffreyz@apache.org) | -8 |
+|  | jerryjch | Jing Chen (Jerry) He | [jerryjch@apache.org](mailto:jerryjch@apache.org) | -8 |
+|  | jyates | Jesse Yates | [jyates@apache.org](mailto:jyates@apache.org) | -8 |
+|  | jgray | Jonathan Gray | [jgray@fb.com](mailto:jgray@fb.com) | -8 |
+|  | jingchengdu | Jingcheng Du | [jingchengdu@apache.org](mailto:jingchengdu@apache.org) | +8 |
+|  | esteban | Esteban Gutierrez | [esteban@apache.org](mailto:esteban@apache.org) | -8 |
+|  | janh | Jan Hentschel | [janh@apache.org](mailto:janh@apache.org) | +1 |
+|  | jmhsieh | Jonathan Hsieh | [jmhsieh@apache.org](mailto:jmhsieh@apache.org) | -8 |
+|  | junegunn | Junegunn Choi | [junegunn@apache.org](mailto:junegunn@apache.org) | +9 |
+|  | jxiang | Jimmy Xiang | [jxiang@apache.org](mailto:jxiang@apache.org) | -8 |
+|  | kannan | Kannan Muthukkaruppan | [kannan@fb.com](mailto:kannan@fb.com) | -8 |
+|  | karthik | Karthik Ranganathan | [kranganathan@fb.com](mailto:kranganathan@fb.com) | -8 |
+|  | larsfrancke | Lars Francke | [larsfrancke@apache.org](mailto:larsfrancke@apache.org) | Europe/Berlin |
+|  | larsgeorge | Lars George | [larsgeorge@apache.org](mailto:larsgeorge@apache.org) | +1 |
+|  | larsh | Lars Hofhansl | [larsh@apache.org](mailto:larsh@apache.org) | -8 |
+|  | liangxie | Liang Xie | [liangxie@apache.org](mailto:liangxie@apache.org) | +8 |
+|  | liushaohui | Shaohui Liu | [liushaohui@apache.org](mailto:liushaohui@apache.org) | +8 |
+|  | liyin | Liyin Tang | [liyin.tang@fb.com](mailto:liyin.tang@fb.com) | -8 |
+|  | liyu | Yu Li | [liyu@apache.org](mailto:liyu@apache.org) | +8 |
+|  | lupeng | Peng Lu | [lupeng@apache.org](mailto:lupeng@apache.org) | +8 |
+|  | mbautin | Mikhail Bautin | [mbautin@apache.org](mailto:mbautin@apache.org) | -8 |
+|  | mbertozzi | Matteo Bertozzi | [mbertozzi@apache.org](mailto:mbertozzi@apache.org) | 0 |
+|  | mdrob | Mike Drob | [mdrob@apache.org](mailto:mdrob@apache.org) | -5 |
+|  | meszibalu | Balazs Meszaros | [meszibalu@apache.org](mailto:meszibalu@apache.org) | +1 |
+|  | misty | Misty Stanley-Jones | [misty@apache.org](mailto:misty@apache.org) | -8 |
+|  | ndimiduk | Nick Dimiduk | [ndimiduk@apache.org](mailto:ndimiduk@apache.org) | -8 |
+|  | nihaljain | Nihal Jain | [nihaljain@apache.org](mailto:nihaljain@apache.org) | +5 |
+|  | niuyulin | Yulin Niu | [niuyulin@apache.org](mailto:niuyulin@apache.org) | +8 |
+|  | nkeywal | Nicolas Liochon | [nkeywal@apache.org](mailto:nkeywal@apache.org) | +1 |
+|  | nspiegelberg | Nicolas Spiegelberg | [nspiegelberg@fb.com](mailto:nspiegelberg@fb.com) | -8 |
+|  | octo47 | Andrey Stepachev | [octo47@gmail.com](mailto:octo47@gmail.com) | 0 |
+|  | openinx | Zheng Hu | [openinx@apache.org](mailto:openinx@apache.org) | +8 |
+|  | pankajkumar | Pankaj Kumar | [pankajkumar@apache.org](mailto:pankajkumar@apache.org) | +5 |
+|  | psomogyi | Peter Somogyi | [psomogyi@apache.org](mailto:psomogyi@apache.org) | +1 |
+|  | rajeshbabu | Rajeshbabu Chintaguntla | [rajeshbabu@apache.org](mailto:rajeshbabu@apache.org) | +5 |
+|  | ramkrishna | Ramkrishna S Vasudevan | [ramkrishna@apache.org](mailto:ramkrishna@apache.org) | +5 |
+|  | rawson | Ryan Rawson | [rawson@apache.org](mailto:rawson@apache.org) | -8 |
+|  | reidchan | Reid Chan | [reidchan@apache.org](mailto:reidchan@apache.org) | +8 |
+|  | shahrs87 | Rushabh Shah | [shahrs87@apache.org](mailto:shahrs87@apache.org) | -8 |
+|  | sakthi | Sakthi Vel | [sakthi@apache.org](mailto:sakthi@apache.org) | -8 |
+|  | rmattingly | Ray Mattingly | [rmattingly@apache.org](mailto:rmattingly@apache.org) | -5 |
+|  | sershe | Sergey Shelukhin | [sershe@apache.org](mailto:sershe@apache.org) | -8 |
+|  | ssrungarapu | Srikanth Srungarapu | [ssrungarapu@apache.org](mailto:ssrungarapu@apache.org) | -8 |
+|  | stack | Michael Stack | [stack@apache.org](mailto:stack@apache.org) | -8 |
+|  | stoty | Istvan Toth | [stoty@apache.org](mailto:stoty@apache.org) | +1 |
+|  | syuanjiang | Stephen Yuan Jiang | [syuanjiang@apache.org](mailto:syuanjiang@apache.org) | -8 |
+|  | taklwu | Tak-Lon (Stephen) Wu | [taklwu@apache.org](mailto:taklwu@apache.org) | -8 |
+|  | tedyu | Ted Yu | [yuzhihong@gmail.com](mailto:yuzhihong@gmail.com) | -8 |
+|  | tianhang | Tianhang Tang | [tianhang@apache.org](mailto:tianhang@apache.org) | +8 |
+|  | tianjy | - | [tianjy@apache.org](mailto:tianjy@apache.org) | +8 |
+|  | todd | Todd Lipcon | [todd@apache.org](mailto:todd@apache.org) | -8 |
+|  | toffer | Francis Liu | [toffer@apache.org](mailto:toffer@apache.org) | -8 |
+|  | vikasv | Vikas Vishwakarma | [vikasv@apache.org](mailto:vikasv@apache.org) | +5 |
+|  | virag | Virag Kothari | [virag@yahoo-inc.com](mailto:virag@yahoo-inc.com) | -8 |
+|  | vjasani | Viraj Jasani | [vjasani@apache.org](mailto:vjasani@apache.org) | +5 |
+|  | water | Xiang Li | [xiangli@apache.org](mailto:xiangli@apache.org) | +8 |
+|  | wchevreuil | Wellington Chevreuil | [wchevreuil@apache.org](mailto:wchevreuil@apache.org) | 0 |
+|  | weichiu | Wei-Chiu Chuang | [weichiu@apache.org](mailto:weichiu@apache.org) | -8 |
+|  | xucang | Xu Cang | [xucang@apache.org](mailto:xucang@apache.org) | -8 |
+|  | yangzhe1991 | Phil Yang | [yangzhe1991@apache.org](mailto:yangzhe1991@apache.org) | +8 |
+|  | zghao | Guanghao Zhang | [zghao@apache.org](mailto:zghao@apache.org) | +8 |
+|  | zhangduo | Duo Zhang | [zhangduo@apache.org](mailto:zhangduo@apache.org) | +8 |
+|  | zhaobaiqiang | Baiqiang Zhao | [zhaobaiqiang@apache.org](mailto:zhaobaiqiang@apache.org) | +8 |
+|  | zjushch | Chunhui Shen | [zjushch@apache.org](mailto:zjushch@apache.org) | +8 |
+|  | churro | Rahul Gidwani | [churro@apache.org](mailto:churro@apache.org) | -8 |
+|  | yiliang | Yi Liang | [yiliang@apache.org](mailto:yiliang@apache.org) | -8 |
+|  | zyork | Zach York | [zyork@apache.org](mailto:zyork@apache.org) | -8 |
+|  | meiyi | Yi Mei | [meiyi@apache.org](mailto:meiyi@apache.org) | +8 |
+|  | wangzheng | Zheng (bsglz) Wang | [wangzheng@apache.org](mailto:wangzheng@apache.org) | +8 |
+|  | sunxin | Xin Sun | [sunxin@apache.org](mailto:sunxin@apache.org) | +8 |
+|  | huangzhuoyue | Zhuoyue Huang | [huangzhuoyue@apache.org](mailto:huangzhuoyue@apache.org) | +8 |
+|  | xiaoyt | Yutong Xiao | [xiaoyt@apache.org](mailto:xiaoyt@apache.org) | +8 |
+|  | bbeaudreault | Bryan Beaudreault | [bbeaudreault@apache.org](mailto:bbeaudreault@apache.org) | -5 |
+|  | heliangjun | Liangjun He | [heliangjun@apache.org](mailto:heliangjun@apache.org) | +8 |
+|  | cconnell | Charles Connell | [cconnell@apache.org](mailto:cconnell@apache.org) | -5 |
+|  | chandrakambham | Chandra Kambham | [chandra@apache.org](mailto:chandra@apache.org) | +5 |
+|  | paksyd | Dávid Paksy | [paksyd@apache.org](mailto:paksyd@apache.org) | +1 |
+
+## Contributors
+
+Apache HBase™ does not maintain a list of contributors.
+
+`;function h(){return e.jsx(o,{components:{img:({src:a,alt:r})=>e.jsx("img",{src:a||"",alt:r||"",loading:"lazy",className:"my-0 h-10 w-10 rounded-full"}),td:({children:a})=>e.jsx("td",{className:"px-4 py-3 align-middle",children:a})},children:c})}function s({}){return[{title:"Team - Apache HBase"},{name:"description",content:"Meet the Apache HBase project team members and contributors who develop and maintain HBase."}]}const d=t(function(){return e.jsx(h,{})});export{d as default,s as meta};
diff --git a/code-of-conduct/index.html b/code-of-conduct/index.html
index 6ea637028ba..9373df8618a 100644
--- a/code-of-conduct/index.html
+++ b/code-of-conduct/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct - Apache HBase</title><meta name="description" content="Code of Conduct and Diversity Statement for the Apache HBase project community."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct - Apache HBase</title><meta name="description" content="Code of Conduct and Diversity Statement for the Apache HBase project community."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">Code of Conduct</h1>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">Policy</h2>
<p class="mb-4 text-base leading-7">We expect participants in discussions on the HBase project mailing lists, IRC channels, and JIRA issues to abide by the Apache Software Foundation's <a href="http://apache.org/foundation/policies/conduct.html" target="_blank" rel="noopener noreferrer" class="text-primary inline underline-offset-4 hover:underline">Code of Conduct<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentCo [...]
<p class="mb-4 text-base leading-7">If you feel there has been a violation of this code, please point out your concerns publicly in a friendly and matter of fact manner. Nonverbal communication is prone to misinterpretation and misunderstanding. Everyone has bad days and sometimes says things they regret later. Someone else's communication style may clash with yours, but the difference can be amicably resolved. After pointing out your concerns please be generous upon receiving an ap [...]
@@ -42,11 +43,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/code-of-conduct-rMkicXc0.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/code-of-conduct-CJPklNRV.js";
window.__reactRouterRouteModules = {"root":route0,"routes/code-of-conduct":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/downloads/index.html b/downloads/index.html
index 15ac021e46d..ca9045f5bd3 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache HBase</title><meta name="description" content="Download Apache HBase releases, connectors, and operator tools with verification hashes and signatures."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin= [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache HBase</title><meta name="description" content="Download Apache HBase releases, connectors, and operator tools with verification hashes and signatures."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel=" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">Downloads</h1>
<p class="mb-4 text-base leading-7">The below table lists mirrored release artifacts and their associated hashes and signatures available ONLY at apache.org. The keys used to sign releases can be found in our published <a href="https://downloads.apache.org/hbase/KEYS" target="_blank" rel="noopener noreferrer" class="text-primary inline underline-offset-4 hover:underline">KEYS<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="cu [...]
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">Releases</h2>
@@ -122,11 +123,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/downloads-BrfNBQbM.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/downloads-BRAGpK9n.js";
window.__reactRouterRouteModules = {"root":route0,"routes/downloads":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/fonts/inter-latin-wght-italic.woff2 b/fonts/inter-latin-wght-italic.woff2
new file mode 100644
index 00000000000..2f06c65192b
Binary files /dev/null and b/fonts/inter-latin-wght-italic.woff2 differ
diff --git a/fonts/inter-latin-wght-normal.woff2 b/fonts/inter-latin-wght-normal.woff2
new file mode 100644
index 00000000000..d15208de03c
Binary files /dev/null and b/fonts/inter-latin-wght-normal.woff2 differ
diff --git a/index.html b/index.html
index b37c6a7cda8..b1e13619056 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="image" href="/images/large-logo.svg"/><link rel="preload" as="image" href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta name="description" content="Apache HBase® is the Hadoop database, a distributed, scalable, big data store."/><link rel="preconnect" href="h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="image" href="/images/large-logo.svg"/><link rel="preload" as="image" href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta name="description" content="Apache HBase® is the Hadoop database, a distributed, scalable, big data store."/><link rel="preload" as="font" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/home-CxfyEQdh.js";
window.__reactRouterRouteModules = {"root":route0,"routes/home":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/mailing-lists/index.html b/mailing-lists/index.html
index 20081bd55c6..aae88457a89 100644
--- a/mailing-lists/index.html
+++ b/mailing-lists/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache HBase</title><meta name="description" content="Subscribe to Apache HBase mailing lists including user, developer, commits, issues, and builds lists."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigi [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache HBase</title><meta name="description" content="Subscribe to Apache HBase mailing lists including user, developer, commits, issues, and builds lists."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">Apache HBase™ Mailing Lists</h1>
<p class="mb-4 text-base leading-7">For each list, links are provided to subscribe, unsubscribe, and view archives.</p>
@@ -90,11 +91,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/mailing-lists-BQgZQ_zQ.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/mailing-lists-doDVBa9G.js";
window.__reactRouterRouteModules = {"root":route0,"routes/mailing-lists":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/news/index.html b/news/index.html
index ab15765558d..825b2d8b149 100644
--- a/news/index.html
+++ b/news/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="image" href="https://www.apache.org/events/current-event-234x60.png"/><title>News - Apache HBase</title><meta name="description" content="Latest news, events, and releases for Apache HBase."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="ht [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="image" href="https://www.apache.org/events/current-event-234x60.png"/><title>News - Apache HBase</title><meta name="description" content="Latest news, events, and releases for Apache HBase."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/news-BaUFuyKX.js";
window.__reactRouterRouteModules = {"root":route0,"routes/news":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/other-resources/index.html b/other-resources/index.html
index 3c3ef5c535d..2361eea0399 100644
--- a/other-resources/index.html
+++ b/other-resources/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources - Apache HBase</title><meta name="description" content="Books and other learning resources about Apache HBase."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="modulepreload" href [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources - Apache HBase</title><meta name="description" content="Books and other learning resources about Apache HBase."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-lati [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/other-resources-BG0U4qkL.js";
window.__reactRouterRouteModules = {"root":route0,"routes/other-resources":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/powered-by-hbase/index.html b/powered-by-hbase/index.html
index 24d7bc4aa15..c8f3f2ba280 100644
--- a/powered-by-hbase/index.html
+++ b/powered-by-hbase/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase - Apache HBase</title><meta name="description" content="Companies and organizations using Apache HBase in production for their data storage and processing needs."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" cro [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase - Apache HBase</title><meta name="description" content="Companies and organizations using Apache HBase in production for their data storage and processing needs."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><l [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/powered-by-hbase-D2XtlmVH.js";
window.__reactRouterRouteModules = {"root":route0,"routes/powered-by-hbase":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/source-repository/index.html b/source-repository/index.html
index 57e989957a9..d3fb247a201 100644
--- a/source-repository/index.html
+++ b/source-repository/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository - Apache HBase</title><meta name="description" content="Access the Apache HBase source code repository."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="modulepreload" href="/as [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository - Apache HBase</title><meta name="description" content="Access the Apache HBase source code repository."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-latin-wgh [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">Overview</h1>
<p class="mb-4 text-base leading-7">Apache HBase™ uses <a href="https://git-scm.com/" target="_blank" rel="noopener noreferrer" class="text-primary inline underline-offset-4 hover:underline">Git<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5 align-[-2px]"><path d="M15 3h6v6"></path><path d="M10 14 [...]
<h3 class="mt-8 mb-1 scroll-mt-28 text-xl font-semibold tracking-tight">Web Browser Access</h3>
<p class="mb-4 text-base leading-7">The following is a link to a browsable version of the source repository:</p>
@@ -43,11 +44,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/source-repository-CuYRai5W.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/source-repository-D7Xzv9nd.js";
window.__reactRouterRouteModules = {"root":route0,"routes/source-repository":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/sponsors/index.html b/sponsors/index.html
index 7bf11e5eb97..a24d474bf4c 100644
--- a/sponsors/index.html
+++ b/sponsors/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache HBase</title><meta name="description" content="Companies and organizations that sponsor the Apache HBase project with tools and resources."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/> [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache HBase</title><meta name="description" content="Companies and organizations that sponsor the Apache HBase project with tools and resources."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as= [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">Sponsors</h1>
<p class="mb-4 text-base leading-7">First off, thanks to <a href="http://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="text-primary inline underline-offset-4 hover:underline">all who sponsor<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5 align-[-2px]"><path [...]
<p class="mb-4 text-base leading-7">The below companies have been gracious enough to provide their commercial tool offerings free of charge to the Apache HBase™ project.</p>
<ul class="mb-4 ml-6 list-disc space-y-2">
@@ -38,11 +39,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/sponsors-Be-uqIKJ.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/sponsors-D__nLzUg.js";
window.__reactRouterRouteModules = {"root":route0,"routes/sponsors":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 832c0390f2a..4aef4e2c9a2 100644
--- a/team/index.html
+++ b/team/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache HBase</title><meta name="description" content="Meet the Apache HBase project team members and contributors who develop and maintain HBase."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache HBase</title><meta name="description" content="Meet the Apache HBase project team members and contributors who develop and maintain HBase."/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="fon [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><header class="border-border/0 bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur transition-[border] duration-200"><nav class="container mx-auto flex h-16 items-center justify-between px-4"><a class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< [...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight text-balance md:text-6xl">The Team</h1>
<p class="mb-4 text-base leading-7">A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
<p class="mb-4 text-base leading-7">The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight md:text-4xl">Members</h2>
@@ -823,11 +824,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/team-Dv-KHXCU.js";
+ })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/team-7qd-tD0H.js";
window.__reactRouterRouteModules = {"root":route0,"routes/team":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section id="getting-started" class="border-border/60 bg-muted/30 border-y"><div class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 class="text-3xl font-semibold tracking-tight md:text-4xl">Getting Started</h2><p class="text-muted-foreground mt-2">From download to production in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file