Charter
The charter of the board that oversees the MainSDK open contracts: who sits on it, how it decides and how community SDKs earn the conformance label.
Status Status is where the work is: Planned (in a milestone, not started), Building (tickets in progress), Preview (usable, may change), then the stability it ships at.
Stability The promise an interface ships with.
- Stable Follows semantic versioning; breaking changes need a new major, 12 months of overlap and a codemod.
- Beta Usable in production; may change before it becomes stable.
- Experimental May change or go away; needs an explicit opt-in in main.yaml.
The open contracts belong to a neutral foundation, so anyone can build on them without depending on one company. This charter says who oversees them. It takes effect when the contracts move, after 1.0. The foundation and the board's members are the owner's decisions and are recorded in docs/community/foundation.yaml when they are made.
What the board oversees
- The TypeSpec sources of every interface, the error codes and the conformance vectors.
- The telemetry contract, the Main mark and
/.well-known/mainsdk.json. - The conformance label for SDKs, official and community-led.
The SDK stays Apache-2.0. MainSDK Cloud stays HubXero's.
Who sits on the board
- At least one member comes from outside HubXero. The chair is external.
- HubXero holds at most two maintainer seats.
- One seat is for the community, held by a person with a merged contribution.
- A seat holder can be replaced by a vote of the others with the chair's agreement.
How the board decides
- A change to a contract starts as a public RFC and stays open for at least 7 days.
- The board accepts or declines it in public, and writes the reason in the RFC.
- Every decision is public: the RFC, the vote and the reason live in
docs/rfcs/, and meeting notes are published within 7 days. - A contract keeps its version history across the transfer. The old repository links to the new one.
Community SDKs and the conformance label
An SDK in another language earns the label by passing the same conformance suite as the official SDKs: the current suite version, every test run, none failed. Send the run's result with a pull request to docs/community/sdks.yaml. If it passes, it is listed with the label. If a later suite version fails it, the label lapses until a new passing run is listed.
Was this page helpful?