Skip to content

Fix four things a 0.116 readiness review reproduced - #157

Merged
guanzhousongmicrosoft merged 1 commit into
documentdb:mainfrom
GuanzhouSong:fix/release-readiness-blockers
Aug 25, 2026
Merged

Fix four things a 0.116 readiness review reproduced#157
guanzhousongmicrosoft merged 1 commit into
documentdb:mainfrom
GuanzhouSong:fix/release-readiness-blockers

Conversation

@GuanzhouSong

Copy link
Copy Markdown
Contributor

A readiness review ran the site's own instructions against real packages and
real containers instead of reading them. Four things failed. Each fix below is
described in the terms the failure actually appeared in.

Pinning a version fails exactly as documented

The Download page derives one version string from the extension packages and
prints it in every command. But the two package families are versioned
differently:

$ apt-cache madison postgresql-18-documentdb   ->  0.116-0
$ apt-cache madison documentdb-18              ->  0.116.0

So the documented pin command fails:

$ sudo apt install documentdb-18=0.116-0
E: Version '0.116-0' for 'documentdb-18' was not found

releaseInfo now derives both families, and the page names both and says which
belongs to which. The pin commands also stopped hardcoding four package names,
so they follow whatever the reader actually selected.

The Docker quick start produced an empty database

Running the documented command verbatim leaves you with postgres, template0
and template1, and a sample collection count of 0 — while the page said
sample data loads by default. --init-data defaults to false, and
--skip-init-data is a legacy alias for --init-data false.

The command now passes --init-data true, the claim is gone, and the option
table matches the binary.

Related, on the same page: the image tags are now listed. latest is pg17
(identical manifest hash), and the tags carry the PostgreSQL major. Without
that, someone evaluates on 17 and then deploys the documentdb meta package,
which pulls PG 18 — a silent major version change between the two steps.

Two documentation URLs were dead, and nothing could see it

/docs/getting-started/prebuilt-packages/ and
/docs/getting-started/vscode-extension-guide/ served 47 and 61 byte bodies.

The cause is that redirect() cannot work under output: "export" — there is
no server to send a 3xx — so Next renders the thrown redirect as an error
document. Both were listed in sitemap.xml and linked from two live pages, and
because GitHub Pages returns HTTP 200 for them, every status-code link
checker reported them healthy.

They now render a real page linking to the replacement, forward on hydration,
and are marked noindex so the sitemap step drops them.

And a guard so this particular failure can't come back silently

generate-sitemap.mjs now detects <html id="__next_error__"> while it walks
out/ and fails the build with the offending URLs. This is the check that
would have caught the above; a status-code check never could.

Verification

  • tsc --noEmit, eslint, vitest (130 tests) — all clean
  • next build + sitemap: 274 URLs, 4 noindex skipped, guard exit 0, and both
    moved routes are gone from sitemap.xml
  • Asserted in the built HTML: both version families on /packages, the pin
    warning, --init-data true on the Docker page, the sample-data claim gone,
    and pg17-0.116.0 / version.txt / --skip-init-data on documentdb-local

Deliberately not changed

The review also reported that Admin100 no longer exists and the container
refuses to start without --password. Running it says otherwise:

Password: Admin100 (because --password / PASSWORD was not set)

It starts, and only warns that a future release will refuse. --help says
REQUIRED. while the runtime defaults — that's a product inconsistency to fix
in the container, not on the website. The table here is currently accurate.

Each of these was found by running the site's own instructions, not by
reading them, so each fix is stated in the terms the failure appeared in.

Pinning a version fails as documented. The Download page derives one
version string from the extension packages and prints it everywhere, but
the two package families are versioned differently: `postgresql-18-documentdb`
is `0.116-0` while the full-stack `documentdb-18` is `0.116.0`. Following the
page gives `E: Version '0.116-0' for 'documentdb-18' was not found`. Derive
both, name both, and say which belongs to which -- and stop hardcoding four
package names in the pin commands so they track the actual selection.

The Docker quick start produced an empty database. `--init-data` defaults to
false, and `--skip-init-data` is a legacy alias for `--init-data false`, so
the documented command yields `postgres, template0, template1` and a sample
collection count of 0 while the page claimed sample data loads by default.
Pass `--init-data true` and correct the table. Also add the image tag list:
`latest` is `pg17`, and the tags carry the PostgreSQL major, which is the
only way to evaluate on the same major you intend to deploy on.

Two doc URLs were dead and nobody could see it. `redirect()` cannot work
under `output: "export"` -- there is no server to send a 3xx -- so Next
rendered both as `<html id="__next_error__">` bodies served with HTTP 200.
They were in sitemap.xml and linked from two live pages, and every
status-code link checker called them healthy. Render a real page that links
to the replacement and forwards on hydration, mark it noindex so the
sitemap step drops it, and fail the build if any route ever ships as an
error document again.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8df9084a-ccaf-432c-b015-2ccd8893a9d8
Signed-off-by: Guanzhou Song <guanzhousong@users.noreply.github.com>

@guanzhousongmicrosoft guanzhousongmicrosoft left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified each failure and each fix locally: the pin command's E: Version not found, the empty database from the documented Docker run, and the two 47/61-byte HTTP 200 bodies. Build guard, sitemap output and rendered HTML all check out.

@guanzhousongmicrosoft
guanzhousongmicrosoft merged commit 9c579a1 into documentdb:main Aug 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants