-
Notifications
You must be signed in to change notification settings - Fork 72
feat(releases): replace readiness version dropdown with 3-tier selector #1521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -85,13 +85,15 @@ function registerReleaseReadinessRoutes(router, { storage, requireAuth, requireS | |
| return res.json({ versions: [], default_version: null }); | ||
| } | ||
|
|
||
| const versions = (files || []) | ||
| const rawNames = (files || []) | ||
| .filter(f => f.endsWith('.json')) | ||
| .map(f => f.replace('.json', '').replace(/_/g, ' ')); | ||
| .map(f => f.replace('.json', '')); | ||
|
|
||
| const versions = rawNames.map(n => n.replace(/_/g, ' ')); | ||
| const releases = rawNames.map(name => ({ id: name, state: 'active' })); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Potential format mismatch: Please verify the actual filenames on disk match the |
||
| const defaultVersion = findUpcomingVersion(versions, storage); | ||
|
|
||
| res.json({ versions, default_version: defaultVersion }); | ||
| res.json({ versions, releases, default_version: defaultVersion }); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OpenAPI description out of date. The response now includes a |
||
| }); | ||
|
|
||
| router.post('/upload', requireAuth, requireScope('releases:write'), async (req, res) => { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -138,6 +138,7 @@ export const viewOwners = { | |
| 'releases/reports/tv-fv-delta': 'Dimitri Saridakis', | ||
|
|
||
| // team-tracker > reports | ||
| 'team-tracker/reports/allocation': 'Alex Corvin', | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Manual edit in auto-generated file. This file's header says "DO NOT EDIT MANUALLY — regenerated by Also, this change is unrelated to the readiness selector feature — consider splitting it into its own PR. |
||
| 'team-tracker/reports/team-comparison': 'Alex Corvin', | ||
| 'team-tracker/reports/trends': 'Alex Corvin', | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Double-load on mount.
restoreSelection()mutatesselection, which triggers thewatchbelow (lines 637–645). But the very next line also callsloadSelectedPhases()explicitly. Both run concurrently, doubling API calls and causing a second pass that resetsselectedComponents/selectedPhases.Fix: remove the explicit
loadSelectedPhases()fromonMountedand let the watcher handle it, or add{ flush: 'post' }to the watch and guard with a flag.