-
Notifications
You must be signed in to change notification settings - Fork 332
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
[ENG-3836] Investigate waffle flags #9950
Conversation
There was a problem hiding this 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.
06d4880
to
3164f6f
Compare
3164f6f
to
d091e91
Compare
There was a problem hiding this 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
There was a problem hiding this 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: |
There was a problem hiding this comment.
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): |
There was a problem hiding this comment.
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') |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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.
774e9a1
to
07fb352
Compare
…logic and make config path a setting, change get_or_create to update_or_create
07fb352
to
1a78278
Compare
…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
…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
…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
…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
…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
…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
…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
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values) Co-authored-by: John Tordoff <>
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values) Co-authored-by: John Tordoff <>
…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
…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
…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
…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
…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)
…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)
…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)
…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
…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
…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
…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
…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)
…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
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values) Co-authored-by: John Tordoff <>
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values) Co-authored-by: John Tordoff <>
* Create Waffle Flags and Switches as post_migrate_signal (with configurable values) Co-authored-by: John Tordoff <>
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: |
There was a problem hiding this comment.
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.
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
manage_waffle
management command to work better as a signalfeatures.yaml
with accurate flag info and notesQA Notes
Please make verification statements inspired by your code and what your code touches.
What are the areas of risk?
Any concerns/considerations/questions that development raised?
Documentation
Side Effects
Ticket
https://openscience.atlassian.net/browse/ENG-3836