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

[ENG-3836] Investigate waffle flags #9950

Conversation

Johnetordoff
Copy link
Contributor

@Johnetordoff Johnetordoff commented Jun 9, 2022

Purpose

This removes the historical waffle flag migrations and creates a more dependable post migration signal to set waffle flags. It also gathers all the current flag knowledge into one features.yaml document.

Changes

  • adds yaml with default attributes for waffle flags
  • modifies manage_waffle management command to work better as a signal
  • add post-migrate signal for waffle flags
  • remove waffle flag creation/deletion from migration stream
  • add features.yaml with accurate flag info and notes

QA Notes

Please make verification statements inspired by your code and what your code touches.

  • Verify
  • Verify

What are the areas of risk?

Any concerns/considerations/questions that development raised?

Documentation

Side Effects

Ticket

https://openscience.atlassian.net/browse/ENG-3836

Copy link
Contributor

@jwalz jwalz left a comment

Choose a reason for hiding this comment

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

We'll do a teeny tiny PR for just the post_migrate_signal stuff and then rebase this, but generally looks good.

osf/apps.py Outdated Show resolved Hide resolved
@Johnetordoff Johnetordoff marked this pull request as ready for review June 18, 2022 20:46
@Johnetordoff Johnetordoff force-pushed the investigate-waffle-flags branch 2 times, most recently from 06d4880 to 3164f6f Compare June 18, 2022 21:44
@Johnetordoff Johnetordoff force-pushed the investigate-waffle-flags branch from 3164f6f to d091e91 Compare June 18, 2022 21:53
@jwalz jwalz changed the base branch from develop to feature/django_upgrade June 27, 2022 18:43
Copy link
Contributor

@jwalz jwalz left a comment

Choose a reason for hiding this comment

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

Fix to align with previous work to remove emit_post_migrate_signal

