|
| 1 | +## Proposal IDs |
| 2 | + |
| 3 | +* **Owners:** |
| 4 | + * `@bwplotka` |
| 5 | + |
| 6 | +* **Implementation Status:** `Implemented` |
| 7 | + |
| 8 | +* **Related Issues and PRs:** |
| 9 | + * https://github.com/prometheus/proposals/issues/51 |
| 10 | + |
| 11 | +> TL;DR: We propose every Prometheus proposal has a stable reference/ID in the form of the PROM-<number>. The number is the PR ID from the original PR that was used to discuss and approve the proposal. |
| 12 | +
|
| 13 | +## Why |
| 14 | + |
| 15 | +It's important to reference decisions made in the proposal in the following development (code, docs, discussions). Currently, we either have some tribal naming for a proposal, link to a proposal repo PR when proposal is not yet approved or GH link to the proposal file with that original `<date>-template.md`. |
| 16 | + |
| 17 | +We want to ensure that "link" is even more consistent, stable and short than the current approach. |
| 18 | + |
| 19 | +### Pitfalls of the current solution |
| 20 | + |
| 21 | +* We use inconsistent references (name, PR link, file link). |
| 22 | +* The references e.g. links are hard to use (e.g. mentioning in the code commentary) and hard to memorize. |
| 23 | +* The date in the file is usually misleading. It's a creation date vs approval date (the latter might be what we usually expect). |
| 24 | +* While we try to ensure links in the `proposal/` directory never change, there's a risk we break those one day. |
| 25 | + |
| 26 | +## Goals |
| 27 | + |
| 28 | +Goals and use cases for the solution as proposed in [How](#how): |
| 29 | + |
| 30 | +* Each proposal has a short, memorable and unique ID. |
| 31 | + |
| 32 | +## How |
| 33 | + |
| 34 | +We propose every Prometheus proposal has a stable reference/ID in the form of the `PROM-<number>`. This number is captured in the file name and it originates from the ID of the Pull Request that was used to approve and merge the proposal. |
| 35 | + |
| 36 | +We propose to NOT add a stable number of digits in the official referencing. However, we propose we DO add a stable number of digits in the file name, so the file browsing has a convenient ordering. We propose 4 digits for now, prefixed by zeros, which can be increased to 5 once we have PR numbers in ten-thousands (likely in a decade). |
| 37 | + |
| 38 | +For example, this proposal is referenced as `PROM-53`, because we proposed this in the [PR `#53`](https://github.com/prometheus/proposals/pulls/53). This proposal file name is then `0053-proposal-ids.md`. |
| 39 | + |
| 40 | +For the existing proposals, we propose to rename existing proposal's file to have its PROM-<number> (based on their initial PRs), but leave the old files with a link to a new file, so the old links work. |
| 41 | + |
| 42 | +## Alternatives |
| 43 | + |
| 44 | +### Different Prefixes |
| 45 | + |
| 46 | +There are a few alternatives to the `PROM-` prefix e.g. |
| 47 | + |
| 48 | +* PEP- ("Prometheus Enhancement Proposal") |
| 49 | + * Consistent with K8s and Otel, but Prometheus community never used "EP" naming. |
| 50 | +* P- or PP- ("Prometheus Proposal") |
| 51 | + * Short but NOT clearly unique for Prometheus (e.g. Python [PEPs](https://peps.python.org/)) and not suggesting proposals |
| 52 | +* PROMETHEUS- |
| 53 | + * A bit too long? |
| 54 | + |
| 55 | +## Action Plan |
| 56 | + |
| 57 | +The tasks to do in order to migrate to the new idea. |
| 58 | + |
| 59 | +* [X] Adjust template and proposal docs. |
| 60 | +* [ ] Rename each existing proposal's file to have its PROM-<number>; Leave the old files with a link to a new file, so the old links work. |
0 commit comments