Skip to content
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

Add Archive status for experiments #30

Closed
Tracked by #690
SritterCL opened this issue Jan 7, 2021 · 14 comments · Fixed by #987 or #1127
Closed
Tracked by #690

Add Archive status for experiments #30

SritterCL opened this issue Jan 7, 2021 · 14 comments · Fixed by #987 or #1127
Assignees
Labels
enhancement New feature or request priority: medium Medium priority issue
Milestone

Comments

@SritterCL
Copy link

We should add an "archived" status for experiments. Archived status can be reached from any status except enrolling (if an experiment is enrolling and needs to be stopped, it should go to cancelled status).

The semantics of archived status is described in the spec:
https://docs.google.com/document/d/1X-DBcyz7nTwk_MLg8kYfWg1Uspb9bx0y9OEgi_T0tLI/edit#heading=h.1z8xhfd43vmo

Basically, "archived" status exists just as a historical record that an experiment existed, but nothing at runtime can reference the experiment.

@LyleS LyleS assigned LyleS and unassigned LyleS Jan 7, 2021
@JD2455 JD2455 assigned JD2455 and unassigned JD2455 Jan 7, 2021
@amurphy-cl amurphy-cl transferred this issue from CarnegieLearningWeb/educational-experiment-service Apr 29, 2021
@amurphy-cl amurphy-cl added enhancement New feature or request priority: medium Medium priority issue labels Apr 29, 2021
@amurphy-cl amurphy-cl added priority: low Low priority issue and removed priority: medium Medium priority issue labels May 11, 2022
@amurphy-cl
Copy link
Collaborator

@SritterCL @nirmalpatel this feature will become more valuable as we continue to create experiments and want to refer back without deleting them. Pinging to think about prioritizing this feature - marking it low for now, but will be helpful to have moving forward.

@amurphy-cl amurphy-cl added the priority: medium Medium priority issue label May 18, 2022
@amurphy-cl
Copy link
Collaborator

amurphy-cl commented May 25, 2022

Adding some additional details here.

As a user of UpGrade, I want to be able to be able to view a history of experiments that have been run but are now completed or otherwise no longer supported by UpGrade. "No longer supported" means that students are no longer being assigned conditions (either through enrollment or a post-experiment rule), and any client application code that delivers conditions no longer needs to be present (i.e., we will not check for validity of conditions, decision points, or other parameters in the context metadata). Archived status is permanent; once archived, an experiment can't transition to another status.

We expect the list of Archived experiments to keep growing and (eventually) be substantial, so leaving them in UI of the main list of experiments is not a good long-term option. One possibility would be to have the Archived list show up on the left-hand menu, or access Archived experiments another way such as hiding them in the list of experiments unless a box is checked, or other option. @zackcl will work on some mockups for the UI.

Archiving an experiment maintains the parameter settings and the "last known state" of enrollment and metric counts. Data should be downloadable from an Archived experiment (edited). Archiving should also be coordinated with any "un-staging" of client app code that previously supported the experiment, but we leave the specifics of that process to individual client app developers.

@amurphy-cl amurphy-cl removed the priority: low Low priority issue label May 25, 2022
@SritterCL
Copy link
Author

I like the idea of hiding archived experiments. We might also want to be able to permanently delete them, just to clean things up,

I would allow data to be downloaded from archived experiments because if you archive an experiment before downloading data, you'd have no way to get the data.

@amurphy-cl
Copy link
Collaborator

amurphy-cl commented May 25, 2022

Yeah, I don't see why the delete option that we have for all experiments should be disabled for archived ones. Somewhat related, the ability to batch export experiment data might be handy for when we do clean-up.

Good point about the status change and data access. Edited the above to reflect this.

@amurphy-cl
Copy link
Collaborator

Bumping this up to revisit -- this feature would be handy to have with the numerous xprize experiments after they're done running.

@nirmalpatel
Copy link
Contributor

nirmalpatel commented Jan 18, 2023 via email

@amurphy-cl
Copy link
Collaborator

No, I don't think they should be allowed to be unarchived, but we should be able to say, export the experiment design json. IIRC when we previously discussed how the post rule would operate with respect to archiving, we said that it would not function anymore -- that Archived experiments would be effectively cancelled (insofar as they wouldn't deliver conditions live or in post), as well as possibly be hidden from the UI.

@danoswaltCL
Copy link
Collaborator

once an experiment goes from complete to archived, it seems like the researcher must be committing to transitioning the experiment permanently into read-only, historical status. At that point, it seems like it should no longer be upgrade's job to keep sending a post-rule condition, someone should have decided whether or not to change the implementation at the experiment site in the platform.

do we want to allow for a separate read-only database for archived experiments that we can point to? To separate out the work-a-day experiments from the retired ones that are just there to be analyzed and queried?

@zackcl
Copy link
Collaborator

zackcl commented Jan 18, 2023

Like April said, the archived experiments can't be unarchived or changed to a different status.
Experiment Status Diagram drawio

@mswartzCL mswartzCL added this to the Brilliant Base milestone Jan 19, 2023
@mswartzCL mswartzCL moved this from Todo to QA in UpGrade Project Aug 31, 2023
@amurphy-cl amurphy-cl moved this from QA to In Progress in UpGrade Project Sep 5, 2023
@ppratikcr7 ppratikcr7 moved this from In Progress to QA in UpGrade Project Oct 5, 2023
@Yagnik56 Yagnik56 linked a pull request Oct 11, 2023 that will close this issue
@zackcl
Copy link
Collaborator

zackcl commented Nov 6, 2023

I need to QA this.

@zackcl zackcl reopened this Nov 13, 2023
@github-project-automation github-project-automation bot moved this from QA to In Progress in UpGrade Project Nov 13, 2023
@zackcl
Copy link
Collaborator

zackcl commented Nov 13, 2023

If I try to change the experiment status to "Archived", it doesn't work and I get the following error on the backend console:

TypeError: Cannot read properties of undefined (reading 'experiment')
    at QueryService.<anonymous> (/Users/zlee/Desktop/code/UpGrade/backend/packages/Upgrade/src/api/services/QueryService.ts:71:26)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/zlee/Desktop/code/UpGrade/backend/packages/Upgrade/node_modules/tslib/tslib.js:114:62)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

Here's the screen recording showing the issue:

archive.error.mov

@zackcl
Copy link
Collaborator

zackcl commented Nov 13, 2023

Another (minor) issue with the UI is that when the "Archived" status is selected from the dropdown, a checkbox appears which should enable and disable the 'SAVE' button. However, once the 'SAVE' button is enabled, disabling the checkbox does not affect the button. This should be fixed.

save.button.not.disabled.mov

@zackcl zackcl moved this from In Progress to Todo in UpGrade Project Nov 13, 2023
@zackcl zackcl moved this from Todo to Code Review in UpGrade Project Nov 16, 2023
@ppratikcr7 ppratikcr7 linked a pull request Nov 16, 2023 that will close this issue
@ppratikcr7
Copy link
Collaborator

@zackcl Can you please review the fix in this PR.

@danoswaltCL danoswaltCL moved this from Code Review to QA in UpGrade Project Nov 16, 2023
@zackcl
Copy link
Collaborator

zackcl commented Nov 20, 2023

QA: Passed

@zackcl zackcl moved this from QA to Done in UpGrade Project Nov 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment