Skip to content

Commit

Permalink
feat(AIP-3) add versioning (#1055)
Browse files Browse the repository at this point in the history
Adding an AIP to introduce versioning,
to help API authors point at older AIP guidance
as it evolves.
  • Loading branch information
toumorokoshi authored Apr 7, 2023
1 parent 3845935 commit eeb1f04
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions aip/general/0003.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
id: 3
state: approved
created: 2023-03-28
placement:
category: meta
order: 30
---

# AIP Versioning

This AIP defines the versioning scheme of the AIPs.

## Guidance

- The AIPs **must** be versioned by date, using the [ISO-8601 format of
`YYYY-MM-DD`](https://www.w3.org/TR/NOTE-datetime), that corresponds to the
date the version was added.
- AIPs versions **must** be available as a tag on the source control system used
to store the AIPs, of the format `v{version}`. Example: `v2023-03-28`.
- The AIPs **must** have a new version when there is a significant change to one
or more AIPs.
- Each AIP **must** include a changelog section, with the date the change was
made and a short description.

## Rationale

Versions serve as reference points to AIPs at a specific point in time. They are
crucial since guidance on an AIP can be reversed, or include significant changes
such that they are no longer similar to the original design. APIs using AIPs may
need to reference older AIP guidance to justify their design choice.

### Rationale for date-based versioning

With date-based versioning, a client can easily find the AIP guidance at the
time an API was authored.

### Why not individually versioned AIPs

An alternative to a universal version is to have specific versions attached to
each AIP.

AIPs often cross-reference one another. If each AIP had a specific version, then
cross-references would also have to specify specific versions of those
referenced AIPs to provide complete guidance.

0 comments on commit eeb1f04

Please sign in to comment.