Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y createrepo-c dpkg-dev rpm python3
- name: Generate repository from v0.116-0
- name: Generate repository from v0.117-0
env:
DOCUMENTDB_VERSION: v0.116-0
DOCUMENTDB_VERSION: v0.117-0
run: .github/scripts/download_packages.sh
- name: Verify release inventory and metadata
run: python3 .github/scripts/verify_package_inventory.py
Expand Down
20 changes: 12 additions & 8 deletions PACKAGE-INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ The explicit major and fresh-instance flags prevent another installed PostgreSQL
existing system cluster from being selected accidentally. To adopt an existing PostgreSQL
instance instead, use [Adopt an existing PostgreSQL instance](#adopt-an-existing-postgresql-instance).

Sample data is opt-in. Add `--load-sample-data` to the setup command to seed the `StoreData`
database with 41,505 documents in `stores` and 2 documents in `ratings`. This requires
`mongosh`; the command above leaves the new instance empty.

`mongosh` is not shipped by these packages. Install it from the
[official instructions](https://www.mongodb.com/docs/mongodb-shell/install/), then:

Expand Down Expand Up @@ -200,7 +204,7 @@ Before using this anywhere but a private machine:

```bash
sudo documentdb-setup --status # gateway listener, service states, resolved paths
documentdb-gateway --version # DocumentDB version (0.116.0)
documentdb-gateway --version # DocumentDB version (0.117.0)
dpkg -l | grep documentdb # or: rpm -qa | grep documentdb
```

Expand Down Expand Up @@ -288,7 +292,7 @@ On a systemd host, a scoped restore stops and disables that major's gateway:
sudo documentdb-setup --restore --pg-version 18
```

On a host without systemd, v0.116 cannot safely attribute a nohup gateway process to one
On a host without systemd, the current setup tooling cannot safely attribute a nohup gateway process to one
PostgreSQL major. If only one DocumentDB major is configured, use an unscoped restore so the
orphan gateway sweep runs:

Expand Down Expand Up @@ -344,8 +348,8 @@ The current release publishes PostgreSQL 17 and 18. Install `documentdb-17` or

## Upgrading an existing install

> **Warning:** v0.116 does not support an in-place upgrade from the extension-only package
> layout in v0.114 or earlier. Use a clean host, or remove the earlier packages and perform the
> **Warning:** In-place package upgrades from earlier releases are not supported yet. Use a
> clean host, or remove the earlier packages and perform the
> current fresh installation. Upgrading only `postgresql-N-documentdb` does not install the
> gateway, tools, common payload, or `documentdb-N`.

Expand Down Expand Up @@ -429,7 +433,7 @@ three entry points:
- `packaging/gateway/build_gateway_packages.sh` — wire-protocol gateway
- `packaging/build_extra_packages.sh` — tools, common payload, `documentdb-N`, and meta package

The [v0.116 packaging guide](https://github.com/documentdb/documentdb/blob/v0.116-0/packaging/README.md)
The [v0.117 packaging guide](https://github.com/documentdb/documentdb/blob/v0.117-0/packaging/README.md)
documents their required arguments, version formats, prerequisites, and accepted targets.
PostgreSQL 15 remains extension-only for package-managed installs because the setup tools
require PostgreSQL 16 or newer.
Expand All @@ -444,9 +448,9 @@ they do not retain packages from older releases.
Examples:

```text
ubuntu24.04-documentdb_0.116.0_all.deb
ubuntu24.04-postgresql-18-documentdb_0.116-0_amd64.deb
rhel9-postgresql18-documentdb-0.116.0-1.el9.x86_64.rpm
ubuntu24.04-documentdb_0.117.0_all.deb
ubuntu24.04-postgresql-18-documentdb_0.117-0_amd64.deb
rhel9-postgresql18-documentdb-0.117.0-1.el9.x86_64.rpm
```

Because the packages depend on each other, installing a downloaded meta package on its own
Expand Down
34 changes: 17 additions & 17 deletions app/lib/releaseInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@ import { useEffect, useState } from "react";
// after v0.116-0 had been published and mirrored.

export type ReleaseInfo = {
/** Git tag of the mirrored release, e.g. "v0.116-0". */
/** Git tag of the mirrored release, e.g. "v0.117-0". */
tagName: string;
/** Extension package version on DEB, e.g. "0.116-0". */
/** Extension package version on DEB, e.g. "0.117-0". */
aptVersion: string;
/** Extension package version on RPM, e.g. "0.116.0-1.el9". */
/** Extension package version on RPM, e.g. "0.117.0-1.el9". */
rpmVersion: string;
/**
* Version of every non-extension package, e.g. "0.116.0".
* Version of every non-extension package, e.g. "0.117.0".
*
* The extension keeps the control-file form (`0.116-0`) while the meta,
* The extension keeps the control-file form (`0.117-0`) while the meta,
* per-major, gateway, tools and common packages use the flat dotted form.
* Pinning examples MUST pick the right one for the package being pinned:
* `apt install documentdb-18=0.116-0` fails with "Version '0.116-0' for
* 'documentdb-18' was not found", because that package is `0.116.0`.
* `apt install documentdb-18=0.117-0` fails with "Version '0.117-0' for
* 'documentdb-18' was not found", because that package is `0.117.0`.
*/
metaVersion: string;
/** RPM form of the non-extension packages, e.g. "0.116.0-1". */
/** RPM form of the non-extension packages, e.g. "0.117.0-1". */
metaRpmVersion: string;
releaseUrl: string;
assetNames: readonly string[];
Expand All @@ -39,12 +39,12 @@ export type ReleaseInfo = {
// placeholder. Keep it in step with the newest release; the drift check in CI
// fails the build when it falls behind release-info.json.
export const FALLBACK_RELEASE: ReleaseInfo = {
tagName: "v0.116-0",
aptVersion: "0.116-0",
rpmVersion: "0.116.0-1.el9",
metaVersion: "0.116.0",
metaRpmVersion: "0.116.0-1",
releaseUrl: "https://github.com/documentdb/documentdb/releases/tag/v0.116-0",
tagName: "v0.117-0",
aptVersion: "0.117-0",
rpmVersion: "0.117.0-1.el9",
metaVersion: "0.117.0",
metaRpmVersion: "0.117.0-1",
releaseUrl: "https://github.com/documentdb/documentdb/releases/tag/v0.117-0",
assetNames: [],
};

Expand Down Expand Up @@ -96,8 +96,8 @@ export function parseReleaseInfo(payload: unknown): ReleaseInfo {
? raw.html_url
: `https://github.com/documentdb/documentdb/releases/tag/${tagName}`;

// The extension keeps the control-file form (0.116-0) on DEB, while RPM
// splits it into Version/Release and renders 0.116.0-1.el9. Everything else
// The extension keeps the control-file form (0.117-0) on DEB, while RPM
// splits it into Version/Release and renders 0.117.0-1.el9. Everything else
// uses the flat dotted form. Read all three off real filenames so the page
// cannot claim a shape the release does not contain.
const aptVersion =
Expand All @@ -114,7 +114,7 @@ export function parseReleaseInfo(payload: unknown): ReleaseInfo {
firstMatch(names, /^documentdb-(\d+\.\d+\.\d+)-\d+\.noarch\.rpm$/) ??
FALLBACK_RELEASE.metaVersion;

// e.g. documentdb-0.116.0-1.noarch.rpm -> 0.116.0-1
// e.g. documentdb-0.117.0-1.noarch.rpm -> 0.117.0-1
const metaRpmVersion =
firstMatch(names, /^documentdb-(\d+\.\d+\.\d+-\d+)\.noarch\.rpm$/) ??
FALLBACK_RELEASE.metaRpmVersion;
Expand Down
9 changes: 8 additions & 1 deletion app/packages/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export default function PackagesPage() {

const aptCommand = buildAptInstallCommand(aptTarget, aptArch, aptPgVersion);
const rpmCommand = buildRpmInstallCommand(rpmTarget, rpmArch, rpmPgVersion);
// Tier-1 targets resolve the full v0.116-0 stack, so the selected package is
// Tier-1 targets resolve the current full stack, so the selected package is
// the per-major stand-alone rather than the bare extension.
const isFullStack =
packageFamily === "apt"
Expand Down Expand Up @@ -384,6 +384,13 @@ export default function PackagesPage() {
)}
label="Setup"
/>
<p className="mt-3 text-sm text-gray-400">
Sample data is opt-in. After installing{" "}
<code className="text-gray-300">mongosh</code>, add{" "}
<code className="text-gray-300">--load-sample-data</code> to seed the{" "}
<code className="text-gray-300">StoreData</code> database with 41,505 stores
and 2 ratings. The command above leaves the new instance empty.
</p>
<p className="mt-3 text-sm text-gray-400">
The gateway then listens on port{" "}
<code className="text-gray-300">10260</code>. It binds all interfaces by
Expand Down
Loading