poka.sh

Docs

Licensing policy

explanation

Every sample in the Poka corpus is third-party content that keeps the licence or notice it was published with: Poka does not change it. This page explains which licences the corpus accepts for files Poka may publish, and why. The credit lines are in Sample attributions and the counts in the Corpus index.

Two questions, not one

A licence says what a source permits. What Poka does with a file is a separate decision, so each file records both:

Column Values Meaning
redistribution permitted, prohibited, unstated What the file's own licence or notice says about redistributing the bytes. Recorded from the source, not judged by Poka.
usage testing-only, deployable What Poka may do with the file.

A testing-only file is used to develop and regression-test parsers and to benchmark them. A deployable file may also be published: shown in the web bundle, on the 50+50 page and in documentation.

What is accepted

A file whose source states no licence, or that a tool wrote, may be used for testing only: its row is testing-only and records that the licence is unstated. Redistribution stays as the row says, so such a file is never published. This is the owner's decision of 2026-10-21. For files Poka may publish, the project owner decided on 2026-10-14 (building on the audit in poka-interfaces#319):

  • Allowed: permissive licences (MIT, Apache-2.0, BSD, ISC, Zlib, CC0, public domain and similar), CC BY, and MPL-2.0 (and the similar file-level copyleft licences CDDL and EPL).
  • Not allowed: GPL, LGPL and AGPL, and CC BY-SA.

MPL-2.0 is allowed because its copyleft attaches to the files themselves: they may sit unmodified inside a closed-source product. GPL, LGPL, AGPL and CC BY-SA are kept testing-only instead, pending a legal opinion on aggregation (see the record in docs/licensing-policy.md). A later promotion of one such file would be a deliberate, recorded decision, never a default.

Fail closed

The classifier works from an explicit allow-list of licence identifiers. A licence it does not recognise, and unstated or NOASSERTION, give redistribution: unstated and usage: testing-only. A notice that bars incorporating the file into a product (the Rutherford Appleton Laboratory CGM notice is the example) also stays testing-only, because Poka is that product.

deployable additionally needs the bytes checked for personal data, recorded per file. A file whose licence forbids copying is a finding, listed by the validator with the issue that tracks it, and is not credited as redistributable.

One rule for every placement

The same two columns are read wherever a file appears: the corpus itself, the web bundle and the 50+50 page. A placement-specific exception is written down as an exclusion on that page, not as a second, softer rule.