Skip to content

📚 docs: add dual license and document the image - #2

Merged
jasonwc merged 2 commits into
mainfrom
docs/public-floor
Aug 12, 2026
Merged

📚 docs: add dual license and document the image#2
jasonwc merged 2 commits into
mainfrom
docs/public-floor

Conversation

@jasonwc

@jasonwc jasonwc commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Adds dual MIT/Apache-2.0 licensing and documents what this repository actually builds, verified by execution: make build run green, the image booted with both extensions smoke-tested (pg_duckdb query + pgvector distance operator), and the published public-ECR reference confirmed anonymously pullable with its manifest digest matching the local build.

The README covers build (make/dagger targets), running the image standalone, what the init scripts provide, and how tapes uses it. The License section scopes the dual terms to this repository's own sources, since the image aggregates third-party software (PostgreSQL, pgvector, pg_duckdb) under its own licenses.

related to PCC-657

🤖 Generated with Claude Code

@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown
PCC-657 pgtapes is private and unlicensed while tapes is public — license it and flip it

Problem

telemetry/pgtapes (the Postgres image/extension tapes deploys on) is a real, maintained repo — Dockerfile, Makefile, dagger.json, nix flake, initdb.d — with no LICENSE file (verified 2026-08-11) and private visibility, while tapes itself is public AGPL-3.0 and the image is already published to public ECR (public.ecr.aws/g4e5l3z3/papercomputeco/postgres). An open-source user can pull the image but can't see the source or know their rights to it.

Impact

The standalone OSS deployment story ships a load-bearing component whose source is invisible and whose license is undefined — the exact gap PCC-1152 closes for tapesctl and PCC-1154 closes for the cassette repos. Absorbs PCC-658 (the licensing half — one act, previously split into two user stories).

Potential solution

Same playbook as the other flips: choose the license deliberately (dual MIT/Apache-2.0 per the 2026-08-11 cassette-repo call, unless the Postgres-extension context argues for matching tapes' AGPL — record the reasoning), one history pass for secrets/internal references, a README floor stating what it is and how tapes uses it, then the visibility flip.

Review in Linear

@greptile-apps

greptile-apps Bot commented Aug 12, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds dual MIT/Apache-2.0 licensing and substantially expands the image documentation.

  • Documents the image contents, published reference, standalone startup, build and publishing workflows, and integration with tapes.
  • Explains that CloudNativePG bypasses the standalone initialization mechanisms and supplies the required extension and preload configuration.
  • Clarifies that bundled third-party software remains subject to its own licenses.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
README.md Documents standalone and CloudNativePG operation; the new manifest and application-database guidance resolve the previously reported initialization issue.
LICENSE-APACHE Adds the standard Apache License 2.0 text as one dual-license option.
LICENSE-MIT Adds the MIT license with the Paper Compute copyright notice.

Reviews (2): Last reviewed commit: "📝 docs: Note that CloudNativePG bypasse..." | Re-trigger Greptile

Comment thread README.md Outdated
@jasonwc

jasonwc commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

@greptile review

jasonwc and others added 2 commits August 12, 2026 10:22
Adds LICENSE-MIT and LICENSE-APACHE, and expands the README to describe
what the image actually ships.

The README records the pieces that are easy to get wrong from reading the
Dockerfile alone: pgvector comes from the CloudNativePG standard base
rather than being installed here, pg_duckdb is staged from the upstream
image and appended to shared_preload_libraries, and the standard Postgres
entrypoint is present so one image serves both the operator and a plain
docker run. The init script creates the extensions only on first
initialization of a data directory.

The dual MIT/Apache terms cover this repository's own sources. The image
they build redistributes third-party software under its own licenses, so
the License section says so rather than implying these terms reach the
contents of the image.

Signed-off-by: Jason Carter <jason@papercompute.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The README described the entrypoint init script and the
`shared_preload_libraries` line in `postgresql.conf.sample` as if they
applied everywhere the image runs. They only apply to the standalone
path: the CloudNativePG operator replaces the entrypoint and generates
PostgreSQL's configuration from the Cluster spec, so a Cluster on this
image comes up with no extensions created and pg_duckdb not preloaded.

Add a short compatibility section showing what a Cluster must set
instead, and qualify the claims that implied parity between the two
paths.
@jasonwc
jasonwc force-pushed the docs/public-floor branch from b8879f1 to 80749db Compare August 12, 2026 17:22
@jasonwc jasonwc changed the title 📝 docs: add dual license and document the image 📚 docs: add dual license and document the image Aug 12, 2026
@jasonwc
jasonwc merged commit 7472f34 into main Aug 12, 2026
8 of 11 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.

1 participant