[ENG-3836] Investigate waffle flags#9950
Conversation
jwalz
left a comment
There was a problem hiding this comment.
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
jwalz
left a comment
There was a problem hiding this comment.
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
jwalz
left a comment
There was a problem hiding this comment.
A few final nits that I just thought of
| switch.pop('flag_name') | ||
| Switch.objects.get_or_create(name=switch['name'], defaults=switch) | ||
|
|
||
| if delete_waffle: |
There was a problem hiding this comment.
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.
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.
nit: Add note that import is occurring inline to enable use as post_migrate_signal
| '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.
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.
@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 <cslzchen@gmail.com> Co-authored-by: John Tordoff <johnetordoff@gmail.com> Co-authored-by: Jon Walz <jonmwalz@gmail.com>
|
|
||
| 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.
@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.yamldocument.Changes
manage_wafflemanagement command to work better as a signalfeatures.yamlwith 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