Skip to content

Commit 5595df3

Browse files
committed
docs: update CONTRIBUTING.md with packaging considerations
Adds some text that came out of the discussion around PHP/Packagist.
1 parent a003e70 commit 5595df3

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

CONTRIBUTING.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,35 @@ data added to `imaginary_algorithm_2048_test.json` may be preferrable to
7373
"github.com/myusername" if you intend to add other kinds of test vectors to
7474
`imaginary_algorithm_2048_test.json` in the future, and would want to be able to
7575
update those separately from the weak parameter test vector data.
76+
77+
### Language specific ecosystem considerations
78+
79+
Many programming language ecosystems have some sort of package distribution
80+
infrastructure (e.g. [Packagist], [PyPI], [crates.io], and many more). We're
81+
generally supportive of efforts to make Wycheproof test vectors easy to
82+
consume through those language specific ecosystems, but have some guidelines
83+
to help keep the maintenance burden manageable:
84+
85+
1. We are happy to take contributions that add metadata and small bits of
86+
supporting code, but they should be focused on distributing the JSON data.
87+
We are **not** able to take contributions that provide deserialization types
88+
or in-memory representations that need to be kept in-sync with the JSON.
89+
Similarly, contributions that require extensive tooling/code are likely to
90+
be declined.
91+
2. We rely on the contributor to agree to help with continued maintenance. Each
92+
ecosystem has its own best practices that members of that community are best
93+
positioned to enforce. Similarly, as the ecosystem in question evolves we
94+
expect the original contributor to help keep the Wycheproof side in working
95+
condition, or we may remove the integration.
96+
3. Where possible, updates should be automatic, and performed as part of our
97+
regular development cycle without needing additional manual steps. E.g.
98+
if we merge new vector data, or publish a new tag, the packaged version
99+
should be updated through CI or some other automated integration.
100+
101+
A positive example to compare against is our [PHP ecosystem integration] with
102+
[Packagist].
103+
104+
[Packagist]: https://packagist.org/
105+
[PyPI]: https://pypi.org/
106+
[crates.io]: https://crates.io/
107+
[PHP ecosystem integration]: ./composer.json

0 commit comments

Comments
 (0)