Skip to content

Commit 0c64418

Browse files
committed
docs
1 parent fcb4bcb commit 0c64418

2 files changed

Lines changed: 85 additions & 3 deletions

File tree

readme.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,48 @@ Exempt from the fee:
5656
* Organizations that do not generate revenue, other than government agencies.
5757
* Organizations that engage the core maintainers for consulting work, for six months from the final date of that engagement.
5858

59-
From v33 (currently available as a beta on nuget), sponsorship is validated at build time by [SponsorCheck](https://github.com/SimonCropp/SponsorCheck). Each package bundles a hashed list of sponsors and a build-time verifier, and a consuming project declares how it is licensed as metadata on the `PackageReference`: a sponsor account, a private arrangement, an exemption, or `SponsorshipLicenseIgnored="true"`, which builds with a warning rather than an error. Nothing phones home: the check runs inside the build, adds no runtime dependency to the packages, and issues no license keys. See the [consumer guide](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md) for the metadata and the diagnostic codes.
59+
### Declaring fee status in the build (v33 and later)
60+
61+
From v33 (currently available as a beta on nuget), sponsorship is validated at build time by [SponsorCheck](https://github.com/SimonCropp/SponsorCheck). Each package bundles a hashed list of sponsors and a build-time verifier. Nothing phones home: the check runs inside the build, adds no runtime dependency to the packages, and issues no license keys. A build that references a Verify package needs exactly one of the declarations below; without one it fails with [SC021](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/VerifierDiagnosticCodes.md#sc021), whose message contains a copy-pasteable fix.
62+
63+
The Verify packages use SponsorCheck's [owner mode](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md#owner-mode) with the owner id `Verify`, so the declaration is a single MSBuild property rather than metadata on each `PackageReference`. Set it once in a `Directory.Build.props` at the root of the repository and it covers every project and every Verify package (Verify.Xunit, Verify.NUnit, and so on), including projects that only reference Verify transitively. Prefer answering a few questions? The [SponsorCheck setup wizard for Verify](https://simoncropp.github.io/SponsorCheck/package/Verify) reads the published package and generates the exact snippet.
64+
65+
**Sponsoring** - declare the GitHub account the sponsorship is made from, i.e. the organization or user that sponsors VerifyTests:
66+
67+
```xml
68+
<PropertyGroup>
69+
<Verify_GitHubSponsorAccount>your-github-account</Verify_GitHubSponsorAccount>
70+
</PropertyGroup>
71+
```
72+
73+
The bundled sponsor list is frozen when a version is packed, so a sponsorship that began after that date cannot be in it yet; add `<Verify_SponsorshipStart>yyyy-MM-dd</Verify_SponsorshipStart>` alongside the account until the next upgrade. A sponsorship that is private on GitHub is never bundled at all; declare `<Verify_SponsorshipPrivateUntil>yyyy-MM</Verify_SponsorshipPrivateUntil>` instead, at most 12 months out, and renew it when it lapses.
74+
75+
**Exempt** - individuals and organizations under the revenue threshold claim `SmallRevenue`; organizations that engaged the core maintainers for consulting work claim `MaintainerConsulting`. Both exemptions are time-bounded, so an end month is required: at most 12 months ahead of the build date for `SmallRevenue`, and at most 6 months for `MaintainerConsulting`. The build passes with a warning that quotes the exemption's criteria, and fails once the month has passed until the claim is renewed.
76+
77+
```xml
78+
<PropertyGroup>
79+
<Verify_SponsorshipExemption>SmallRevenue</Verify_SponsorshipExemption>
80+
<Verify_SponsorshipExemptionUntil>yyyy-MM</Verify_SponsorshipExemptionUntil>
81+
</PropertyGroup>
82+
```
83+
84+
**Private arrangement** - an organization with its own licensing arrangement declares the last covered month, at most a year out, and renews it with a one-line edit:
85+
86+
```xml
87+
<PropertyGroup>
88+
<Verify_SponsorshipLicensedUntil>yyyy-MM</Verify_SponsorshipLicensedUntil>
89+
</PropertyGroup>
90+
```
91+
92+
**Opting out** - the build passes but logs a breach-of-license warning on every build:
93+
94+
```xml
95+
<PropertyGroup>
96+
<Verify_SponsorshipLicenseIgnored>true</Verify_SponsorshipLicenseIgnored>
97+
</PropertyGroup>
98+
```
99+
100+
See the [consumer guide](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md) for the full reference and the [diagnostic codes](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/VerifierDiagnosticCodes.md) for every message the verifier can emit.
60101

61102
For the reasoning behind the model, and the discussion the terms came out of, see [Open Source Maintenance Fee for Verify](https://github.com/orgs/VerifyTests/discussions/1731). For the model itself, see the [OSMF FAQ for consumers](https://opensourcemaintenancefee.org/consumers/faq/).
62103

readme.source.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ include: intro
2020

2121
## Open Source Maintenance Fee
2222

23-
This project participates in the [Open Source Maintenance Fee](https://opensourcemaintenancefee.org). The source code stays freely available under the terms of the [license](license.txt), and forks, self-compiled binaries, and contributions are unaffected. What the fee covers is use of the official binary releases, the packages published to NuGet, by organizations that generate revenue from them.
23+
This project participates in the [Open Source Maintenance Fee](https://opensourcemaintenancefee.org). The source code stays freely available under the terms of the [license](license.txt). The fee covers the use official binary releases, the packages published to NuGet, by organizations that generate revenue from them.
2424

2525
Every version released after 1 September 2026 is covered. Versions released on or before that date are not.
2626

@@ -44,7 +44,48 @@ Exempt from the fee:
4444
* Organizations that do not generate revenue, other than government agencies.
4545
* Organizations that engage the core maintainers for consulting work, for six months from the final date of that engagement.
4646

47-
From v33 (currently available as a beta on nuget), sponsorship is validated at build time by [SponsorCheck](https://github.com/SimonCropp/SponsorCheck). Each package bundles a hashed list of sponsors and a build-time verifier, and a consuming project declares how it is licensed as metadata on the `PackageReference`: a sponsor account, a private arrangement, an exemption, or `SponsorshipLicenseIgnored="true"`, which builds with a warning rather than an error. Nothing phones home: the check runs inside the build, adds no runtime dependency to the packages, and issues no license keys. See the [consumer guide](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md) for the metadata and the diagnostic codes.
47+
### Declaring fee status in the build (v33 and later)
48+
49+
From v33 (currently available as a beta on nuget), sponsorship is validated at build time by [SponsorCheck](https://github.com/SimonCropp/SponsorCheck). Each package bundles a hashed list of sponsors and a build-time verifier. **Nothing phones home: the check runs inside the build, adds no runtime dependency to the packages, and issues no license keys.** A build that references a Verify package needs exactly one of the declarations below; without one it fails with [SC021](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/VerifierDiagnosticCodes.md#sc021), whose message contains a copy-pasteable fix.
50+
51+
The Verify packages use SponsorCheck's [owner mode](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md#owner-mode) with the owner id `Verify`, so the declaration is a single MSBuild property rather than metadata on each `PackageReference`. Set it once in a `Directory.Build.props` at the root of the repository and it covers every project and every Verify package (Verify.Xunit, Verify.NUnit, and so on), including projects that only reference Verify transitively. Prefer answering a few questions? The [SponsorCheck setup wizard for Verify](https://simoncropp.github.io/SponsorCheck/package/Verify) reads the published package and generates the exact snippet.
52+
53+
**Sponsoring** - declare the GitHub account the sponsorship is made from, i.e. the organization or user that sponsors VerifyTests:
54+
55+
```xml
56+
<PropertyGroup>
57+
<Verify_GitHubSponsorAccount>your-github-account</Verify_GitHubSponsorAccount>
58+
</PropertyGroup>
59+
```
60+
61+
The bundled sponsor list is frozen when a version is packed, so a sponsorship that began after that date cannot be in it yet; add `<Verify_SponsorshipStart>yyyy-MM-dd</Verify_SponsorshipStart>` alongside the account until the next upgrade. A sponsorship that is private on GitHub is never bundled at all; declare `<Verify_SponsorshipPrivateUntil>yyyy-MM</Verify_SponsorshipPrivateUntil>` instead, at most 12 months out, and renew it when it lapses.
62+
63+
**Exempt** - individuals and organizations under the revenue threshold claim `SmallRevenue`; organizations that engaged the core maintainers for consulting work claim `MaintainerConsulting`. Both exemptions are time-bounded, so an end month is required: at most 12 months ahead of the build date for `SmallRevenue`, and at most 6 months for `MaintainerConsulting`. The build passes with a warning that quotes the exemption's criteria, and fails once the month has passed until the claim is renewed.
64+
65+
```xml
66+
<PropertyGroup>
67+
<Verify_SponsorshipExemption>SmallRevenue</Verify_SponsorshipExemption>
68+
<Verify_SponsorshipExemptionUntil>yyyy-MM</Verify_SponsorshipExemptionUntil>
69+
</PropertyGroup>
70+
```
71+
72+
**Private arrangement** - an organization with its own licensing arrangement declares the last covered month, at most a year out, and renews it with a one-line edit:
73+
74+
```xml
75+
<PropertyGroup>
76+
<Verify_SponsorshipLicensedUntil>yyyy-MM</Verify_SponsorshipLicensedUntil>
77+
</PropertyGroup>
78+
```
79+
80+
**Opting out** - the build passes but logs a breach-of-license warning on every build:
81+
82+
```xml
83+
<PropertyGroup>
84+
<Verify_SponsorshipLicenseIgnored>true</Verify_SponsorshipLicenseIgnored>
85+
</PropertyGroup>
86+
```
87+
88+
See the [consumer guide](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/ConsumerUsage.md) for the full reference and the [diagnostic codes](https://github.com/SimonCropp/SponsorCheck/blob/main/docs/VerifierDiagnosticCodes.md) for every message the verifier can emit.
4889

4990
For the reasoning behind the model, and the discussion the terms came out of, see [Open Source Maintenance Fee for Verify](https://github.com/orgs/VerifyTests/discussions/1731). For the model itself, see the [OSMF FAQ for consumers](https://opensourcemaintenancefee.org/consumers/faq/).
5091

0 commit comments

Comments
 (0)