Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions hbase-website/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ lerna-debug.log*
/app/pages/_docs/docs/_mdx/(multi-page)/configuration/hbase-default.md
/app/lib/export-pdf/hbase-version.json
/public/books/**
/public/sitemap.xml

# Playwright
node_modules/
Expand Down
15 changes: 13 additions & 2 deletions hbase-website/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -476,16 +476,18 @@ When you run `mvn site`, the website module automatically:
- `npm run extract-hbase-config` - Extract data from `hbase-default.xml` to `app/pages/_docs/docs/_mdx/(multi-page)/configuration/hbase-default.md`
- `npm run extract-hbase-version` - Extract version from root `pom.xml` to `app/lib/export-pdf/hbase-version.json`
- `npm run test:unit:run` - Vitest unit tests
- `npm run test:e2e` - Playwright e2e tests
- `npm run build` - Production build
- `npm run generate-sitemap` - Generates `public/sitemap.xml` and `build/client/sitemap.xml`
- `npm run test:e2e` - Playwright e2e tests

`npm run ci-skip-tests` executes:
- `npm run extract-developers` - Extract developers from parent pom.xml
- `npm run extract-hbase-config` - Extract data from `hbase-default.xml` to `app/pages/_docs/docs/_mdx/(multi-page)/configuration/hbase-default.md`
- `npm run extract-hbase-version` - Extract version from root `pom.xml` to `app/lib/export-pdf/hbase-version.json`
- `npm run build` - Production build
- `npm run generate-sitemap` - Generates `public/sitemap.xml` and `build/client/sitemap.xml`
- `npx playwright install` - Installs Playwright browsers
- `npm run export-pdf` - Generates docs PDF assets through Playwright
- `npm run build` - Production build

6. **Build Output**: Generated files are in `build/` directory

Expand Down Expand Up @@ -535,6 +537,15 @@ mvn clean install -DskipSite

### Deployment

#### Update the 404 Page

- Edit the standalone static page in `public/404.html`.
- The static 404 page supports dark mode without React: it applies the saved
`localStorage.theme` value when present and otherwise falls back to
`prefers-color-scheme`.
- `public/robots.txt` excludes `/404.html` from crawlers.
- `scripts/generate-sitemap.ts` excludes `404.html` from generated sitemaps.

#### Static Hosting

Since this site uses Static Site Generation (SSG), you can deploy the `build/client/` directory to any static file host:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,18 @@ In addition to the usual API versioning considerations HBase has other compatibi
- A minor upgrade requires no application/client code modification. Ideally it would be a drop-in replacement but client code, coprocessors, filters, etc might have to be recompiled if new jars are used.
- A major upgrade allows the HBase community to make breaking changes.

#### Compatibility Matrix: [^3] [!toc]
#### Compatibility Matrix: [!toc]

<Callout type="warn">
*Please note, this indicates what could break, not that it will break. We will/should add
specifics in our release notes.*
</Callout>

| | Major | Minor | Patch |
| ----------------------------------------- | :----: | :---: | :---: |
| Client-Server wire Compatibility | N | Y | Y |
| Server-Server Compatibility | N | Y | Y |
| File Format Compatibility | N [^4] | Y | Y |
| File Format Compatibility | N [^3] | Y | Y |
| Client API Compatibility | N | Y | Y |
| Client Binary Compatibility | N | N | Y |
| **Server-Side Limited API Compatibility** | | | |
Expand Down Expand Up @@ -149,6 +154,4 @@ When we say two HBase versions are compatible, we mean that the versions are wir

[^2]: See http://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html.

[^3]: Note that this indicates what could break, not that it will break. We will/should add specifics in our release notes.

[^4]: Running an offline upgrade tool without downgrade might be needed. We will typically only support migrating data from major version X to major version X+1.
[^3]: Running an offline upgrade tool without downgrade might be needed. We will typically only support migrating data from major version X to major version X+1.
47 changes: 37 additions & 10 deletions hbase-website/app/root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import type { Route } from "./+types/root";
import appStyles from "./app.css?url";
import "katex/dist/katex.css";
import { ThemeProvider } from "./lib/theme-provider";
import { Button } from "./ui/button";

export const links: Route.LinksFunction = () => [
{
Expand Down Expand Up @@ -96,12 +97,14 @@ export default function App() {
}

export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {
let message = "Oops!";
let eyebrow = "Error";
let message = "Something went wrong";
let details = "An unexpected error occurred.";
let stack: string | undefined;

if (isRouteErrorResponse(error)) {
message = error.status === 404 ? "404" : "Error";
eyebrow = String(error.status);
message = error.status === 404 ? "Page not found" : "Request failed";
details =
error.status === 404 ? "The requested page could not be found." : error.statusText || details;
} else if (import.meta.env.DEV && error && error instanceof Error) {
Expand All @@ -110,14 +113,38 @@ export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {
}

return (
<main className="container mx-auto p-4 pt-16">
<h1>{message}</h1>
<p>{details}</p>
{stack && (
<pre className="w-full overflow-x-auto p-4">
<code>{stack}</code>
</pre>
)}
<main className="grid min-h-screen place-items-center bg-[radial-gradient(circle_at_top,rgba(186,22,12,0.08),transparent_32rem)] px-4 py-16">
<section
className="mx-auto flex w-full max-w-2xl flex-col items-center text-center"
aria-labelledby="error-title"
>
<img className="mb-8 h-auto w-36" src="/images/logo.svg" alt="Apache HBase" />
<p className="text-muted-foreground text-sm font-semibold tracking-[0.3em] uppercase">
{eyebrow}
</p>
<h1
id="error-title"
className="mt-4 text-4xl font-semibold tracking-tight text-balance md:text-6xl"
>
{message}
</h1>
<p className="text-muted-foreground mt-5 max-w-xl text-lg leading-8 text-pretty md:text-xl">
{details}
</p>
<div className="mt-8 flex flex-wrap items-center justify-center gap-3">
<Button asChild size="lg">
<a href="/">Go back home</a>
</Button>
<Button asChild variant="outline" size="lg">
<a href="/docs/">Read documentation</a>
</Button>
</div>
{stack && (
<pre className="bg-muted/50 text-muted-foreground border-border mt-8 max-h-80 w-full overflow-x-auto rounded-lg border p-4 text-left text-sm">
<code>{stack}</code>
</pre>
)}
</section>
</main>
);
}
Loading
Loading