Граф коммитов

2603 Коммитов

Автор SHA1 Сообщение Дата
Jared Lockhart 6d1599d72d
fix #6393 bug(nimbus): remove duplicates from owners drop down (#6398)
Because

* Whenever you filter by a related entity in django you'll always get duplicates in the results set so you have to add a .distinct() to the end of it

This commit

* Adds the necessary distinct filter to the owners queryset
2021-09-09 16:54:05 -07:00
Jared Lockhart 29a2e1febe
fix #6329 feat(nimbus): validate targeting config jexl syntax (#6390)
Because

* We'd like to prevent targeting configs with invalid JEXL syntax from landing

This commit

* Uses the PyJEXL validator to validate the syntax of all targeting configs
* Adds an extra test to make sure new targeting configs are added to both constant classes
2021-09-08 18:37:17 -04:00
Jared Lockhart e17726b9b3
fix #6366 bug(nimbus): validate clone name length (#6389)
Because

* We neglected to validate that the clone name can't exceed 80 characters

This commit

* Validates clone name is <= 80 characters
* Noticed we were only validating experiment length on the client side, not the server side, so added it in the serializer too
2021-09-08 12:50:24 -07:00
Jared Lockhart 5a8f4c6137
fix #6363 feat(nimbus): clone integration test (#6388)
Because

* An integration test is helpful to ensure the backend and frontend stay in sync

This commit

* Adds an integration test for cloning
2021-09-08 12:48:52 -07:00
Jared Lockhart 01b2086fb6
fix #6381 feat(nimbus): sort directory view options (#6387)
Because

* Its easier to reason about options in a drop down when they're sorted

This commit

