summaryrefslogtreecommitdiff
path: root/doc/development/routing.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/routing.md')
-rw-r--r--doc/development/routing.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/development/routing.md b/doc/development/routing.md
index 2c2f6b2a558..8fca9b00157 100644
--- a/doc/development/routing.md
+++ b/doc/development/routing.md
@@ -69,6 +69,18 @@ gitlab-org/gitlab/-/settings/repository
gitlab-org/serverless/runtimes/-/settings/repository
```
+## Changing existing routes
+
+Don't change a URL to an existing page, unless it's necessary. If you must make a change,
+make it unnoticeable for users, because we don't want them to receive `404 Not Found`
+if we can avoid it. This table should help:
+
+| URL description | Example | What to do |
+|---|---|---|
+| Can be used in scripts and automation | `snippet#raw` | Support both an old and new URL for one major release. Then, support a redirect from an old URL to a new URL for another major release. |
+| Likely to be saved or shared | `issue#show` | Add a redirect from an old URL to a new URL until the next major release. |
+| Limited use, unlikely to be shared | `admin#labels` | No extra steps required. |
+
## Migrating unscoped routes
Currently, the majority of routes are placed under the `/-/` scope. However,