Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/v1-v2-work.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: V1/v2 tracked work
description: Route v1 maintenance, v2, synchronization, release, or cutover work
title: ""
body:
- type: markdown
attributes:
value: |
Read the [v1/v2 routing runbook](https://github.com/gravity-ui/graph/blob/main/docs/contributing/v1-v2-routing.md) before choosing a work type.
- type: dropdown
id: work-type
attributes:
label: Work type
description: Select the line or operation that owns this work.
options:
- v1-maintenance
- v2
- sync
- release-v1
- release-v2
- cutover
validations:
required: true
- type: dropdown
id: phase
attributes:
label: Project phase
options:
- Before v2 cutover
- After v2 cutover
validations:
required: true
- type: input
id: target
attributes:
label: Target branch
description: State the branch selected using the runbook.
placeholder: main, v2, or release/v1
validations:
required: true
- type: textarea
id: scope
attributes:
label: Scope and routing rationale
description: Explain why this work belongs to the selected line.
validations:
required: true
- type: textarea
id: evidence
attributes:
label: Required evidence
description: For sync/release/cutover work, include owners, SHAs, PRs, workflow runs, preview destinations, and verification as applicable.
- type: checkboxes
id: confirmation
attributes:
label: Confirmation
options:
- label: I followed the v1/v2 routing runbook and did not infer a branch or release channel from an unavailable future configuration.
required: true
40 changes: 40 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## Summary

<!-- Describe the change and why it is needed. -->

## V1/v2 routing

- Work type: <!-- v1-maintenance | v2 | sync | release-v1 | release-v2 | cutover -->
- Project phase: <!-- before v2 cutover | after v2 cutover -->
- Target branch:
- Routing rationale:

Follow the
[v1/v2 contribution and synchronization runbook](https://github.com/gravity-ui/graph/blob/main/docs/contributing/v1-v2-routing.md).

## Verification

- Checks run:
- Workflow or preview evidence, when applicable:

## Synchronization record

<!-- Complete for sync work; otherwise write "Not applicable". -->

- Owner:
- Source v1 branch:
- Full source SHA:
- Applicability: <!-- port | no-port -->
- Rationale:
- Sync PR or no-port record:
- Resulting merge SHA:
- V2 conflict resolution or neutralization:
- Verification:

## Checklist

- [ ] The selected target branch matches the current project phase and work type.
- [ ] V1 changes are limited to necessary bug fixes, security fixes, or v1 documentation.
- [ ] A synchronization PR uses a merge commit; squash, rebase, and cherry-pick are not used as the canonical branch sync.
- [ ] Release and preview evidence uses the configured route and does not assume an undocumented destination.
- [ ] This change does not treat v2 cutover as formal v1 deprecation or workflow retirement.
52 changes: 52 additions & 0 deletions .github/release-routing/routes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"activePhase": "pre-cutover",
"branchCreationPolicy": "skip-release-job",
"releaseRoutes": {
"pre-cutover-v1": {
"phase": "pre-cutover",
"branch": "main",
"major": 1,
"prerelease": false,
"distTag": "latest",
"workflow": "release-v1.yml",
"active": true
},
"pre-cutover-v2": {
"phase": "pre-cutover",
"branch": "v2",
"major": 2,
"prerelease": true,
"distTag": "next",
"workflow": "release-v2.yml",
"active": true
},
"post-cutover-v1": {
"phase": "post-cutover",
"branch": "release/v1",
"major": 1,
"prerelease": false,
"distTag": "v1",
"workflow": "release-v1.yml",
"active": false
},
"post-cutover-v2": {
"phase": "post-cutover",
"branch": "main",
"major": 2,
"prerelease": false,
"distTag": "latest",
"workflow": "release-v2.yml",
"active": false
}
},
"previewRoutes": {
"main": {
"workflow": "main-preview.yml",
"destination": "/graph/main/"
},
"v2": {
"workflow": "v2-preview.yml",
"destination": "/graph/v2/"
}
}
}
Loading
Loading