* Sorts the options in all the directory view filter drop downs
* Default sorts the experiment list by latest change before applying column specific sorting
2021-09-08 13:24:59 -05:00
Jared Lockhart ebbf989f53
chore(nimbus): rename config api fields (#6383)
Because

* Some of the config API fields were inconsistently singular or plural
* Some fields names didn't reflect the type of data they contained

This commit

* Renames fields that return a collection to pluralized
* Renames fields to match the type of data they return
2021-09-07 16:13:08 -07:00
Jared Lockhart 9b84f4b66a
chore(nimbus): reduce margin in sidebar (#6382)
Because

* We accidentally added a bit too much margin in the sidebar

This commit

* Brings it back down
2021-09-07 16:10:15 -07:00
Marina Samuel 8bb0cb51ec
Fix #6361: fix(visualization) Skip over outcome metrics with no data. (#6377)
Because:
* Results pages were failing to load if a metric was listed as an outcome metric but it had no data

This commit:
* Will gracefully ignore outcome metrics that don't have data.
2021-09-07 13:52:53 -04:00
anthonytran7757 952ef127e2
fixes #5888 feat(nimbus): added links to the sidebar for experimenter… (#6356)
* fixes #5888 feat(nimbus): added links to the sidebar for experimenter.info and slack

Because
* links to experimenter.info and #ask-experimenter are helpful

This commit
* adds links to experimenter.info and #ask-experimenter to the sidebar

* moved links to SidebarActions, moved URLS to constants, added feedback and removed text weight

* added feedback icon

* add more spacing around links

Co-authored-by: Jared Lockhart <119884+jaredlockhart@users.noreply.github.com>
2021-09-07 12:57:19 -04:00
dependabot[bot] 60aa5e34b4
chore(deps): bump @sentry/browser from 6.11.0 to 6.12.0 in /app (#6372) 2021-09-07 15:21:23 +00:00
dependabot[bot] 31d602fd54
chore(deps): bump pytest-testmon from 1.1.1 to 1.2.0 in /app (#6368) 2021-09-07 15:20:49 +00:00
dependabot[bot] 7344ab05ee
chore(deps): bump more-itertools from 8.8.0 to 8.9.0 in /app/tests (#6367) 2021-09-07 15:14:17 +00:00
dependabot[bot] 26febc7ea2
chore(deps): bump webpack from 5.51.1 to 5.52.0 in /app (#6369) 2021-09-07 15:14:16 +00:00
dependabot[bot] 495604f25e
chore(deps): bump @babel/plugin-proposal-decorators in /app (#6371) 2021-09-07 15:14:14 +00:00
dependabot[bot] 7dec324369
chore(deps-dev): bump @typescript-eslint/eslint-plugin in /app (#6373) 2021-09-07 15:14:13 +00:00
Les Orchard e395f6f04c
fix #6338 fix(nimbus): use experiment duration as enrollment duration if experiment ends before pause (#6365)
Because:

* experiments can be ended before enrollment is paused

This commit:

* switches to experiment duration rather than proposed duration if
  enrollment wasn't explicitly ended
2021-09-03 14:00:07 -07:00
Jared Lockhart 1877c650e6
chore(nimbus): use page.open in integration tests (#6344)
Because

* The integration test PyPom library provides a handy .open method that opens the page and waits for it to load
* This can clean up a lot of code in the tests

This commit

* Uses .open in all the integration tests
2021-09-03 16:38:16 -04:00
Les Orchard 0fa612144d
fix #6303 fix(nimbus): do not flash archive tooltip during mutation query request (#6353)
Because:

* the archive button is disabled during loading, but this is not the
  same as the archive action being disabled altogether

This commit:

* separates archive disabled state from archive query loading state,
  only showing the explanatory tooltip during the former state
2021-09-03 10:54:50 -07:00
Les Orchard 43f68f8507
fix #6337 fix(nimbus): Cloning an archived experiment should not archive the clone (#6352)
Because:

* clone experiments are intended to be fresh drafts

This commit:

* ensures that cloned experiments are properly set to not be archived
2021-09-03 10:54:43 -07:00
Les Orchard 0ba844c833
fix #6243 fix(nimbus): do not display invalid pages alert for an archived experiment (#6354)
Because:

* archived experiments cannot be changed

This commit:

* prevents the display of the alert listing pages with missing details
  for an archived experiment
2021-09-03 10:54:15 -07:00
Les Orchard 2de59e3046
fix #6343 fix(nimbus): include documentation links in cloning (#6355)
Because:

* documentation links should be copied during cloning

This commit:

* ensures that the links are copied
2021-09-03 09:46:19 -07:00
Les Orchard 18b6f4d7e9
fix #6314 fix(nimbus): do not restore previous search parameters when navigation resets them to empty (#6349)
Because:

* resetting sort order on the index page clears query parameters

This commit:

* applies a bugfix to correctly handle reset query parameters, rather
  than restoring the previous non-empty stored value
2021-09-02 14:40:18 -07:00
Lauren Zugai 4315def2b2
fix #6071 feat(nimbus): Enable relative/absolute tab for tables + Highlights, cosmetic tweaks (#6313)
Because:
* Users would like to toggle between relative and absolute branch comparison values - functionality was previously implemented for two tables deemed most important, this change allows the toggle to switch in sets of tabs containing these tables plus, now, the highlights table

This commit:
* Enables the highlights table to toggle between absolute/relative comparison
* Removes the branch comparison button, uses Bootstrap's Tabs component instead for applicable tables since the toggle is not useful for the metric tables
* Contains cosmetic tweaks, including spacing updates, updating heading levels and adding a metrics heading, combining monitoring/analysis sections, and aligning tooltips horizontally
2021-09-02 12:42:31 -05:00
Jared Lockhart 6e87eb9cd6
chore(nimbus): move integration test logic to base classes (#6341)
Because

* Now that we have nice clear base classes for the integration tests
* We don't need to override some shared logic in the child page classes

This commit

* Moves all the shared page logic to the respective base classes
2021-09-02 12:51:32 -04:00
Les Orchard 54c79455cb
fix #5796 feat(nimbus): Update experiment header to link back to parent experiment (#6340)
Because:

* we want to place cloned experiments in context with the original

This commit:

* adds a line to HeaderExperiment component identifying the experiment as a
  clone with a link back to the original parent

* updates GQL query and API to expose full parent experiment data, mainly for
  slug & name needed for the link

* updates types & tests as necessary
2021-09-01 16:57:51 -07:00
Jared Lockhart c615c62ebf
fix #6295 bug(nimbus): Fix intermittency in remote settings integration tests (#6339)
Because

* We've seen persistent intermittent failures in the remote settings integration tests
* It turns out the remote settings pages can render in stages so it's not sufficient to just wait for the page wait locator for all the UI elements to be available
* Also we were using the old remote settings review page instead of the new simple one that Experimenter links to

This commit

* Adds a wait locator to every UI element in the Remote Settings pages so interactions shouldn't occur until the element is visible
* Adds helpful messages to each of the waits so if one fails the test should clearly say what it was waiting for and couldn't find
* Use the new simple-review page in Remote Settings instead of the old review page
2021-09-01 18:04:08 -05:00
Jared Lockhart f0c303a7ca
fix #6305 chore(nimbus): add archiving integration test (#6333)
Because

* We should add a simple integration test for each new major feature we add

This commit

* Adds an integration test for archiving
* Splits the integration tests into two groups
  * Tests that run for each application (for remote settings integration)
  * Tests that only run once (for things constrained just to experimenter UI)
* Adds a random identifier to the end of integration test experiments to allow rerunning tests locally
* Cleans up the page load wait locators
2021-09-01 10:47:22 -07:00
Les Orchard 0e5ea47b84
fix #6312 feat(nimbus): Connect Clone modal to mutation (#6336)
Because:

* we want to enable cloning of experiments

This commit:

* adds the clone experiment GQL mutation in front end

* creates a useCloneDialog hook with CloneDialog display and mutation
  logic that can be partially controlled and watched from SidebarActions

* adds display of general submit errors to CloneDialog

* updates types & tests as necessary
2021-09-01 10:18:26 -07:00
Jared Lockhart 19298d682f
fix #5791 feat(nimbus): add clone api (#6307)
Because

* We want to trigger cloning from the UI

This commit

* Exposes the cloning method through a V5 API
2021-08-31 14:13:10 -04:00
Jared Lockhart 20fe3d3f11
fix #6311 bug(nimbus): make test change datetimes deterministic (#6330)
Because

* We've had this issue for a little while where creating multiple changelogs in tests with timezone.now() can result in multiple changes having the same change datetime
* Several bits of logic depend on using the 'latest' change to understand the state of the experiment
* Multiple changes with the same change datetime can randomly invert the expected ordering and intermittently fail tests

This commit

* Changes the NimbusExperimentFactory to always use the same starting date and then create each change 1 day later
* For tests that are sensitive to timeouts, provide the ability to set the latest change to the current time
* For tests that require more detailed change date logic, explicitly set those dates in the test
* This should hopefully prevent this kind of intermittency from happening in the future
2021-08-31 11:04:50 -07:00
Jared Lockhart 1065fe39f8
chore(project): re-enable circle docker layer caching (#6334)
Because

* We previously used circle docker layer caching to speed up circle runs
* While migrating to the shared build cache, some confusing errors appeared
* We disabled it to see if that cleared up the issue
* Circle builds have been stable lately using the shared layer cache, but each circle run takes a significant amount of time to pull in remote images
* It's worth trying to re enable it to see if we can get both the circle caching and shared layer cache working together properly

This commit

* Re enables circle docker layer caching
2021-08-31 13:33:58 -04:00
dependabot[bot] e4500adcf3
chore(deps): bump importlib-metadata from 4.6.1 to 4.8.1 in /app (#6324) 2021-08-30 17:48:07 +00:00
dependabot[bot] 9d77514c6f
chore(deps-dev): bump eslint-plugin-react from 7.24.0 to 7.25.1 in /app (#6327) 2021-08-30 17:48:05 +00:00
dependabot[bot] 0ea5896f46
chore(deps): bump black from 21.6b0 to 21.8b0 in /app (#6323) 2021-08-30 17:45:16 +00:00
dependabot[bot] 59716f9e55
chore(deps): bump @testing-library/dom from 8.1.0 to 8.2.0 in /app (#6325) 2021-08-30 17:45:14 +00:00
dependabot[bot] 726d568306
chore(deps-dev): bump @typescript-eslint/eslint-plugin in /app (#6328) 2021-08-30 17:45:11 +00:00
Benjamin Forehand Jr 251dbb36e9
fix #6310 Approve button not shown error during e2e tests. (#6316)
* fix #6310 Approve button not shown error during e2e tests.
2021-08-26 12:53:07 -04:00
Lauren Zugai 846a64f9c4
fix #6200 feat(nimbus): Display all analysis external config overrides on Results page (#6302)
Because:
* Experiment analysis can be ran with overrides on the Jetstream side. As of Jetstream metadata schema 4, these overrides are exposed and we want to convey them to users to eliminate confusion. The reference/control branch was taken care of in a prior commit - this covers the rest of the overrides.

This commit:
* Displays start date, end date, and enrollment period overrides in ExternalConfigAlert
* Displays 'analysis was skipped' text in the sidebar if 'skip' is set to true, slightly alters analysis ready text
* Refactors AppLayoutSidebarLaunched stories to new syntax, refactors PageResults stories to new syntax and adds story to better preview the page when the control branch is overridden
2021-08-25 18:37:53 -05:00
Benjamin Forehand Jr 463b8f3035
Fix #6309 - Initial attempt at adding parametrization to e2e tests. (#6273)
* Initial attempt at adding parametrization to e2e tests.
2021-08-25 14:57:51 -07:00
Jared Lockhart 0f3660d91f
fix #5787 feat(nimbus): add experiment clone method (#6306)
Because

* We want to be able to clone a nimbus experiment

This commit

* Adds a clone method to NimbusExperiment
2021-08-25 15:43:42 -05:00
Jared Lockhart ddb0100f85
fix #5782 feat(nimbus): add parent to nimbus experiment (#6301)
Because

* To track which experiment another experiment was cloned from we need a parent field

This commit

* Adds a parent field to NimbusExperiment
2021-08-25 12:36:42 -04:00
Les Orchard b634cd60ea
fix #5794 fix #5755 fix #5759 feat(nimbus): add Clone Experiment dialog summoned via sidebar action button (#6299)
Because:

- We want to remove friction by allowing users to clone experiments

This commit:

- adds a new CloneDialog sub-component for SidebarActions that accepts a
  new name based on the current experiment and offers a slug preview

- adds a Clone Experiment button in SidebarActions to summon CloneDialog

- adds SlugTextControl, a small component that shows a slugified preview
  of string value
2021-08-25 09:08:55 -07:00
Andrei Oprea 5de6560227
feat(nimbus): Add targeting for various types of profile activity (#6248) 2021-08-25 15:38:06 +00:00
anthonytran7757 f283e30f17
fixes #5781 refactor(nimbus): reorder middleware (#6304)
Because

* the whitenoise docs suggests putting the Django Security middleware above the whitenoise middleware

This commit

* reorders the middleware as suggested by whitenoise
2021-08-25 11:25:10 -04:00
Lauren Zugai 889fbe9045
fix #6267 chore(docs): Update visualization data nimbus-ui docs (#6274)
Because:
* The 'testing locally' vis docs were out of date and could use more details

This commit:
* Updates the visualization portion of the nimbus-ui readme for more explicit instructions on testing locally, with other details
2021-08-24 18:44:25 -05:00
Jared Lockhart 119d7f7b2c
fix #6208 feat(nimbus): display info for disabled archive button (#6240)
Because

* It helps to explain why a button is disabled

This commit

* Adds an info tooltip when the archive button is disabled
2021-08-24 15:03:02 -07:00
Jared Lockhart fe1175d80f
fix #6293 chore(nimbus): don't require generate_types for targeting changes (#6297)
Because

* We expect many people to be adding/changing targeting configs over time
* It shouldn't be necessary to run make generate_types when landing changes to targeting

This commit

* Removes the enumeration typing from the V5 API for targeting_config_slug
2021-08-24 15:00:42 -07:00
Jared Lockhart a7606d6081
fix #6242 bug(nimbus): don't show request launch for archived experiment (#6298)
Because

* You can't launch an archived experiment

This commit

* Hides "Request Launch" for an archived experiment
2021-08-24 14:59:43 -07:00
Jared Lockhart 32f95f9fa2
fix #6247 bug(nimbus): redirect to summary after archive (#6300)
Because

* Archived experiments aren't editable

This commit

* Redirects to the summary page for an archived experiment
2021-08-24 14:59:11 -07:00
Jared Lockhart 3f838e397f
fix #6286 chore(nimbus): specify branch ordering (#6290)
Because

* Without a default ordering branches can be returned in any order
* Serializing the same experiment twice can yield different exact data occasionally
* This can cause non obvious intermittent test failures

This commit

* Specifies a default ordering for branches
2021-08-24 15:28:45 -04:00