diff --git a/docs/release-notes/run-centric-ux.rst b/docs/release-notes/run-centric-ux.rst new file mode 100644 index 00000000000..1cb6aba469d --- /dev/null +++ b/docs/release-notes/run-centric-ux.rst @@ -0,0 +1,16 @@ +:orphan: + +**New Features** + +- WebUI: In the Experimental features, Flat Runs View is now "on" by default in the :ref:`WebUI + `\. Users can still toggle this feature "off". +- This update improves the ability to compare model performance between different trials, based on + user feedback that most Determined users run single-trial experiments. +- "Experiments" is now renamed to "searches" and "trials" is now renamed to "runs" for better + clarity. +- The "experiment list" is renamed the "run list", showing all trials from experiments in the + project. It functions similarly to the previous new experiment list. +- Multi-trial experiments can be viewed in the new searches view, which allows for sorting, + filtering and navigating multi-trial experiments. +- When viewing a multi-trial experiment, a list of trials is displayed, allowing for sorting, + filtering and arbitrary comparison between trials. diff --git a/webui/react/src/components/ProjectCard.test.tsx b/webui/react/src/components/ProjectCard.test.tsx index 67ef5c10297..9d2a5f1429d 100644 --- a/webui/react/src/components/ProjectCard.test.tsx +++ b/webui/react/src/components/ProjectCard.test.tsx @@ -18,6 +18,7 @@ const projectMock: Project = { notes: [], numActiveExperiments: 1, numExperiments: 16, + numRuns: 16, state: 'UNSPECIFIED', userId: 1354, workspaceId: 1684, @@ -53,7 +54,7 @@ describe('ProjectCard', () => { it('should display experiments count', () => { setup(); expect( - screen.getByText(projectMock.numExperiments?.toString() ?? 'Count undefined'), + screen.getByText(projectMock.numRuns?.toString() ?? 'Count undefined'), ).toBeInTheDocument(); }); diff --git a/webui/react/src/e2e/fixtures/global-fixtures.ts b/webui/react/src/e2e/fixtures/global-fixtures.ts index 0c45f0f439f..9c7827c220a 100644 --- a/webui/react/src/e2e/fixtures/global-fixtures.ts +++ b/webui/react/src/e2e/fixtures/global-fixtures.ts @@ -40,6 +40,17 @@ export const test = baseTest.extend({ username: newAdmin.user!.username, }, }); + await apiAuth.apiContext?.post('/api/v1/users/setting', { + data: { + settings: [ + { + key: 'flat_runs', + storagePath: 'global-features', + value: 'false', + }, + ], + }, + }); await use(apiAuth); }, @@ -68,6 +79,17 @@ export const test = baseTest.extend({ async ({ playwright, browser }, use) => { const backgroundApiAuth = new ApiAuthFixture(playwright.request, browser, apiUrl()); await backgroundApiAuth.loginApi(); + await backgroundApiAuth.apiContext?.post('/api/v1/users/setting', { + data: { + settings: [ + { + key: 'flat_runs', + storagePath: 'global-features', + value: 'false', + }, + ], + }, + }); await use(backgroundApiAuth); await backgroundApiAuth.dispose(); }, diff --git a/webui/react/src/hooks/useFeature.ts b/webui/react/src/hooks/useFeature.ts index d5f5df193a6..5d6061b8623 100644 --- a/webui/react/src/hooks/useFeature.ts +++ b/webui/react/src/hooks/useFeature.ts @@ -29,7 +29,7 @@ export const FEATURES: Record = { friendlyName: 'New Experiment List', }, flat_runs: { - defaultValue: false, + defaultValue: true, description: 'Presents all runs in a project in a single view, rather than grouped into experiments', friendlyName: 'Flat Runs View', diff --git a/webui/react/src/pages/ExperimentDetails/ExperimentDetails.test.tsx b/webui/react/src/pages/ExperimentDetails/ExperimentDetails.test.tsx index d3c0832bfd3..a86e5bc7ef4 100644 --- a/webui/react/src/pages/ExperimentDetails/ExperimentDetails.test.tsx +++ b/webui/react/src/pages/ExperimentDetails/ExperimentDetails.test.tsx @@ -31,6 +31,16 @@ vi.mock('react-router-dom', async (importOriginal) => ({ useParams: vi.fn(), })); +vi.mock('hooks/useFeature', () => { + return { + default: () => ({ + isOn() { + return false; + }, + }), + }; +}); + vi.mock('services/api', () => ({ getExperimentDetails: vi.fn(), getExpTrials: vi.fn(),