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 "training" designation to workflows that should not keep projects active #4227

Open
lcjohnso opened this issue Jul 18, 2023 · 1 comment

Comments

@lcjohnso
Copy link
Member

Problem

Projects will remain in active state (as opposed to paused state) even if the only workflow with unretired subjects is a training workflow.

Solution

Add a config flag or other designation to workflows that are solely used for training and therefore whose status of having unretired subjects should not keep the project in active state.

Overall Desired Behavior of Training Workflows:

  1. Training workflow is always selectable from the project landing page.
  2. Training workflow is not counted toward project stats (subject count, retirement count / fraction, etc; similar to case of defining subject set in training_set_ids key).
  3. Subjects linked to training workflow never retire (note: possible via never_retire retirement strategy).

Additional Info / Context

Explanation why current training set config is insufficient:

Currently, a subject set can be identified as a training subject set (via workflow.configuration training_set_ids key). That configuration will cause subjects in those training sets to be excluded from workflow completeness stats. This is useful for case where workflow has both training and non-training subjects linked. However, in the case of a training-only workflow (only training subject sets are linked), this would lead to the workflow looking complete (i.e., no unretired non-training subjects). This state would lead to the workflow button getting dropped or deactivated on the project landing page -- not a desired behavior for the case of training workflows.

Therefore, it is preferred that the training_set_ids config not be used for training-only workflows and instead make project active/inactive state decision and stats/completeness exclusions based on workflow-level property.

@zwolf
Copy link
Member

zwolf commented Jul 20, 2023

Need to add a list of workflow IDs to the project configuration that correspond with the "intro/fake/do-not-count-me-for-project-completeness" workflow. Then, here:

https://github.com/zooniverse/panoptes/blob/master/app/workers/calculate_project_completeness_worker.rb#L81-L84

In the paused/active question, include a check to see if the ID of the workflow that would keep the project paused is included in that configuration object. If so, ignore it and pause the workflow anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants