Skip to content

SIP Update Policy #228

@Hero-Gamer

Description

@Hero-Gamer

Hi all,

Putting in a conversation to confirm the updating/replacing method for existing SIP. So we can ahead making proposal for updating SIP-000.

2 main ideas on the table so far:

  1. Replacing a SIP by a new SIP, retiring the old. (Matches currently method indicated in SIP-000)
  • Use a new SIP allocation to replace the existing SIP that's ratified already.
  • Example: If we want to update SIP-000: SIP process, we would submit SIP-035 and that will be the new SIP process SIP, we would retire SIP-000.
  • Note: For this is the approach taken by BIP Editor. Process: Activate BIP3 bitcoin/bips#1820 - they are replacing BIP-0002 old process with BIP-0003 new process. (I reached out to an active BIP Editor Jon https://github.com/jonatack - to confirm their approach. He said "Yes, BIP2 remains and keeps its number and filename. Only a couple of its headers are updated.BIP2 Status would be updated from Active to Replaced and a header “Superseded-By: 3” would be added")
  1. Keeping same SIP number. Archive the previous version. (new idea)
  • Example: If SIP-000 were to be updated, we would just update the doc, ensure there is a history of the previous version saved in the archive folder (e.g. sip-000-stacks-improvement-proposal-process_V1.md or could be just the date created sip-000-stacks-improvement-proposal-process_2020-06-23.md)
  • Same would go to SIP-009 NFT if it were need updating, or a SIP-010 that need updating. Or a SIP-028 about sBTC federation, it can keep the same number just updating the document with our usual SIP process review & approval of course.

Context:

  • As we are in the process of updating SIP-000 based on all the learnings so far, and potentially updating SIP-009 NFT Standard (if I am not wrong majority of NFT contracts do not adhere to SIP-009 as Gamma's NFT contract is a slight variation on SIP-009.), and any other future updates to existing SIP.

I asked my GPT for some thoughts you can see her: https://chatgpt.com/share/68d5904b-7558-800e-859c-5b373c30a412
Some food for thoughts:

Method 1 - Replacement Model
✅ Advantages:
Preserves immutability — no ratified SIP is ever altered.
Matches Bitcoin precedent (familiar for cross-contributors).
Enables clear supersession metadata (Superseded-By).
Easier for tooling to index authoritative SIPs.

⚠️ Disadvantages:
Creates “SIP number sprawl.”
Slower iteration since each update requires a full new SIP cycle.
Developers may need to cross-reference multiple SIPs to understand an evolving standard.

In-Place Update Model
✅ Advantages:
Keeps a single authoritative number per standard (e.g., always SIP-009 for NFTs).
Faster and more lightweight for iteration.
Reduces clutter in the SIP repository.
More convenient for developer references.

⚠️ Disadvantages:
Breaks the immutability principle (ratified SIPs can be edited).
Introduces ambiguity unless archived versions are carefully tracked.
Diverges from Bitcoin practice, reducing familiarity for Bitcoin core developers.

We need to confirm the approach to take to updating.
Would love to hear more thoughts on what people think which method people lean towards?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions