Skip to content

feat(nimbus): add results to new nimbus ui #12732

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

Merged
merged 10 commits into from
Jun 27, 2025
Merged

feat(nimbus): add results to new nimbus ui #12732

merged 10 commits into from
Jun 27, 2025

Conversation

jaredlockhart
Copy link
Collaborator

Because

  • We need to add a results page to the new Nimbus UI
  • We can use the existing results page until we have a more suitable replacement

This commit

  • Makes a copy of the nimbus-ui React app called results
  • Removes all components except those necessary for the results page
  • Adds all of the Makefile entry points to test, lint, etc the new results app
  • Adds all of the build/copy steps for the new results app to the Dockerfile
  • Adds a new url/view for the results page in nimbus_ui_new

fixes #12707
Screenshot 2025-06-05 at 16-27-51 Desktop Credit Card Autofill Global Enablement Holdback (Release) Experimenter

@jaredlockhart
Copy link
Collaborator Author

Followup: #12734

Copy link
Contributor

@yashikakhurana yashikakhurana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jaredlockhart I tried running it locally, it build correctly and loads results correctly, but something is off with the styling, when I click on the results page all timeline and sidebar moves
Screenshot 2025-06-09 at 11 23 09 AM

Comment on lines +53 to +57
RESULTS_SCHEMA_CHECK = python manage.py graphql_schema --out experimenter/results/test_schema.graphql&&diff experimenter/results/test_schema.graphql experimenter/results/schema.graphql || (echo GraphQL Schema is out of sync please run make generate_types;exit 1)
NIMBUS_TYPES_GENERATE = python manage.py graphql_schema --out experimenter/nimbus-ui/schema.graphql&&yarn workspace @experimenter/nimbus-ui generate-types
RESULTS_TYPES_GENERATE = python manage.py graphql_schema --out experimenter/results/schema.graphql&&yarn workspace @experimenter/results generate-types
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should add this in make check command

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add RESULTS_TYPE_GENERATE AND RESULTS_SCHEMA_CHECK as part of make check command

Comment on lines +14 to +19
{% block main_content %}
<div id="root" data-config="{{ APP_CONFIG }}"></div>
{% endblock main_content %}

{% block extrascripts %}
{% if USE_YARN_DEV %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@jaredlockhart
Copy link
Collaborator Author

Aha! I discovered that the Results JS package was loading boostrap4.5 which was conflicting with bootstrap 5 that nimbus ui new uses. So I removed the boostrap4.5 import, and updated the rules and styles, so that fixes the layout problem, and also unlocks dark mode!
Screenshot 2025-06-18 at 14-38-38 Desktop Credit Card Autofill Global Enablement Holdback (Release) Experimenter
Screenshot 2025-06-18 at 14-38-26 Desktop Credit Card Autofill Global Enablement Holdback (Release) Experimenter

Comment on lines +53 to +57
RESULTS_SCHEMA_CHECK = python manage.py graphql_schema --out experimenter/results/test_schema.graphql&&diff experimenter/results/test_schema.graphql experimenter/results/schema.graphql || (echo GraphQL Schema is out of sync please run make generate_types;exit 1)
NIMBUS_TYPES_GENERATE = python manage.py graphql_schema --out experimenter/nimbus-ui/schema.graphql&&yarn workspace @experimenter/nimbus-ui generate-types
RESULTS_TYPES_GENERATE = python manage.py graphql_schema --out experimenter/results/schema.graphql&&yarn workspace @experimenter/results generate-types
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add RESULTS_TYPE_GENERATE AND RESULTS_SCHEMA_CHECK as part of make check command

Comment on lines +274 to +307
export const GET_EXPERIMENTS_QUERY = gql`
query getAllExperiments {
experiments {
isArchived
isRollout
name
owner {
username
}
featureConfigs {
id
slug
name
description
application
ownerEmail
}
targetingConfig {
label
value
description
applicationValues
stickyRequired
isFirstRunRequired
}
slug
application
firefoxMinVersion
firefoxMaxVersion
startDate
isRolloutDirty
isEnrollmentPausePending
proposedDuration
proposedEnrollment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

calling this all, means we still have to keep our graphql intact 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we just only call those params that we need

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I'm definitely not going to start digging into the details of the GraphQL for this ticket, I just want to get this page landed.

Yes we have to keep the GQL alive as long as the results page is in its current state. When we make a new one we can remove it entirely.

Because

* We need to add a results page to the new Nimbus UI
* We can use the existing results page until we have a more suitable replacement

This commit

* Makes a copy of the nimbus-ui React app called results
* Removes all components except those necessary for the results page
* Adds all of the Makefile entry points to test, lint, etc the new results app
* Adds all of the build/copy steps for the new results app to the Dockerfile
* Adds a new url/view for the results page in nimbus_ui_new

fixes #12707
@yashikakhurana yashikakhurana enabled auto-merge June 27, 2025 21:00
@yashikakhurana yashikakhurana added this pull request to the merge queue Jun 27, 2025
Merged via the queue into main with commit 124a44f Jun 27, 2025
16 checks passed
@yashikakhurana yashikakhurana deleted the 12707 branch June 27, 2025 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate results page to HTMX
2 participants