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
6 changes: 3 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,10 @@ jobs:
type=sha,format=short
# The action derives the licences label from this repository's
# Apache-2.0, and its labels override the Dockerfile's. The image also
# bundles the transpiler, whose LICENSE from codegen 1.2.0 is the
# PineForge Source License 1.1 (see README, License).
# bundles the transpiler, whose LICENSE from codegen 1.3.0 is the
# PineForge Source License 1.2 (see README, License).
labels: |
org.opencontainers.image.licenses=Apache-2.0 AND LicenseRef-PineForge-Source-License-1.1
org.opencontainers.image.licenses=Apache-2.0 AND LicenseRef-PineForge-Source-License-1.2

- name: Build + push (multi-arch)
uses: docker/build-push-action@v6
Expand Down
25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,22 +236,27 @@ terms, so that licence does not cover the whole image:
under MPL-2.0 — see the engine's
[`LEGAL.md`](https://github.com/pineforge-4pass/pineforge-engine/blob/main/LEGAL.md).
- **`pineforge-codegen`** (the transpiler): source-available. From codegen
1.2.0 (images from 1.2.0 on) it is under the PineForge Source License 1.1;
earlier releases, and the images up to 1.1.0 that bundle them, keep the
PolyForm Noncommercial License 1.0.0 with a Personal Trading exception that
they shipped with. Personal trading is free; investment management, use by
or for a company or fund, embedding in a product and hosted or public-facing
services need a commercial licence — see its
1.3.0 (images from 1.3.0 on) it is under the PineForge Source License 1.2;
earlier releases keep the licence they shipped with: codegen 1.2.0 (the
1.2.0 image) the PineForge Source License 1.1, and releases up to 1.1.0
(the images up to 1.1.0) the PolyForm Noncommercial License 1.0.0 with a
Personal Trading exception. Personal trading is free; investment management
(from 1.2 of the licence this includes trading a funded-trader challenge,
evaluation or simulated account), use by or for a company or fund,
embedding in a product and hosted or public-facing services need a
commercial licence — see its
[`LICENSE`](https://github.com/pineforge-4pass/pineforge-codegen-oss/blob/main/LICENSE)
and [`LEGAL.md`](https://github.com/pineforge-4pass/pineforge-codegen-oss/blob/main/LEGAL.md).
- **Debian base image, g++, Eigen and Python**: their upstream licences.

The image's `org.opencontainers.image.licenses` label names the licences of the
PineForge components: `Apache-2.0 AND LicenseRef-PineForge-Source-License-1.1`
from 1.2.0 on, Apache-2.0 for the engine and this repository's files, and a
`LicenseRef` for the transpiler's LICENSE, the PineForge Source License 1.1 (no
PineForge components: `Apache-2.0 AND LicenseRef-PineForge-Source-License-1.2`
from 1.3.0 on, Apache-2.0 for the engine and this repository's files, and a
`LicenseRef` for the transpiler's LICENSE, the PineForge Source License 1.2 (no
SPDX identifier exists for it). The base image's packages, Eigen included, keep
the upstream licences listed above. Images 1.0.1 to 1.1.0 carry
the upstream licences listed above. The 1.2.0 image carries
`Apache-2.0 AND LicenseRef-PineForge-Source-License-1.1`, images 1.0.1 to 1.1.0
carry
`Apache-2.0 AND LicenseRef-PolyForm-Noncommercial-1.0.0-Personal-Trading`
(the transpiler's earlier LICENSE, the PolyForm Noncommercial License 1.0.0 as
modified by its Personal Trading and Commercial Use sections), and images up
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ LABEL org.opencontainers.image.title="pineforge-release" \
org.opencontainers.image.revision="${RELEASE_GIT_SHA}" \
org.opencontainers.image.created="${RELEASE_BUILD_DATE}" \
org.opencontainers.image.source="https://github.com/pineforge-4pass/pineforge-release" \
org.opencontainers.image.licenses="Apache-2.0 AND LicenseRef-PineForge-Source-License-1.1" \
org.opencontainers.image.licenses="Apache-2.0 AND LicenseRef-PineForge-Source-License-1.2" \
io.pineforge.engine.version="${ENGINE_VERSION}" \
io.pineforge.codegen.version="${CODEGEN_VERSION}"

Expand Down
2 changes: 1 addition & 1 deletion tests/test_release_workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def test_licences_label_covers_the_bundled_transpiler(self):
# docker/metadata-action's labels override the Dockerfile's, and it
# derives org.opencontainers.image.licenses from the repository's
# Apache-2.0, so publish.yml must set the label itself.
expr = "Apache-2.0 AND LicenseRef-PineForge-Source-License-1.1"
expr = "Apache-2.0 AND LicenseRef-PineForge-Source-License-1.2"
body = _step(self.text, "Image metadata")
self.assertIn(f"org.opencontainers.image.licenses={expr}\n", body)
self.assertIn("labels: ${{ steps.meta.outputs.labels }}", self.text)
Expand Down
Loading