…OpenScience/osf.io into investigate-waffle-flags

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  Add better logic for routing Dataverse files and their stupid duplicate (CenterForOpenScience#9963)
  [ENG-3872] Fix dataverse 502s and pass version info to FE (CenterForOpenScience#9959)
  Fix File `show_as_unviewed` behavior (CenterForOpenScience#9960)

# Conflicts:
#	osf/apps.py
#	osf/migrations/0137_transfer_preprint_service_permissions.py
#	osf/migrations/__init__.py
Copy link
Contributor

@jwalz jwalz left a comment

Choose a reason for hiding this comment

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

A few final nits that I just thought of

Flag.objects.get_or_create(name=flag['name'], defaults=flag)
for switch in features['switches']:
switch.pop('flag_name')
Switch.objects.get_or_create(name=switch['name'], defaults=switch)

if delete_waffle:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: if delete_waffle, we can jut start by deleting everything and then create the ones in the file.

for switch in add_switches:
Switch.objects.get_or_create(name=switch, defaults={'active': False})
logger.info('Adding switch: {}'.format(switch))
def manage_waffle(delete_waffle=False):
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: wrap with transaction.atomic, please


file_flags = list(flags.values())
current_flags = Flag.objects.values_list('name', flat=True)
Flag = apps.get_model('waffle.Flag')
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Add note that import is occurring inline to enable use as post_migrate_signal

osf/features.py Outdated
'ENFORCE_CSRF': 'enforce_csrf',
'ENABLE_RAW_METRICS': 'enable_raw_metrics',
}
with open('osf/features.yaml', 'r') as stream:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Make the file-path a Module-level constant, something like
WAFFLE_VALUES_YAML = 'osf/features.yaml

Then this can be imported in the management command and elsewhere instead of needing to know the path.

Flag.objects.get_or_create(name=flag['name'], defaults=flag)
for switch in features['switches']:
switch.pop('flag_name')
Switch.objects.get_or_create(name=switch['name'], defaults=switch)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jwalz I want to draw your attention to fact that I'm changing this to update_or_create I think that's probably the assumed behavior, not much point in just getting the flag or switch if the config changes.

@Johnetordoff Johnetordoff force-pushed the investigate-waffle-flags branch from 774e9a1 to 07fb352 Compare June 29, 2022 14:38
…logic and make config path a setting, change get_or_create to update_or_create
@Johnetordoff Johnetordoff force-pushed the investigate-waffle-flags branch from 07fb352 to 1a78278 Compare June 29, 2022 17:48
@jwalz jwalz merged commit b2f6e94 into CenterForOpenScience:feature/django_upgrade Jul 1, 2022
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 3, 2022
…OpenScience/osf.io into upguard-indexes

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 3, 2022
…OpenScience/osf.io into signal-storage-region

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 3, 2022
…OpenScience/osf.io into signals-citation-styles

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 5, 2022
…OpenScience/osf.io into signal-create-cache

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 5, 2022
…OpenScience/osf.io into signal-deny-list

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 5, 2022
…OpenScience/osf.io into load-lincenses

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 8, 2022
…OpenScience/osf.io into signal-deny-list

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)

# Conflicts:
#	osf/apps.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/__init__.py
cslzchen pushed a commit to cslzchen/osf.io that referenced this pull request Jul 27, 2022
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values)
Co-authored-by: John Tordoff <>
cslzchen pushed a commit that referenced this pull request Jul 27, 2022
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values)
Co-authored-by: John Tordoff <>
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 27, 2022
…OpenScience/osf.io into upguard-indexes

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/migrations/0037_ensure_licenses.py
#	osf/migrations/0038_ensure_schemas.py
#	osf/migrations/0074_parse_citation_styles.py
#	osf/migrations/0077_ensure_schemas.py
#	osf/migrations/0078_ensure_schemas.py
#	osf/migrations/0080_ensure_schemas.py
#	osf/migrations/0083_add_ember_waffle_flags.py
#	osf/migrations/0095_add_url_to_licenses.py
#	osf/migrations/0095_ensure_licenses.py
#	osf/migrations/0096_ensure_schemas.py
#	osf/migrations/0099_add_default_storage_region.py
#	osf/migrations/0107_add_dependent_styles.py
#	osf/migrations/0112_ensure_schemas.py
#	osf/migrations/0121_remove_support_page_waffle_flag.py
#	osf/migrations/0121_remove_waffle_flags.py
#	osf/migrations/0135_user_settings_waffles.py
#	osf/migrations/0136_add_ember_auth_register_waffle_flag.py
#	osf/migrations/0136_preprint_node_divorce.py
#	osf/migrations/0137_transfer_preprint_service_permissions.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/0142_change_registration_schemas.py
#	osf/migrations/0142_remove_forks_flag.py
#	osf/migrations/0142_remove_waffle_analytics_flags.py
#	osf/migrations/0144_add_prereg_winddown_switches.py
#	osf/migrations/0147_blacklistedemaildomain.py
#	osf/migrations/0149_add_datacite_doi_switch.py
#	osf/migrations/0152_ensure_schemas.py
#	osf/migrations/0154_remove_ember_project_registrations_flag.py
#	osf/migrations/0156_create_cache_table.py
#	osf/migrations/0157_add_storage_usage_flag.py
#	osf/migrations/0162_post_migrate.py
#	osf/migrations/0167_auto_20190506_1556.py
#	osf/migrations/0170_ensure_schemas.py
#	osf/migrations/0172_ensure_schemas.py
#	osf/migrations/0173_ensure_schemas.py
#	osf/migrations/0174_add_ab_testing_home_page_version_b_flag.py
#	osf/migrations/0191_migrate_schemas_to_schemablocks.py
#	osf/migrations/0195_add_enable_chronos_waffle_flag.py
#	osf/migrations/0196_update_schemas.py
#	osf/migrations/0197_add_ab_testing_home_page_hero_text_version_b_flag.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/0201_add_egap_flag.py
#	osf/migrations/0204_ensure_schemas.py
#	osf/migrations/0207_ensure_schemas.py
#	osf/migrations/0207_update_schemas2.py
#	osf/migrations/0208_update_EGAP_schema.py
#	osf/migrations/0221_add_schemas.py
#	osf/migrations/0227_add_secondary_data.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 27, 2022
…OpenScience/osf.io into upguard-indexes

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/migrations/0037_ensure_licenses.py
#	osf/migrations/0038_ensure_schemas.py
#	osf/migrations/0074_parse_citation_styles.py
#	osf/migrations/0077_ensure_schemas.py
#	osf/migrations/0078_ensure_schemas.py
#	osf/migrations/0080_ensure_schemas.py
#	osf/migrations/0083_add_ember_waffle_flags.py
#	osf/migrations/0095_add_url_to_licenses.py
#	osf/migrations/0095_ensure_licenses.py
#	osf/migrations/0096_ensure_schemas.py
#	osf/migrations/0099_add_default_storage_region.py
#	osf/migrations/0107_add_dependent_styles.py
#	osf/migrations/0112_ensure_schemas.py
#	osf/migrations/0121_remove_support_page_waffle_flag.py
#	osf/migrations/0121_remove_waffle_flags.py
#	osf/migrations/0135_user_settings_waffles.py
#	osf/migrations/0136_add_ember_auth_register_waffle_flag.py
#	osf/migrations/0136_preprint_node_divorce.py
#	osf/migrations/0137_transfer_preprint_service_permissions.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/0142_change_registration_schemas.py
#	osf/migrations/0142_remove_forks_flag.py
#	osf/migrations/0142_remove_waffle_analytics_flags.py
#	osf/migrations/0144_add_prereg_winddown_switches.py
#	osf/migrations/0147_blacklistedemaildomain.py
#	osf/migrations/0149_add_datacite_doi_switch.py
#	osf/migrations/0152_ensure_schemas.py
#	osf/migrations/0154_remove_ember_project_registrations_flag.py
#	osf/migrations/0156_create_cache_table.py
#	osf/migrations/0157_add_storage_usage_flag.py
#	osf/migrations/0162_post_migrate.py
#	osf/migrations/0167_auto_20190506_1556.py
#	osf/migrations/0170_ensure_schemas.py
#	osf/migrations/0172_ensure_schemas.py
#	osf/migrations/0173_ensure_schemas.py
#	osf/migrations/0174_add_ab_testing_home_page_version_b_flag.py
#	osf/migrations/0191_migrate_schemas_to_schemablocks.py
#	osf/migrations/0195_add_enable_chronos_waffle_flag.py
#	osf/migrations/0196_update_schemas.py
#	osf/migrations/0197_add_ab_testing_home_page_hero_text_version_b_flag.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/0201_add_egap_flag.py
#	osf/migrations/0204_ensure_schemas.py
#	osf/migrations/0207_ensure_schemas.py
#	osf/migrations/0207_update_schemas2.py
#	osf/migrations/0208_update_EGAP_schema.py
#	osf/migrations/0221_add_schemas.py
#	osf/migrations/0227_add_secondary_data.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 27, 2022
…OpenScience/osf.io into upguard-indexes

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/migrations/0037_ensure_licenses.py
#	osf/migrations/0038_ensure_schemas.py
#	osf/migrations/0074_parse_citation_styles.py
#	osf/migrations/0077_ensure_schemas.py
#	osf/migrations/0078_ensure_schemas.py
#	osf/migrations/0080_ensure_schemas.py
#	osf/migrations/0083_add_ember_waffle_flags.py
#	osf/migrations/0095_add_url_to_licenses.py
#	osf/migrations/0095_ensure_licenses.py
#	osf/migrations/0096_ensure_schemas.py
#	osf/migrations/0099_add_default_storage_region.py
#	osf/migrations/0107_add_dependent_styles.py
#	osf/migrations/0112_ensure_schemas.py
#	osf/migrations/0121_remove_support_page_waffle_flag.py
#	osf/migrations/0121_remove_waffle_flags.py
#	osf/migrations/0135_user_settings_waffles.py
#	osf/migrations/0136_add_ember_auth_register_waffle_flag.py
#	osf/migrations/0136_preprint_node_divorce.py
#	osf/migrations/0137_transfer_preprint_service_permissions.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/0142_change_registration_schemas.py
#	osf/migrations/0142_remove_forks_flag.py
#	osf/migrations/0142_remove_waffle_analytics_flags.py
#	osf/migrations/0144_add_prereg_winddown_switches.py
#	osf/migrations/0147_blacklistedemaildomain.py
#	osf/migrations/0149_add_datacite_doi_switch.py
#	osf/migrations/0152_ensure_schemas.py
#	osf/migrations/0154_remove_ember_project_registrations_flag.py
#	osf/migrations/0156_create_cache_table.py
#	osf/migrations/0157_add_storage_usage_flag.py
#	osf/migrations/0162_post_migrate.py
#	osf/migrations/0167_auto_20190506_1556.py
#	osf/migrations/0170_ensure_schemas.py
#	osf/migrations/0172_ensure_schemas.py
#	osf/migrations/0173_ensure_schemas.py
#	osf/migrations/0174_add_ab_testing_home_page_version_b_flag.py
#	osf/migrations/0191_migrate_schemas_to_schemablocks.py
#	osf/migrations/0195_add_enable_chronos_waffle_flag.py
#	osf/migrations/0196_update_schemas.py
#	osf/migrations/0197_add_ab_testing_home_page_hero_text_version_b_flag.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/0201_add_egap_flag.py
#	osf/migrations/0204_ensure_schemas.py
#	osf/migrations/0207_ensure_schemas.py
#	osf/migrations/0207_update_schemas2.py
#	osf/migrations/0208_update_EGAP_schema.py
#	osf/migrations/0221_add_schemas.py
#	osf/migrations/0227_add_secondary_data.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 27, 2022
…OpenScience/osf.io into signal-create-providers-2

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 28, 2022
…OpenScience/osf.io into upgrade-import-paths

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 28, 2022
…OpenScience/osf.io into upgrade-markdown

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Jul 28, 2022
…OpenScience/osf.io into upgrade-password-reset

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 3, 2022
…OpenScience/osf.io into django-3-with-django-include

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3862] Move post-migrate signal out of migration stream for default providers (CenterForOpenScience#9971)
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/apps.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/__init__.py
#	osf/models/provider.py
#	osf_tests/test_registration_bulk_upload_parser.py
#	website/settings/defaults.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 3, 2022
…OpenScience/osf.io into django-3-with-django-include

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3862] Move post-migrate signal out of migration stream for default providers (CenterForOpenScience#9971)
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/apps.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/__init__.py
#	osf/models/provider.py
#	osf_tests/test_registration_bulk_upload_parser.py
#	website/settings/defaults.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 3, 2022
…OpenScience/osf.io into django-3-with-django-include

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3862] Move post-migrate signal out of migration stream for default providers (CenterForOpenScience#9971)
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	api/base/settings/defaults.py
#	osf/apps.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/__init__.py
#	osf/models/provider.py
#	osf_tests/test_registration_bulk_upload_parser.py
#	website/settings/defaults.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 4, 2022
…OpenScience/osf.io into remove-django-debug-toolbar

* 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io:
  [ENG-3862] Move post-migrate signal out of migration stream for default providers (CenterForOpenScience#9971)
  [ENG-3836] Follow-up: Add PyYAML to Requirements (CenterForOpenScience#9993)
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
  [ENG-3898][ENG-3899]Model support for OutcomeArtifact update and delete (CenterForOpenScience#9989)
  Make OutcomeArtifact.identifier nullable (CenterForOpenScience#9986)
  [ENG-3894] Outcome models (CenterForOpenScience#9975)
  revert color picker to working version (CenterForOpenScience#9968)

# Conflicts:
#	osf/apps.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 14, 2022
…f.io into django-3-upgrade

* 'upgrade-markdown' of https://github.com/johnetordoff/osf.io:
  upgrade markdown
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)
Johnetordoff pushed a commit to Johnetordoff/osf.io that referenced this pull request Aug 26, 2022
…ff/osf.io into django-3-onmibus

* 'upgrade-cors-django-3' of https://github.com/johnetordoff/osf.io:
  upgrade CORS for Django 3
  [ENG-3867] Create Storage Regions on post migration signal (CenterForOpenScience#9965)
  [ENG-3866] Move citation style population out of migration stream (CenterForOpenScience#9966)
  [ENG-3868] Move blocked email domains to post-migrate signal (CenterForOpenScience#9958)
  [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (CenterForOpenScience#9974)
  [ENG-3865] Create Licenses using post-migrate signal (CenterForOpenScience#9961)
  [ENG-3836] Investigate waffle flags (CenterForOpenScience#9950)
  move createcachetable to post migrate signal (CenterForOpenScience#9944)
  remove post-migrate signals from migration stream (CenterForOpenScience#9964)

# Conflicts:
#	admin/base/settings/defaults.py
#	api/base/settings/defaults.py
#	osf/apps.py
#	osf/migrations/0037_ensure_licenses.py
#	osf/migrations/0038_ensure_schemas.py
#	osf/migrations/0074_parse_citation_styles.py
#	osf/migrations/0077_ensure_schemas.py
#	osf/migrations/0078_ensure_schemas.py
#	osf/migrations/0080_ensure_schemas.py
#	osf/migrations/0083_add_ember_waffle_flags.py
#	osf/migrations/0095_add_url_to_licenses.py
#	osf/migrations/0095_ensure_licenses.py
#	osf/migrations/0096_ensure_schemas.py
#	osf/migrations/0099_add_default_storage_region.py
#	osf/migrations/0107_add_dependent_styles.py
#	osf/migrations/0112_ensure_schemas.py
#	osf/migrations/0121_remove_support_page_waffle_flag.py
#	osf/migrations/0121_remove_waffle_flags.py
#	osf/migrations/0135_user_settings_waffles.py
#	osf/migrations/0136_add_ember_auth_register_waffle_flag.py
#	osf/migrations/0136_preprint_node_divorce.py
#	osf/migrations/0137_transfer_preprint_service_permissions.py
#	osf/migrations/0138_ensure_subjects_and_providers.py
#	osf/migrations/0142_change_registration_schemas.py
#	osf/migrations/0142_remove_forks_flag.py
#	osf/migrations/0142_remove_waffle_analytics_flags.py
#	osf/migrations/0144_add_prereg_winddown_switches.py
#	osf/migrations/0147_blacklistedemaildomain.py
#	osf/migrations/0149_add_datacite_doi_switch.py
#	osf/migrations/0152_ensure_schemas.py
#	osf/migrations/0154_remove_ember_project_registrations_flag.py
#	osf/migrations/0156_create_cache_table.py
#	osf/migrations/0157_add_storage_usage_flag.py
#	osf/migrations/0162_post_migrate.py
#	osf/migrations/0167_auto_20190506_1556.py
#	osf/migrations/0170_ensure_schemas.py
#	osf/migrations/0172_ensure_schemas.py
#	osf/migrations/0173_ensure_schemas.py
#	osf/migrations/0174_add_ab_testing_home_page_version_b_flag.py
#	osf/migrations/0191_migrate_schemas_to_schemablocks.py
#	osf/migrations/0195_add_enable_chronos_waffle_flag.py
#	osf/migrations/0196_update_schemas.py
#	osf/migrations/0197_add_ab_testing_home_page_hero_text_version_b_flag.py
#	osf/migrations/0199_draft_node_permissions.py
#	osf/migrations/0201_add_egap_flag.py
#	osf/migrations/0204_ensure_schemas.py
#	osf/migrations/0207_ensure_schemas.py
#	osf/migrations/0207_update_schemas2.py
#	osf/migrations/0208_update_EGAP_schema.py
#	osf/migrations/0221_add_schemas.py
#	osf/migrations/0227_add_secondary_data.py
#	osf/migrations/__init__.py
#	osf_tests/test_registration_bulk_upload_parser.py
#	requirements.txt
cslzchen pushed a commit that referenced this pull request Sep 1, 2022
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values)
Co-authored-by: John Tordoff <>
cslzchen pushed a commit that referenced this pull request Sep 22, 2022
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values)
Co-authored-by: John Tordoff <>
cslzchen pushed a commit that referenced this pull request Oct 20, 2022
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values)
Co-authored-by: John Tordoff <>
mfraezz pushed a commit that referenced this pull request Oct 21, 2022
PRs:
* remove post-migrate signals from migration stream (#9964)
* move createcachetable to post migrate signal (#9944)
* [ENG-3836] Investigate waffle flags (#9950)
* [ENG-3865] Create Licenses using post-migrate signal (#9961)
* [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (#9974)
* [ENG-3868] Move blocked email domains to post-migrate signal (#9958)
* [ENG-3866] Move citation style population out of migration stream (#9966)
* [ENG-3867] Create Storage Regions on post migration signal (#9965)
* [ENG-3836] Follow-up: Add PyYAML to Requirements (#9993)
* [ENG-3862] Move post-migrate signal out of migration stream for default providers (#9971)
* Remove unused password change view/route (#9985)
* Update import paths and fix deprecated modules for Django 3 (#9983)
* Update postgres backend and remove failover router for Django 3 (#10011)
* Move file metadata population to unit test fixtures (#9994)
* [Django Upgrade] Fix one sub-query slicing issue (#10012)
* [Django Upgrade] Upgrade django-elasticsearch-metrics (#10021)
* [Django Upgrade] Replace M2M direct assignment  (#10010)
* [Django Upgrade] Upgrade markdown and mdx_del_ins (#9984)
* [Django Upgrade] Move schema activeness/visibility update to pytest fixtures (#10029)

Commits:
* Remove osf migrations
* Remove addon migrations
* Init migrations - osf
* Init migrations - addons
* Fix migration for NotableEmailDomain
* Fix circular import with built-in admin migrations
* Add a RunSQL migration to update indexes
* Upgrade django to 3.2.15 (and related dependencies)
* Make fields defined on typedmodels subclasses nullable
* Add required on_delete=CASCADE (default) to FKs missing it
* Fix django CORS whitelist settings due to origin definition update
* Add/Enable missing templates and middlewares in api settings
* Comment out admin permissions that clash with built-in "view" ones
* Add migrations for django upgrade base fixes
* Fix system check warnings for django admin
* Fix django cache table creation
* Enable django.contrib.sessions.middleware.SessionMiddleware
* Use default truthy and falsy values from upgraded DRF 3.13.1
* Use JsonField from django.db.models and django.forms
* Fix session cookie encoding/decoding by using ensure_str()
* Use prefetch instead of Django include
* Fix CORS for ORIGINS_WHITELIST
* Rename auto generated migration for django3 upgrade fixes
* Remove QuickFile check from get_serializer_class for FileDetail view
* Add registration_schema to DraftRegistrationDetailSerializer
* Add id to DraftRegistrationDetailSerializer
* Fix middleware order and replace deprecated staticfiles with static
* Fix and rework from_db_value & to_python for EncryptedJSONField
* Fix admin login failure for django upgrade
* Wrap generated keen_read_key with ensure_str
* Clear cached storage region property when creating a new version
* Do not notify in set_password() when creating a test user
* Fix RegistrationFactory for django3 upgrade
* Remove unused update_version_metadata in file node and update tests
* Remove tests for django-include
* Remove EGAP backfill command and tests
* Set DEFAULT_AUTO_FIELD to django.db.models.AutoField (default value)
* Replace deprecated NullBooleanField + add migrations
* Replace deprecated url() with re_path() for api
* Replace deprecated url() with re_path() for admin
* Fix missing or insufficient permission test for admin preprints view
* Fix admin user view tests by using HTTP response headers object
* Fix duplicate view_node permissions in node and instn view tests
* Rework refresh_from_db() to reload GFKs
* Fix visible contributor query
* Fix handle_archive_fail and its tests
* Use a different schema to fix tests failure due to django3 upgrade
* Update URLs for URL Validation tests with Django 3
* Improve to_internal_value() in NodeRelationshipField
* Add alt fixtures to prevent both siblings & parent/child conflicts
* Fix linked_by_nodes in node related counts test
* Fix bugged NullBooleanField -> BooleanField migration
* Re-make migrations for django3 upgrade and merge them into one

Co-authored-by: Longze Chen <[email protected]>
Co-authored-by: John Tordoff <[email protected]>
Co-authored-by: Jon Walz <[email protected]>
@@ -123,6 +126,13 @@ def update_permission_groups(sender, verbosity=0, **kwargs):
update_provider_auth_groups(verbosity)


def update_waffle_flags(sender, verbosity=0, **kwargs):
if getattr(sender, 'label', None) == 'osf':
if 'pytest' not in sys.modules:
Copy link
Collaborator

@cslzchen cslzchen Oct 27, 2022

Choose a reason for hiding this comment

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

@Johnetordoff what's the check for local environment only? I think the fix is to avoid both non-local and CI.

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.

3 participants