IPIP aims to focus protocol design discussions into an orderly process that:
We adopted a formal change management process for the ipfs/specs repository, providing a minimal structure for opening, reviewing, and merging specification changes.
IPIP Provides an orderly mechanism for considering proposed changes to IPFS specifications. An IPIP proposal is not to be the spec itself; the approval of an IPIP leads to an update to a specification.
To illustrate:
ipfs/specs/src/webdav-gateway.md
.ipfs/specs/src/ipips/ipip-000N.md
would only include
Motivation and explainer why certain design decisions were made at a
certain point in time. Initial ipip-000N.md
would explain
why we added WebDAV spec in the first place.ipfs/specs/src/ipips/ipip-000M.md
explaining why we make the
breaking spec change, compatibility/migration considerations etc.Changes to IPFS specifications can be proposed by opening a Git pull-request
(PR) against the ipfs/specs
repository.
In addition to specification changes, such PR must include a short IPIP
document based on the template in ipfs/specs/ipip-template.md
.
When a new specification file is added to the repo, it should be based on
the template at ipfs/specs/template.md
.
When naming a new proposal, don't try to introduce an IPIP number; we will do that only for
IPIPs that are approved before accepting into main
branch.
Proposals are officially submitted when a pull request into main
is opened
Proposals that were reviewed as useful, but rejected for now, will be moved into IPIP/deferred
folder and then merged into main
main
branch. Potentially useful (but rejected for now)
proposals should be also merged to main
, but in a subfolder called /IPIP/deferred
. Proposals rejected in initial
triage will simply have the PR declined.CODEOWNERS
file to be
automatically asked to review any future changes to files added or modified by the IPIP.Specs Stewards will adjust the process based on usage patterns.
Copyright and related rights waived via CC0.