-
Notifications
You must be signed in to change notification settings - Fork 197
Open
Milestone
Description
situation
having a test-suite is fine, but it has a flaws: it is a mix of general rules for the purl spec, and the specific rules for the fast-living and still-evolving type-spec.
problems
- this current situation makes it hard to use the test-suite for general-purpose libraries that dont implement every purl-type specific rule, but only the core spec.
For example, the PHP implementation does not have all these purl-type specific rules implemented, it expects the downstream user to take care of the spec they use, since the downstream user knows their domain. - this current situation makes it hard to update their version of the test-suite for general-purpose libraries that want to use the latest test suite without adding the new purl-types ("features").
For example, the Java implementation can not simply pull the latest test suite that includes the latest general purl-spec related cases, since the test-suite also includes cases for purl-specifics that are not yet implemented in Java library.
proposal
split the test suite into core spec, and purl-type specifics,
so that implementations can pick(glob) the relevant parts of the test suite they actually implement.
suggestion
- have a folder, that contains all test suites.
- have a file for the purl core spec:
PURL-SPECIFICATION.json
- have a file for each purl type:
PURL-TYPES.<type>.json
test-suite
├── PURL-SPECIFICATION.json
├── PURL-TYPES.apk.json
├── PURL-TYPES.bitnami.json
...
├── PURL-TYPES.generic.json
...
└── PURL-TYPES.swift.json
matt-phylum and jkowalleck