package-url / package-url/packageurl-php
BC: redesign for PURL 1.0
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 13
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
PackageURL 1.0 was releqsed - https://github.com/package-url/purl-spec/releases/tag/v1.0.0 🎉
with this, we can finally rework the whole implementation to adhere the final Spec.
blockers
Unfortunately, the spec is not entire explicit, the actual grammar is not part of the spec, yet
Implementing the implicit rules of the spec is error-prone, relying on non-spec rules like how-to-build.md and how-to-parse.md is kind of a "best-effort" implementation. Therefore:
expected outcome
- have a namespace
PackageUrl\Core- everything defined in the STANDARD and in additionalmaterial- data models and enums andconstants - https://github.com/package-url/purl-spec/blob/main/docs/known-qualifiers.md
- parsers - https://github.com/package-url/purl-spec/blob/main/docs/how-to-parse.md
- stringifiers and canonicalizers - https://github.com/package-url/purl-spec/blob/main/docs/how-to-build.md
- have a namespace
PackageUrl\Types- for implementations related to specific types- empty at first
- add an example implementation for
composer- https://github.com/package-url/purl-spec/blob/main/types-doc/composer-definition.md
- have a namespace
PackageUrl\Contrib- for everything not defined in the standard- empty at first
have tests for the core implementation and the implanted type(s) -
shall use the tests provided by https://github.com/package-url/purl-spec/tree/main/tests
have the README tell about the different sub-namespaces and their purposes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the PURL 1.0 standard, known-qualifiers, parsing, building, and types documentation, while checking the status of package-url/purl-spec pull request 578. Use the provided PURL specification tests as the first validation point; done means the Core, Types, and Contrib namespaces, Composer example, README guidance, and core/type tests are in place.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100