diff --git a/README.md b/README.md index f02d67b271a..26534990a28 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Build Status](https://circleci.com/gh/mozilla/treeherder.svg?branch=master&style=shield)](https://app.circleci.com/pipelines/github/mozilla/treeherder) ![Node dependencies Status](https://shields.io/librariesio/github/mozilla/treeherder) [![Documentation Status](https://readthedocs.org/projects/treeherder/badge/?version=latest)](https://treeherder.readthedocs.io/?badge=latest) -[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://docs.astral.sh/ruff/formatter/) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) ## Description diff --git a/tests/perf/auto_perf_sheriffing/telemetry_alerting/test_alert_manager.py b/tests/perf/auto_perf_sheriffing/telemetry_alerting/test_alert_manager.py index 9dd4fedf431..d385dc1b7c4 100644 --- a/tests/perf/auto_perf_sheriffing/telemetry_alerting/test_alert_manager.py +++ b/tests/perf/auto_perf_sheriffing/telemetry_alerting/test_alert_manager.py @@ -634,9 +634,9 @@ def modify_spy(alerts_arg, commented_bugs, new_bugs): # Verify modify_alert_bugs was called (could be multiple times due to house_keeping) # Find the call with non-empty alerts non_empty_calls = [call for call in modify_calls if len(call) > 0] - assert len(non_empty_calls) >= 1, ( - "modify_alert_bugs should be called with at least one non-empty alert list" - ) + assert ( + len(non_empty_calls) >= 1 + ), "modify_alert_bugs should be called with at least one non-empty alert list" # Check the first non-empty call (the main manage_alerts call) passed_alerts = non_empty_calls[0] diff --git a/treeherder/changelog/migrations/0001_initial.py b/treeherder/changelog/migrations/0001_initial.py index 7ab4ee76ef5..e8d5c1eb45a 100644 --- a/treeherder/changelog/migrations/0001_initial.py +++ b/treeherder/changelog/migrations/0001_initial.py @@ -11,41 +11,41 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name='Changelog', + name="Changelog", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('remote_id', models.CharField(max_length=255)), - ('date', models.DateTimeField(db_index=True)), - ('author', models.CharField(max_length=100)), - ('owner', models.CharField(max_length=100)), - ('project', models.CharField(max_length=100)), - ('project_url', models.CharField(max_length=360)), - ('message', models.CharField(max_length=360)), - ('description', models.CharField(max_length=360)), - ('type', models.CharField(max_length=100)), - ('url', models.CharField(max_length=360)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("remote_id", models.CharField(max_length=255)), + ("date", models.DateTimeField(db_index=True)), + ("author", models.CharField(max_length=100)), + ("owner", models.CharField(max_length=100)), + ("project", models.CharField(max_length=100)), + ("project_url", models.CharField(max_length=360)), + ("message", models.CharField(max_length=360)), + ("description", models.CharField(max_length=360)), + ("type", models.CharField(max_length=100)), + ("url", models.CharField(max_length=360)), ], options={ - 'db_table': 'changelog_entry', - 'unique_together': {('id', 'remote_id', 'type')}, + "db_table": "changelog_entry", + "unique_together": {("id", "remote_id", "type")}, }, ), migrations.CreateModel( - name='ChangelogFile', + name="ChangelogFile", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.SlugField(max_length=255)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.SlugField(max_length=255)), ( - 'changelog', + "changelog", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='files', - to='changelog.Changelog', + related_name="files", + to="changelog.Changelog", ), ), ], options={ - 'db_table': 'changelog_file', + "db_table": "changelog_file", }, ), ] diff --git a/treeherder/config/settings.py b/treeherder/config/settings.py index 6be4f894649..fe27e40510d 100644 --- a/treeherder/config/settings.py +++ b/treeherder/config/settings.py @@ -370,9 +370,9 @@ # Periodically publish runtime statistics on statsd (in minutes) CELERY_STATS_PUBLICATION_DELAY = 20 -assert 0 < CELERY_STATS_PUBLICATION_DELAY < 60 and 60 % 10 == 0, ( - "Celery task must be a valid cron delay in minutes" -) +assert ( + 0 < CELERY_STATS_PUBLICATION_DELAY < 60 and 60 % 10 == 0 +), "Celery task must be a valid cron delay in minutes" CELERY_BEAT_SCHEDULE = { # this is just a failsafe in case the Pulse ingestion misses something diff --git a/treeherder/etl/classification_loader.py b/treeherder/etl/classification_loader.py index eb756dd8640..10144cae567 100644 --- a/treeherder/etl/classification_loader.py +++ b/treeherder/etl/classification_loader.py @@ -32,9 +32,9 @@ def process(self, pulse_job, root_url): task_id = pulse_job["status"]["taskId"] task_definition = get_task_definition(root_url, task_id) - assert "routes" in task_definition and len(task_definition["routes"]) > 0, ( - "A route containing the push project and revision is needed to save the mozci classification" - ) + assert ( + "routes" in task_definition and len(task_definition["routes"]) > 0 + ), "A route containing the push project and revision is needed to save the mozci classification" # Retrieving a Push object thanks to the project/revision parsed from the task first route try: push = self.get_push(task_definition["routes"][0]) @@ -53,9 +53,9 @@ def process(self, pulse_job, root_url): # Saving the mozci classification in the database results = dict(MozciClassification.CLASSIFICATION_RESULT) classification = classification_json["push"]["classification"] - assert classification in results.keys(), ( - "Classification result should be a value in BAD, GOOD, UNKNOWN" - ) + assert ( + classification in results.keys() + ), "Classification result should be a value in BAD, GOOD, UNKNOWN" logger.info( "Storing mozci classification calculated as %s for push %s on repository %s", diff --git a/treeherder/model/migrations/0001_squashed_0022_modify_bugscache_and_bugjobmap.py b/treeherder/model/migrations/0001_squashed_0022_modify_bugscache_and_bugjobmap.py index 5f94b28b56d..af8e95cae58 100644 --- a/treeherder/model/migrations/0001_squashed_0022_modify_bugscache_and_bugjobmap.py +++ b/treeherder/model/migrations/0001_squashed_0022_modify_bugscache_and_bugjobmap.py @@ -15,354 +15,354 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name='RepositoryGroup', + name="RepositoryGroup", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100, unique=True)), - ('description', models.TextField(blank=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=100, unique=True)), + ("description", models.TextField(blank=True)), ], options={ - 'db_table': 'repository_group', + "db_table": "repository_group", }, ), migrations.CreateModel( - name='Repository', + name="Repository", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(db_index=True, max_length=50, unique=True)), - ('dvcs_type', models.CharField(db_index=True, max_length=25)), - ('url', models.CharField(max_length=255)), - ('branch', models.CharField(db_index=True, max_length=50, null=True)), - ('codebase', models.CharField(blank=True, db_index=True, max_length=50)), - ('description', models.TextField(blank=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(db_index=True, max_length=50, unique=True)), + ("dvcs_type", models.CharField(db_index=True, max_length=25)), + ("url", models.CharField(max_length=255)), + ("branch", models.CharField(db_index=True, max_length=50, null=True)), + ("codebase", models.CharField(blank=True, db_index=True, max_length=50)), + ("description", models.TextField(blank=True)), ( - 'active_status', - models.CharField(blank=True, db_index=True, default='active', max_length=7), + "active_status", + models.CharField(blank=True, db_index=True, default="active", max_length=7), ), - ('performance_alerts_enabled', models.BooleanField(default=False)), + ("performance_alerts_enabled", models.BooleanField(default=False)), ( - 'repository_group', + "repository_group", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.RepositoryGroup' + on_delete=django.db.models.deletion.CASCADE, to="model.RepositoryGroup" ), ), - ('expire_performance_data', models.BooleanField(default=True)), - ('is_try_repo', models.BooleanField(default=False)), + ("expire_performance_data", models.BooleanField(default=True)), + ("is_try_repo", models.BooleanField(default=False)), ], options={ - 'db_table': 'repository', - 'verbose_name_plural': 'repositories', + "db_table": "repository", + "verbose_name_plural": "repositories", }, ), migrations.CreateModel( - name='Push', + name="Push", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('revision', models.CharField(max_length=40)), - ('author', models.CharField(max_length=150)), - ('time', models.DateTimeField(db_index=True)), + ("revision", models.CharField(max_length=40)), + ("author", models.CharField(max_length=150)), + ("time", models.DateTimeField(db_index=True)), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ], options={ - 'db_table': 'push', + "db_table": "push", }, ), migrations.CreateModel( - name='Commit', + name="Commit", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('revision', models.CharField(max_length=40)), - ('author', models.CharField(max_length=150)), - ('comments', models.TextField()), + ("revision", models.CharField(max_length=40)), + ("author", models.CharField(max_length=150)), + ("comments", models.TextField()), ( - 'push', + "push", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='commits', - to='model.Push', + related_name="commits", + to="model.Push", ), ), ], options={ - 'db_table': 'commit', + "db_table": "commit", }, ), migrations.CreateModel( - name='Bugscache', + name="Bugscache", fields=[ - ('id', models.PositiveIntegerField(primary_key=True, serialize=False)), - ('status', models.CharField(db_index=True, max_length=64)), - ('resolution', models.CharField(blank=True, db_index=True, max_length=64)), - ('summary', models.CharField(max_length=255)), - ('crash_signature', models.TextField(blank=True)), - ('keywords', models.TextField(blank=True)), - ('os', models.CharField(blank=True, max_length=64)), - ('modified', models.DateTimeField()), - ('whiteboard', models.CharField(blank=True, default='', max_length=100)), + ("id", models.PositiveIntegerField(primary_key=True, serialize=False)), + ("status", models.CharField(db_index=True, max_length=64)), + ("resolution", models.CharField(blank=True, db_index=True, max_length=64)), + ("summary", models.CharField(max_length=255)), + ("crash_signature", models.TextField(blank=True)), + ("keywords", models.TextField(blank=True)), + ("os", models.CharField(blank=True, max_length=64)), + ("modified", models.DateTimeField()), + ("whiteboard", models.CharField(blank=True, default="", max_length=100)), ], options={ - 'db_table': 'bugscache', - 'verbose_name_plural': 'bugscache', + "db_table": "bugscache", + "verbose_name_plural": "bugscache", }, ), migrations.CreateModel( - name='BuildPlatform', + name="BuildPlatform", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('os_name', models.CharField(max_length=25)), - ('platform', models.CharField(db_index=True, max_length=100)), - ('architecture', models.CharField(blank=True, db_index=True, max_length=25)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("os_name", models.CharField(max_length=25)), + ("platform", models.CharField(db_index=True, max_length=100)), + ("architecture", models.CharField(blank=True, db_index=True, max_length=25)), ], options={ - 'db_table': 'build_platform', + "db_table": "build_platform", }, ), migrations.CreateModel( - name='ClassifiedFailure', + name="ClassifiedFailure", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('bug_number', models.PositiveIntegerField(blank=True, null=True, unique=True)), - ('created', models.DateTimeField(auto_now_add=True)), - ('modified', models.DateTimeField(auto_now=True)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("bug_number", models.PositiveIntegerField(blank=True, null=True, unique=True)), + ("created", models.DateTimeField(auto_now_add=True)), + ("modified", models.DateTimeField(auto_now=True)), ], options={ - 'db_table': 'classified_failure', + "db_table": "classified_failure", }, ), migrations.CreateModel( - name='FailureClassification', + name="FailureClassification", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100, unique=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=100, unique=True)), ], options={ - 'db_table': 'failure_classification', + "db_table": "failure_classification", }, ), migrations.CreateModel( - name='JobGroup', + name="JobGroup", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('symbol', models.CharField(db_index=True, default='?', max_length=25)), - ('name', models.CharField(max_length=100)), - ('description', models.TextField(blank=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("symbol", models.CharField(db_index=True, default="?", max_length=25)), + ("name", models.CharField(max_length=100)), + ("description", models.TextField(blank=True)), ], options={ - 'db_table': 'job_group', + "db_table": "job_group", }, ), migrations.CreateModel( - name='JobType', + name="JobType", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('symbol', models.CharField(db_index=True, default='?', max_length=25)), - ('name', models.CharField(max_length=100)), - ('description', models.TextField(blank=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("symbol", models.CharField(db_index=True, default="?", max_length=25)), + ("name", models.CharField(max_length=100)), + ("description", models.TextField(blank=True)), ], options={ - 'db_table': 'job_type', + "db_table": "job_type", }, ), migrations.CreateModel( - name='Machine', + name="Machine", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100, unique=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=100, unique=True)), ], options={ - 'db_table': 'machine', + "db_table": "machine", }, ), migrations.CreateModel( - name='MachinePlatform', + name="MachinePlatform", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('os_name', models.CharField(max_length=25)), - ('platform', models.CharField(db_index=True, max_length=100)), - ('architecture', models.CharField(blank=True, db_index=True, max_length=25)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("os_name", models.CharField(max_length=25)), + ("platform", models.CharField(db_index=True, max_length=100)), + ("architecture", models.CharField(blank=True, db_index=True, max_length=25)), ], options={ - 'db_table': 'machine_platform', + "db_table": "machine_platform", }, ), migrations.CreateModel( - name='Product', + name="Product", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100, unique=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=100, unique=True)), ], options={ - 'db_table': 'product', + "db_table": "product", }, ), migrations.CreateModel( - name='ReferenceDataSignatures', + name="ReferenceDataSignatures", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' - ), - ), - ('name', models.CharField(max_length=255)), - ('signature', models.CharField(db_index=True, max_length=50)), - ('build_os_name', models.CharField(db_index=True, max_length=25)), - ('build_platform', models.CharField(db_index=True, max_length=100)), - ('build_architecture', models.CharField(db_index=True, max_length=25)), - ('machine_os_name', models.CharField(db_index=True, max_length=25)), - ('machine_platform', models.CharField(db_index=True, max_length=100)), - ('machine_architecture', models.CharField(db_index=True, max_length=25)), - ('job_group_name', models.CharField(blank=True, db_index=True, max_length=100)), - ('job_group_symbol', models.CharField(blank=True, db_index=True, max_length=25)), - ('job_type_name', models.CharField(db_index=True, max_length=100)), - ('job_type_symbol', models.CharField(blank=True, db_index=True, max_length=25)), - ( - 'option_collection_hash', + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + ("name", models.CharField(max_length=255)), + ("signature", models.CharField(db_index=True, max_length=50)), + ("build_os_name", models.CharField(db_index=True, max_length=25)), + ("build_platform", models.CharField(db_index=True, max_length=100)), + ("build_architecture", models.CharField(db_index=True, max_length=25)), + ("machine_os_name", models.CharField(db_index=True, max_length=25)), + ("machine_platform", models.CharField(db_index=True, max_length=100)), + ("machine_architecture", models.CharField(db_index=True, max_length=25)), + ("job_group_name", models.CharField(blank=True, db_index=True, max_length=100)), + ("job_group_symbol", models.CharField(blank=True, db_index=True, max_length=25)), + ("job_type_name", models.CharField(db_index=True, max_length=100)), + ("job_type_symbol", models.CharField(blank=True, db_index=True, max_length=25)), + ( + "option_collection_hash", models.CharField(blank=True, db_index=True, max_length=64), ), - ('build_system_type', models.CharField(blank=True, db_index=True, max_length=25)), - ('repository', models.CharField(db_index=True, max_length=50)), - ('first_submission_timestamp', models.IntegerField(db_index=True)), + ("build_system_type", models.CharField(blank=True, db_index=True, max_length=25)), + ("repository", models.CharField(db_index=True, max_length=50)), + ("first_submission_timestamp", models.IntegerField(db_index=True)), ], options={ - 'db_table': 'reference_data_signatures', - 'verbose_name_plural': 'reference data signatures', + "db_table": "reference_data_signatures", + "verbose_name_plural": "reference data signatures", }, ), migrations.CreateModel( - name='Job', + name="Job", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('guid', models.CharField(max_length=50, unique=True)), - ('project_specific_id', models.PositiveIntegerField(null=True)), - ('coalesced_to_guid', models.CharField(default=None, max_length=50, null=True)), - ('option_collection_hash', models.CharField(max_length=64)), - ('who', models.CharField(max_length=50)), - ('reason', models.CharField(max_length=125)), - ('result', models.CharField(max_length=25)), - ('state', models.CharField(max_length=25)), - ('submit_time', models.DateTimeField()), - ('start_time', models.DateTimeField()), - ('end_time', models.DateTimeField()), - ('last_modified', models.DateTimeField(auto_now=True, db_index=True)), - ('running_eta', models.PositiveIntegerField(default=None, null=True)), - ('tier', models.PositiveIntegerField()), - ( - 'build_platform', + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("guid", models.CharField(max_length=50, unique=True)), + ("project_specific_id", models.PositiveIntegerField(null=True)), + ("coalesced_to_guid", models.CharField(default=None, max_length=50, null=True)), + ("option_collection_hash", models.CharField(max_length=64)), + ("who", models.CharField(max_length=50)), + ("reason", models.CharField(max_length=125)), + ("result", models.CharField(max_length=25)), + ("state", models.CharField(max_length=25)), + ("submit_time", models.DateTimeField()), + ("start_time", models.DateTimeField()), + ("end_time", models.DateTimeField()), + ("last_modified", models.DateTimeField(auto_now=True, db_index=True)), + ("running_eta", models.PositiveIntegerField(default=None, null=True)), + ("tier", models.PositiveIntegerField()), + ( + "build_platform", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='jobs', - to='model.BuildPlatform', + related_name="jobs", + to="model.BuildPlatform", ), ), ( - 'failure_classification', + "failure_classification", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='jobs', - to='model.FailureClassification', + related_name="jobs", + to="model.FailureClassification", ), ), ( - 'job_type', + "job_type", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='jobs', - to='model.JobType', + related_name="jobs", + to="model.JobType", ), ), ( - 'machine', + "machine", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Machine' + on_delete=django.db.models.deletion.CASCADE, to="model.Machine" ), ), ( - 'machine_platform', + "machine_platform", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.MachinePlatform' + on_delete=django.db.models.deletion.CASCADE, to="model.MachinePlatform" ), ), ( - 'product', + "product", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Product' + on_delete=django.db.models.deletion.CASCADE, to="model.Product" ), ), ( - 'push', + "push", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='jobs', - to='model.Push', + related_name="jobs", + to="model.Push", ), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ( - 'signature', + "signature", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - to='model.ReferenceDataSignatures', + to="model.ReferenceDataSignatures", ), ), ( - 'autoclassify_status', + "autoclassify_status", models.IntegerField( choices=[ - (0, 'pending'), - (1, 'crossreferenced'), - (2, 'autoclassified'), - (3, 'skipped'), - (255, 'failed'), + (0, "pending"), + (1, "crossreferenced"), + (2, "autoclassified"), + (3, "skipped"), + (255, "failed"), ], default=0, ), ), ( - 'job_group', + "job_group", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='jobs', - to='model.JobGroup', + related_name="jobs", + to="model.JobGroup", ), ), ], options={ - 'db_table': 'job', + "db_table": "job", }, ), migrations.CreateModel( - name='BugJobMap', + name="BugJobMap", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('bug_id', models.PositiveIntegerField(db_index=True)), - ('created', models.DateTimeField(default=django.utils.timezone.now)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("bug_id", models.PositiveIntegerField(db_index=True)), + ("created", models.DateTimeField(default=django.utils.timezone.now)), ( - 'job', - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='model.Job'), + "job", + models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="model.Job"), ), ( - 'user', + "user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, @@ -371,78 +371,78 @@ class Migration(migrations.Migration): ), ], options={ - 'db_table': 'bug_job_map', + "db_table": "bug_job_map", }, ), migrations.CreateModel( - name='JobDetail', + name="JobDetail", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('title', models.CharField(max_length=70, null=True)), - ('value', models.CharField(max_length=125)), - ('url', models.URLField(max_length=512, null=True)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("title", models.CharField(max_length=70, null=True)), + ("value", models.CharField(max_length=125)), + ("url", models.URLField(max_length=512, null=True)), ( - 'job', + "job", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='job_details', - to='model.Job', + related_name="job_details", + to="model.Job", ), ), ], options={ - 'db_table': 'job_detail', + "db_table": "job_detail", }, ), migrations.CreateModel( - name='JobLog', + name="JobLog", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('name', models.CharField(max_length=50)), - ('url', models.URLField(max_length=255)), + ("name", models.CharField(max_length=50)), + ("url", models.URLField(max_length=255)), ( - 'status', + "status", models.IntegerField( - choices=[(0, 'pending'), (1, 'parsed'), (2, 'failed')], default=0 + choices=[(0, "pending"), (1, "parsed"), (2, "failed")], default=0 ), ), ( - 'job', + "job", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='job_log', - to='model.Job', + related_name="job_log", + to="model.Job", ), ), ], options={ - 'db_table': 'job_log', + "db_table": "job_log", }, ), migrations.CreateModel( - name='JobNote', + name="JobNote", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('text', models.TextField()), - ('created', models.DateTimeField(default=django.utils.timezone.now)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("text", models.TextField()), + ("created", models.DateTimeField(default=django.utils.timezone.now)), ( - 'failure_classification', + "failure_classification", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - to='model.FailureClassification', + to="model.FailureClassification", ), ), ( - 'job', - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='model.Job'), + "job", + models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="model.Job"), ), ( - 'user', + "user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, @@ -451,553 +451,553 @@ class Migration(migrations.Migration): ), ], options={ - 'db_table': 'job_note', + "db_table": "job_note", }, ), migrations.CreateModel( - name='Option', + name="Option", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100, unique=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=100, unique=True)), ], options={ - 'db_table': 'option', + "db_table": "option", }, ), migrations.CreateModel( - name='OptionCollection', + name="OptionCollection", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('option_collection_hash', models.CharField(max_length=40)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("option_collection_hash", models.CharField(max_length=40)), ( - 'option', + "option", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Option' + on_delete=django.db.models.deletion.CASCADE, to="model.Option" ), ), ], options={ - 'db_table': 'option_collection', + "db_table": "option_collection", }, ), migrations.CreateModel( - name='RunnableJob', + name="RunnableJob", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('option_collection_hash', models.CharField(max_length=64)), - ('ref_data_name', models.CharField(max_length=255)), - ('build_system_type', models.CharField(max_length=25)), - ('last_touched', models.DateTimeField(auto_now=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("option_collection_hash", models.CharField(max_length=64)), + ("ref_data_name", models.CharField(max_length=255)), + ("build_system_type", models.CharField(max_length=25)), + ("last_touched", models.DateTimeField(auto_now=True)), ( - 'build_platform', + "build_platform", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.BuildPlatform' + on_delete=django.db.models.deletion.CASCADE, to="model.BuildPlatform" ), ), ( - 'job_type', + "job_type", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.JobType' + on_delete=django.db.models.deletion.CASCADE, to="model.JobType" ), ), ( - 'machine_platform', + "machine_platform", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.MachinePlatform' + on_delete=django.db.models.deletion.CASCADE, to="model.MachinePlatform" ), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ( - 'job_group', + "job_group", models.ForeignKey( - default=2, on_delete=django.db.models.deletion.CASCADE, to='model.JobGroup' + default=2, on_delete=django.db.models.deletion.CASCADE, to="model.JobGroup" ), ), ], options={ - 'db_table': 'runnable_job', + "db_table": "runnable_job", }, ), migrations.CreateModel( - name='FailureLine', + name="FailureLine", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('job_guid', models.CharField(max_length=50)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("job_guid", models.CharField(max_length=50)), ( - 'action', + "action", models.CharField( choices=[ - ('test_result', 'test_result'), - ('log', 'log'), - ('crash', 'crash'), - ('truncated', 'truncated'), + ("test_result", "test_result"), + ("log", "log"), + ("crash", "crash"), + ("truncated", "truncated"), ], max_length=11, ), ), - ('line', models.PositiveIntegerField()), - ('test', models.TextField(blank=True, null=True)), - ('subtest', models.TextField(blank=True, null=True)), + ("line", models.PositiveIntegerField()), + ("test", models.TextField(blank=True, null=True)), + ("subtest", models.TextField(blank=True, null=True)), ( - 'status', + "status", models.CharField( choices=[ - ('PASS', 'PASS'), - ('FAIL', 'FAIL'), - ('OK', 'OK'), - ('ERROR', 'ERROR'), - ('TIMEOUT', 'TIMEOUT'), - ('CRASH', 'CRASH'), - ('ASSERT', 'ASSERT'), - ('SKIP', 'SKIP'), - ('NOTRUN', 'NOTRUN'), + ("PASS", "PASS"), + ("FAIL", "FAIL"), + ("OK", "OK"), + ("ERROR", "ERROR"), + ("TIMEOUT", "TIMEOUT"), + ("CRASH", "CRASH"), + ("ASSERT", "ASSERT"), + ("SKIP", "SKIP"), + ("NOTRUN", "NOTRUN"), ], max_length=7, ), ), ( - 'expected', + "expected", models.CharField( blank=True, choices=[ - ('PASS', 'PASS'), - ('FAIL', 'FAIL'), - ('OK', 'OK'), - ('ERROR', 'ERROR'), - ('TIMEOUT', 'TIMEOUT'), - ('CRASH', 'CRASH'), - ('ASSERT', 'ASSERT'), - ('SKIP', 'SKIP'), - ('NOTRUN', 'NOTRUN'), + ("PASS", "PASS"), + ("FAIL", "FAIL"), + ("OK", "OK"), + ("ERROR", "ERROR"), + ("TIMEOUT", "TIMEOUT"), + ("CRASH", "CRASH"), + ("ASSERT", "ASSERT"), + ("SKIP", "SKIP"), + ("NOTRUN", "NOTRUN"), ], max_length=7, null=True, ), ), - ('message', models.TextField(blank=True, null=True)), - ('signature', models.TextField(blank=True, null=True)), + ("message", models.TextField(blank=True, null=True)), + ("signature", models.TextField(blank=True, null=True)), ( - 'level', + "level", models.CharField( blank=True, choices=[ - ('PASS', 'PASS'), - ('FAIL', 'FAIL'), - ('OK', 'OK'), - ('ERROR', 'ERROR'), - ('TIMEOUT', 'TIMEOUT'), - ('CRASH', 'CRASH'), - ('ASSERT', 'ASSERT'), - ('SKIP', 'SKIP'), - ('NOTRUN', 'NOTRUN'), + ("PASS", "PASS"), + ("FAIL", "FAIL"), + ("OK", "OK"), + ("ERROR", "ERROR"), + ("TIMEOUT", "TIMEOUT"), + ("CRASH", "CRASH"), + ("ASSERT", "ASSERT"), + ("SKIP", "SKIP"), + ("NOTRUN", "NOTRUN"), ], max_length=8, null=True, ), ), - ('stack', models.TextField(blank=True, null=True)), - ('stackwalk_stdout', models.TextField(blank=True, null=True)), - ('stackwalk_stderr', models.TextField(blank=True, null=True)), - ('best_is_verified', models.BooleanField(default=False)), - ('created', models.DateTimeField(auto_now_add=True)), - ('modified', models.DateTimeField(auto_now=True)), + ("stack", models.TextField(blank=True, null=True)), + ("stackwalk_stdout", models.TextField(blank=True, null=True)), + ("stackwalk_stderr", models.TextField(blank=True, null=True)), + ("best_is_verified", models.BooleanField(default=False)), + ("created", models.DateTimeField(auto_now_add=True)), + ("modified", models.DateTimeField(auto_now=True)), ( - 'best_classification', + "best_classification", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name='best_for_lines', - to='model.ClassifiedFailure', + related_name="best_for_lines", + to="model.ClassifiedFailure", ), ), ( - 'job_log', + "job_log", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='failure_line', - to='model.JobLog', + related_name="failure_line", + to="model.JobLog", ), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ], options={ - 'db_table': 'failure_line', + "db_table": "failure_line", }, ), migrations.CreateModel( - name='Matcher', + name="Matcher", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('name', models.CharField(max_length=50, unique=True)), + ("name", models.CharField(max_length=50, unique=True)), ], options={ - 'db_table': 'matcher', + "db_table": "matcher", }, ), migrations.CreateModel( - name='FailureMatch', + name="FailureMatch", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), ( - 'score', + "score", models.DecimalField(blank=True, decimal_places=2, max_digits=3, null=True), ), ( - 'classified_failure', + "classified_failure", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='matches', - to='model.ClassifiedFailure', + related_name="matches", + to="model.ClassifiedFailure", ), ), ( - 'failure_line', + "failure_line", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='matches', - to='model.FailureLine', + related_name="matches", + to="model.FailureLine", ), ), ( - 'matcher', + "matcher", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Matcher' + on_delete=django.db.models.deletion.CASCADE, to="model.Matcher" ), ), ], options={ - 'db_table': 'failure_match', - 'verbose_name_plural': 'failure matches', + "db_table": "failure_match", + "verbose_name_plural": "failure matches", }, ), migrations.CreateModel( - name='Group', + name="Group", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=255, unique=True)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=255, unique=True)), ( - 'failure_lines', - models.ManyToManyField(related_name='group', to='model.FailureLine'), + "failure_lines", + models.ManyToManyField(related_name="group", to="model.FailureLine"), ), ], options={ - 'db_table': 'group', + "db_table": "group", }, ), migrations.CreateModel( - name='TextLogStep', + name="TextLogStep", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=200)), - ('started', models.DateTimeField(null=True)), - ('finished', models.DateTimeField(null=True)), - ('started_line_number', models.PositiveIntegerField()), - ('finished_line_number', models.PositiveIntegerField()), - ( - 'result', + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=200)), + ("started", models.DateTimeField(null=True)), + ("finished", models.DateTimeField(null=True)), + ("started_line_number", models.PositiveIntegerField()), + ("finished_line_number", models.PositiveIntegerField()), + ( + "result", models.IntegerField( choices=[ - (0, 'success'), - (1, 'testfailed'), - (2, 'busted'), - (3, 'skipped'), - (4, 'exception'), - (5, 'retry'), - (6, 'usercancel'), - (7, 'unknown'), - (8, 'superseded'), + (0, "success"), + (1, "testfailed"), + (2, "busted"), + (3, "skipped"), + (4, "exception"), + (5, "retry"), + (6, "usercancel"), + (7, "unknown"), + (8, "superseded"), ] ), ), ( - 'job', + "job", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='text_log_step', - to='model.Job', + related_name="text_log_step", + to="model.Job", ), ), ], options={ - 'db_table': 'text_log_step', + "db_table": "text_log_step", }, ), migrations.CreateModel( - name='TextLogError', + name="TextLogError", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('line', models.TextField()), - ('line_number', models.PositiveIntegerField()), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("line", models.TextField()), + ("line_number", models.PositiveIntegerField()), ( - 'step', + "step", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='errors', - to='model.TextLogStep', + related_name="errors", + to="model.TextLogStep", ), ), ], options={ - 'db_table': 'text_log_error', + "db_table": "text_log_error", }, ), migrations.CreateModel( - name='TextLogErrorMatch', + name="TextLogErrorMatch", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), ( - 'score', + "score", models.DecimalField(blank=True, decimal_places=2, max_digits=3, null=True), ), ( - 'classified_failure', + "classified_failure", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='error_matches', - to='model.ClassifiedFailure', + related_name="error_matches", + to="model.ClassifiedFailure", ), ), ( - 'matcher', + "matcher", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Matcher' + on_delete=django.db.models.deletion.CASCADE, to="model.Matcher" ), ), ( - 'text_log_error', + "text_log_error", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='matches', - to='model.TextLogError', + related_name="matches", + to="model.TextLogError", ), ), ], options={ - 'db_table': 'text_log_error_match', - 'verbose_name_plural': 'text log error matches', + "db_table": "text_log_error_match", + "verbose_name_plural": "text log error matches", }, ), migrations.CreateModel( - name='TaskclusterMetadata', + name="TaskclusterMetadata", fields=[ ( - 'job', + "job", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='taskcluster_metadata', + related_name="taskcluster_metadata", serialize=False, - to='model.Job', + to="model.Job", ), ), ( - 'task_id', + "task_id", models.CharField( max_length=22, validators=[django.core.validators.MinLengthValidator(22)] ), ), - ('retry_id', models.PositiveIntegerField()), + ("retry_id", models.PositiveIntegerField()), ], options={ - 'db_table': 'taskcluster_metadata', + "db_table": "taskcluster_metadata", }, ), migrations.CreateModel( - name='TextLogErrorMetadata', + name="TextLogErrorMetadata", fields=[ ( - 'text_log_error', + "text_log_error", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='_metadata', + related_name="_metadata", serialize=False, - to='model.TextLogError', + to="model.TextLogError", ), ), - ('best_is_verified', models.BooleanField(default=False)), + ("best_is_verified", models.BooleanField(default=False)), ( - 'best_classification', + "best_classification", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name='best_for_errors', - to='model.ClassifiedFailure', + related_name="best_for_errors", + to="model.ClassifiedFailure", ), ), ( - 'failure_line', + "failure_line", models.OneToOneField( null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='text_log_error_metadata', - to='model.FailureLine', + related_name="text_log_error_metadata", + to="model.FailureLine", ), ), ], options={ - 'db_table': 'text_log_error_metadata', + "db_table": "text_log_error_metadata", }, ), migrations.AddField( - model_name='classifiedfailure', - name='failure_lines', + model_name="classifiedfailure", + name="failure_lines", field=models.ManyToManyField( - related_name='classified_failures', - through='model.FailureMatch', - to='model.FailureLine', + related_name="classified_failures", + through="model.FailureMatch", + to="model.FailureLine", ), ), migrations.AddField( - model_name='classifiedfailure', - name='text_log_errors', + model_name="classifiedfailure", + name="text_log_errors", field=models.ManyToManyField( - related_name='classified_failures', - through='model.TextLogErrorMatch', - to='model.TextLogError', + related_name="classified_failures", + through="model.TextLogErrorMatch", + to="model.TextLogError", ), ), migrations.AlterUniqueTogether( - name='referencedatasignatures', - unique_together=set([('name', 'signature', 'build_system_type', 'repository')]), + name="referencedatasignatures", + unique_together=set([("name", "signature", "build_system_type", "repository")]), ), migrations.AlterUniqueTogether( - name='machineplatform', - unique_together=set([('os_name', 'platform', 'architecture')]), + name="machineplatform", + unique_together=set([("os_name", "platform", "architecture")]), ), migrations.AlterUniqueTogether( - name='jobtype', - unique_together=set([('name', 'symbol')]), + name="jobtype", + unique_together=set([("name", "symbol")]), ), migrations.AlterUniqueTogether( - name='jobgroup', - unique_together=set([('name', 'symbol')]), + name="jobgroup", + unique_together=set([("name", "symbol")]), ), migrations.AlterUniqueTogether( - name='buildplatform', - unique_together=set([('os_name', 'platform', 'architecture')]), + name="buildplatform", + unique_together=set([("os_name", "platform", "architecture")]), ), migrations.AlterUniqueTogether( - name='textlogstep', - unique_together=set([('job', 'started_line_number', 'finished_line_number')]), + name="textlogstep", + unique_together=set([("job", "started_line_number", "finished_line_number")]), ), migrations.AlterUniqueTogether( - name='textlogerrormatch', - unique_together=set([('text_log_error', 'classified_failure', 'matcher')]), + name="textlogerrormatch", + unique_together=set([("text_log_error", "classified_failure", "matcher")]), ), migrations.AlterUniqueTogether( - name='textlogerror', - unique_together=set([('step', 'line_number')]), + name="textlogerror", + unique_together=set([("step", "line_number")]), ), migrations.AlterUniqueTogether( - name='runnablejob', - unique_together=set([('ref_data_name', 'build_system_type')]), + name="runnablejob", + unique_together=set([("ref_data_name", "build_system_type")]), ), migrations.AlterUniqueTogether( - name='push', - unique_together=set([('repository', 'revision')]), + name="push", + unique_together=set([("repository", "revision")]), ), migrations.AlterUniqueTogether( - name='optioncollection', - unique_together=set([('option_collection_hash', 'option')]), + name="optioncollection", + unique_together=set([("option_collection_hash", "option")]), ), migrations.AlterUniqueTogether( - name='joblog', - unique_together=set([('job', 'name', 'url')]), + name="joblog", + unique_together=set([("job", "name", "url")]), ), migrations.AlterUniqueTogether( - name='jobdetail', - unique_together=set([('title', 'value', 'job')]), + name="jobdetail", + unique_together=set([("title", "value", "job")]), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( - fields=['repository', 'option_collection_hash', 'job_type', 'start_time'], - name='job_reposit_63c897_idx', + fields=["repository", "option_collection_hash", "job_type", "start_time"], + name="job_reposit_63c897_idx", ), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( - fields=['repository', 'build_platform', 'job_type', 'start_time'], - name='job_reposit_fc1f71_idx', + fields=["repository", "build_platform", "job_type", "start_time"], + name="job_reposit_fc1f71_idx", ), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( - fields=['repository', 'submit_time'], - name='job_reposit_2101af_idx', + fields=["repository", "submit_time"], + name="job_reposit_2101af_idx", ), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( - fields=['machine_platform', 'option_collection_hash', 'push'], - name='job_machine_92bdd4_idx', + fields=["machine_platform", "option_collection_hash", "push"], + name="job_machine_92bdd4_idx", ), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( fields=[ - 'repository', - 'build_platform', - 'option_collection_hash', - 'job_type', - 'start_time', + "repository", + "build_platform", + "option_collection_hash", + "job_type", + "start_time", ], - name='job_reposit_f4bb0f_idx' - ) + name="job_reposit_f4bb0f_idx", + ), ), migrations.AddIndex( - model_name='job', + model_name="job", index=models.Index( - fields=['repository', 'job_type', 'start_time'], - name='job_reposit_f65dd6_idx', + fields=["repository", "job_type", "start_time"], + name="job_reposit_f65dd6_idx", ), ), migrations.AlterUniqueTogether( - name='failurematch', - unique_together=set([('failure_line', 'classified_failure', 'matcher')]), + name="failurematch", + unique_together=set([("failure_line", "classified_failure", "matcher")]), ), migrations.AlterUniqueTogether( - name='failureline', - unique_together=set([('job_log', 'line')]), + name="failureline", + unique_together=set([("job_log", "line")]), ), migrations.AlterUniqueTogether( - name='commit', - unique_together=set([('push', 'revision')]), + name="commit", + unique_together=set([("push", "revision")]), ), migrations.AlterUniqueTogether( - name='bugjobmap', - unique_together=set([('job', 'bug_id')]), + name="bugjobmap", + unique_together=set([("job", "bug_id")]), ), migrations.AddIndex( - model_name='failureline', + model_name="failureline", index=models.Index( - fields=['job_guid', 'repository'], - name='failure_lin_job_gui_b67c6d_idx', + fields=["job_guid", "repository"], + name="failure_lin_job_gui_b67c6d_idx", ), ), migrations.AddIndex( - model_name='bugscache', - index=models.Index(fields=['summary'], name='bugscache_summary_7f6b96_idx'), + model_name="bugscache", + index=models.Index(fields=["summary"], name="bugscache_summary_7f6b96_idx"), ), ] diff --git a/treeherder/model/migrations/0002_add_bugjobmap_model_manager.py b/treeherder/model/migrations/0002_add_bugjobmap_model_manager.py index 3fa886d2c75..cd4914f6804 100644 --- a/treeherder/model/migrations/0002_add_bugjobmap_model_manager.py +++ b/treeherder/model/migrations/0002_add_bugjobmap_model_manager.py @@ -5,14 +5,14 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0001_squashed_0022_modify_bugscache_and_bugjobmap'), + ("model", "0001_squashed_0022_modify_bugscache_and_bugjobmap"), ] operations = [ migrations.AlterModelManagers( - name='bugjobmap', + name="bugjobmap", managers=[ - ('failures', django.db.models.manager.Manager()), + ("failures", django.db.models.manager.Manager()), ], ), ] diff --git a/treeherder/model/migrations/0003_add_matcher_name_fields.py b/treeherder/model/migrations/0003_add_matcher_name_fields.py index 650da8dc06a..5e97a931435 100644 --- a/treeherder/model/migrations/0003_add_matcher_name_fields.py +++ b/treeherder/model/migrations/0003_add_matcher_name_fields.py @@ -4,20 +4,20 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0002_add_bugjobmap_model_manager'), + ("model", "0002_add_bugjobmap_model_manager"), ] operations = [ migrations.AddField( - model_name='failurematch', - name='matcher_name', - field=models.CharField(default='', max_length=255), + model_name="failurematch", + name="matcher_name", + field=models.CharField(default="", max_length=255), preserve_default=False, ), migrations.AddField( - model_name='textlogerrormatch', - name='matcher_name', - field=models.CharField(default='', max_length=255), + model_name="textlogerrormatch", + name="matcher_name", + field=models.CharField(default="", max_length=255), preserve_default=False, ), ] diff --git a/treeherder/model/migrations/0004_populate_matcher_name_fields.py b/treeherder/model/migrations/0004_populate_matcher_name_fields.py index 07491ddad77..25cb4fe5182 100644 --- a/treeherder/model/migrations/0004_populate_matcher_name_fields.py +++ b/treeherder/model/migrations/0004_populate_matcher_name_fields.py @@ -4,7 +4,7 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0003_add_matcher_name_fields'), + ("model", "0003_add_matcher_name_fields"), ] operations = [] diff --git a/treeherder/model/migrations/0005_use_matcher_name_for_unique_constraint.py b/treeherder/model/migrations/0005_use_matcher_name_for_unique_constraint.py index 75edc1183a5..28f721f98df 100644 --- a/treeherder/model/migrations/0005_use_matcher_name_for_unique_constraint.py +++ b/treeherder/model/migrations/0005_use_matcher_name_for_unique_constraint.py @@ -4,16 +4,16 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0004_populate_matcher_name_fields'), + ("model", "0004_populate_matcher_name_fields"), ] operations = [ migrations.AlterUniqueTogether( - name='failurematch', - unique_together=set([('failure_line', 'classified_failure', 'matcher_name')]), + name="failurematch", + unique_together=set([("failure_line", "classified_failure", "matcher_name")]), ), migrations.AlterUniqueTogether( - name='textlogerrormatch', - unique_together=set([('text_log_error', 'classified_failure', 'matcher_name')]), + name="textlogerrormatch", + unique_together=set([("text_log_error", "classified_failure", "matcher_name")]), ), ] diff --git a/treeherder/model/migrations/0006_drop_matcher_fks.py b/treeherder/model/migrations/0006_drop_matcher_fks.py index b84a93e39fe..50b148b9281 100644 --- a/treeherder/model/migrations/0006_drop_matcher_fks.py +++ b/treeherder/model/migrations/0006_drop_matcher_fks.py @@ -4,16 +4,16 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0005_use_matcher_name_for_unique_constraint'), + ("model", "0005_use_matcher_name_for_unique_constraint"), ] operations = [ migrations.RemoveField( - model_name='failurematch', - name='matcher', + model_name="failurematch", + name="matcher", ), migrations.RemoveField( - model_name='textlogerrormatch', - name='matcher', + model_name="textlogerrormatch", + name="matcher", ), ] diff --git a/treeherder/model/migrations/0007_remove_m2m_between_classified_failures_and_failure_match.py b/treeherder/model/migrations/0007_remove_m2m_between_classified_failures_and_failure_match.py index f9da764698e..1131b2c36b0 100644 --- a/treeherder/model/migrations/0007_remove_m2m_between_classified_failures_and_failure_match.py +++ b/treeherder/model/migrations/0007_remove_m2m_between_classified_failures_and_failure_match.py @@ -4,12 +4,12 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0006_drop_matcher_fks'), + ("model", "0006_drop_matcher_fks"), ] operations = [ migrations.RemoveField( - model_name='classifiedfailure', - name='failure_lines', + model_name="classifiedfailure", + name="failure_lines", ), ] diff --git a/treeherder/model/migrations/0008_remove_failure_match.py b/treeherder/model/migrations/0008_remove_failure_match.py index 98a05119bc2..835b0b65744 100644 --- a/treeherder/model/migrations/0008_remove_failure_match.py +++ b/treeherder/model/migrations/0008_remove_failure_match.py @@ -4,23 +4,23 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0007_remove_m2m_between_classified_failures_and_failure_match'), + ("model", "0007_remove_m2m_between_classified_failures_and_failure_match"), ] operations = [ migrations.AlterUniqueTogether( - name='failurematch', + name="failurematch", unique_together=set([]), ), migrations.RemoveField( - model_name='failurematch', - name='classified_failure', + model_name="failurematch", + name="classified_failure", ), migrations.RemoveField( - model_name='failurematch', - name='failure_line', + model_name="failurematch", + name="failure_line", ), migrations.DeleteModel( - name='FailureMatch', + name="FailureMatch", ), ] diff --git a/treeherder/model/migrations/0009_add_manager_to_push_and_job.py b/treeherder/model/migrations/0009_add_manager_to_push_and_job.py index dceb3163d4c..36b86cf054b 100644 --- a/treeherder/model/migrations/0009_add_manager_to_push_and_job.py +++ b/treeherder/model/migrations/0009_add_manager_to_push_and_job.py @@ -5,20 +5,20 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0008_remove_failure_match'), + ("model", "0008_remove_failure_match"), ] operations = [ migrations.AlterModelManagers( - name='push', + name="push", managers=[ - ('failures', django.db.models.manager.Manager()), + ("failures", django.db.models.manager.Manager()), ], ), migrations.AlterModelManagers( - name='job', + name="job", managers=[ - ('failures', django.db.models.manager.Manager()), + ("failures", django.db.models.manager.Manager()), ], ), ] diff --git a/treeherder/model/migrations/0010_remove_runnable_job.py b/treeherder/model/migrations/0010_remove_runnable_job.py index 71141c13094..9e8900a76f0 100644 --- a/treeherder/model/migrations/0010_remove_runnable_job.py +++ b/treeherder/model/migrations/0010_remove_runnable_job.py @@ -4,35 +4,35 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0009_add_manager_to_push_and_job'), + ("model", "0009_add_manager_to_push_and_job"), ] operations = [ migrations.AlterUniqueTogether( - name='runnablejob', + name="runnablejob", unique_together=set([]), ), migrations.RemoveField( - model_name='runnablejob', - name='build_platform', + model_name="runnablejob", + name="build_platform", ), migrations.RemoveField( - model_name='runnablejob', - name='job_group', + model_name="runnablejob", + name="job_group", ), migrations.RemoveField( - model_name='runnablejob', - name='job_type', + model_name="runnablejob", + name="job_type", ), migrations.RemoveField( - model_name='runnablejob', - name='machine_platform', + model_name="runnablejob", + name="machine_platform", ), migrations.RemoveField( - model_name='runnablejob', - name='repository', + model_name="runnablejob", + name="repository", ), migrations.DeleteModel( - name='RunnableJob', + name="RunnableJob", ), ] diff --git a/treeherder/model/migrations/0011_remove_matcher_table.py b/treeherder/model/migrations/0011_remove_matcher_table.py index 315c8d4a46a..79d16d99164 100644 --- a/treeherder/model/migrations/0011_remove_matcher_table.py +++ b/treeherder/model/migrations/0011_remove_matcher_table.py @@ -4,11 +4,11 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0010_remove_runnable_job'), + ("model", "0010_remove_runnable_job"), ] operations = [ migrations.DeleteModel( - name='Matcher', + name="Matcher", ), ] diff --git a/treeherder/model/migrations/0012_branch_maxlen.py b/treeherder/model/migrations/0012_branch_maxlen.py index 06052e1c25d..b67b7e0bf72 100644 --- a/treeherder/model/migrations/0012_branch_maxlen.py +++ b/treeherder/model/migrations/0012_branch_maxlen.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0011_remove_matcher_table'), + ("model", "0011_remove_matcher_table"), ] operations = [ migrations.AlterField( - model_name='repository', - name='branch', + model_name="repository", + name="branch", field=models.CharField(db_index=True, max_length=255, null=True), ), ] diff --git a/treeherder/model/migrations/0013_add_index_to_push_revision.py b/treeherder/model/migrations/0013_add_index_to_push_revision.py index ef5f3e16a19..6c9e4e25c47 100644 --- a/treeherder/model/migrations/0013_add_index_to_push_revision.py +++ b/treeherder/model/migrations/0013_add_index_to_push_revision.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0012_branch_maxlen'), + ("model", "0012_branch_maxlen"), ] operations = [ migrations.AlterField( - model_name='push', - name='revision', + model_name="push", + name="revision", field=models.CharField(db_index=True, max_length=40), ), ] diff --git a/treeherder/model/migrations/0014_add_job_log_status_skipped_size.py b/treeherder/model/migrations/0014_add_job_log_status_skipped_size.py index 295e2e64501..af852fd13cf 100644 --- a/treeherder/model/migrations/0014_add_job_log_status_skipped_size.py +++ b/treeherder/model/migrations/0014_add_job_log_status_skipped_size.py @@ -5,15 +5,15 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0013_add_index_to_push_revision'), + ("model", "0013_add_index_to_push_revision"), ] operations = [ migrations.AlterField( - model_name='joblog', - name='status', + model_name="joblog", + name="status", field=models.IntegerField( - choices=[(0, 'pending'), (1, 'parsed'), (2, 'failed'), (3, 'skipped-size')], + choices=[(0, "pending"), (1, "parsed"), (2, "failed"), (3, "skipped-size")], default=0, ), ), diff --git a/treeherder/model/migrations/0015_add_repository_tc_root_url.py b/treeherder/model/migrations/0015_add_repository_tc_root_url.py index e9f10afb0fc..978a481c6ff 100644 --- a/treeherder/model/migrations/0015_add_repository_tc_root_url.py +++ b/treeherder/model/migrations/0015_add_repository_tc_root_url.py @@ -5,15 +5,15 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0014_add_job_log_status_skipped_size'), + ("model", "0014_add_job_log_status_skipped_size"), ] operations = [ migrations.AddField( - model_name='repository', - name='tc_root_url', + model_name="repository", + name="tc_root_url", field=models.CharField( - db_index=True, default='https://taskcluster.net', max_length=255 + db_index=True, default="https://taskcluster.net", max_length=255 ), # only apply this default when migrating; after this users must supply their # own rootUrl (and by the time you're reading this, `taskcluster.net` is likely diff --git a/treeherder/model/migrations/0016_add_index_commit_revision.py b/treeherder/model/migrations/0016_add_index_commit_revision.py index dfddec7d7bb..3c58cb2ce2c 100644 --- a/treeherder/model/migrations/0016_add_index_commit_revision.py +++ b/treeherder/model/migrations/0016_add_index_commit_revision.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0015_add_repository_tc_root_url'), + ("model", "0015_add_repository_tc_root_url"), ] operations = [ migrations.AlterField( - model_name='commit', - name='revision', + model_name="commit", + name="revision", field=models.CharField(db_index=True, max_length=40), ), ] diff --git a/treeherder/model/migrations/0017_add_index_task_id.py b/treeherder/model/migrations/0017_add_index_task_id.py index f6efaadc47f..9a75818cb3e 100644 --- a/treeherder/model/migrations/0017_add_index_task_id.py +++ b/treeherder/model/migrations/0017_add_index_task_id.py @@ -6,13 +6,13 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0016_add_index_commit_revision'), + ("model", "0016_add_index_commit_revision"), ] operations = [ migrations.AlterField( - model_name='taskclustermetadata', - name='task_id', + model_name="taskclustermetadata", + name="task_id", field=models.CharField( db_index=True, max_length=22, diff --git a/treeherder/model/migrations/0018_delete_jobdetail.py b/treeherder/model/migrations/0018_delete_jobdetail.py index d1b95dff2ee..24d7f68e0de 100644 --- a/treeherder/model/migrations/0018_delete_jobdetail.py +++ b/treeherder/model/migrations/0018_delete_jobdetail.py @@ -5,11 +5,11 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0017_add_index_task_id'), + ("model", "0017_add_index_task_id"), ] operations = [ migrations.DeleteModel( - name='JobDetail', + name="JobDetail", ), ] diff --git a/treeherder/model/migrations/0019_increase_job_type_name_length.py b/treeherder/model/migrations/0019_increase_job_type_name_length.py index cd1ec509d35..f485605c011 100644 --- a/treeherder/model/migrations/0019_increase_job_type_name_length.py +++ b/treeherder/model/migrations/0019_increase_job_type_name_length.py @@ -5,18 +5,18 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0018_delete_jobdetail'), + ("model", "0018_delete_jobdetail"), ] operations = [ migrations.AlterField( - model_name='jobtype', - name='name', + model_name="jobtype", + name="name", field=models.CharField(max_length=140), ), migrations.AlterField( - model_name='referencedatasignatures', - name='job_type_name', + model_name="referencedatasignatures", + name="job_type_name", field=models.CharField(db_index=True, max_length=140), ), ] diff --git a/treeherder/model/migrations/0020_textlogerror_job.py b/treeherder/model/migrations/0020_textlogerror_job.py index bbffbbb36e9..e80e7330470 100644 --- a/treeherder/model/migrations/0020_textlogerror_job.py +++ b/treeherder/model/migrations/0020_textlogerror_job.py @@ -6,28 +6,28 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0019_increase_job_type_name_length'), + ("model", "0019_increase_job_type_name_length"), ] operations = [ migrations.AddField( - model_name='textlogerror', - name='job', + model_name="textlogerror", + name="job", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='text_log_error', - to='model.Job', + related_name="text_log_error", + to="model.Job", ), ), migrations.AlterField( - model_name='textlogerror', - name='step', + model_name="textlogerror", + name="step", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='errors', - to='model.TextLogStep', + related_name="errors", + to="model.TextLogStep", ), ), ] diff --git a/treeherder/model/migrations/0021_investigatedtests.py b/treeherder/model/migrations/0021_investigatedtests.py index dab1bf01c72..a8a593c52f4 100644 --- a/treeherder/model/migrations/0021_investigatedtests.py +++ b/treeherder/model/migrations/0021_investigatedtests.py @@ -6,31 +6,31 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0020_textlogerror_job'), + ("model", "0020_textlogerror_job"), ] operations = [ migrations.CreateModel( - name='InvestigatedTests', + name="InvestigatedTests", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('test', models.CharField(max_length=350)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("test", models.CharField(max_length=350)), ( - 'job_type', + "job_type", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='investigated', - to='model.JobType', + related_name="investigated", + to="model.JobType", ), ), ( - 'push', - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='model.Push'), + "push", + models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="model.Push"), ), ], options={ - 'db_table': 'investigated_tests', - 'unique_together': {('job_type', 'test', 'push')}, + "db_table": "investigated_tests", + "unique_together": {("job_type", "test", "push")}, }, ), ] diff --git a/treeherder/model/migrations/0022_support_group_status.py b/treeherder/model/migrations/0022_support_group_status.py index ce723790143..a6f90c9481d 100644 --- a/treeherder/model/migrations/0022_support_group_status.py +++ b/treeherder/model/migrations/0022_support_group_status.py @@ -6,64 +6,64 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0021_investigatedtests'), + ("model", "0021_investigatedtests"), ] operations = [ migrations.AlterField( - model_name='failureline', - name='action', + model_name="failureline", + name="action", field=models.CharField( choices=[ - ('test_result', 'test_result'), - ('log', 'log'), - ('crash', 'crash'), - ('truncated', 'truncated'), - ('group_result', 'group_result'), + ("test_result", "test_result"), + ("log", "log"), + ("crash", "crash"), + ("truncated", "truncated"), + ("group_result", "group_result"), ], max_length=15, ), ), migrations.CreateModel( - name='GroupStatus', + name="GroupStatus", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('status', models.SmallIntegerField()), + ("status", models.SmallIntegerField()), ( - 'group', + "group", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='group_result', - to='model.Group', + related_name="group_result", + to="model.Group", ), ), ( - 'job_log', + "job_log", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='group_result', - to='model.JobLog', + related_name="group_result", + to="model.JobLog", ), ), ], options={ - 'db_table': 'group_status', + "db_table": "group_status", }, ), migrations.AddField( - model_name='group', - name='job_logs', + model_name="group", + name="job_logs", field=models.ManyToManyField( - related_name='groups', through='model.GroupStatus', to='model.JobLog' + related_name="groups", through="model.GroupStatus", to="model.JobLog" ), ), migrations.RemoveField( - model_name='group', - name='failure_lines', + model_name="group", + name="failure_lines", ), ] diff --git a/treeherder/model/migrations/0023_add_filebugzillacomponent.py b/treeherder/model/migrations/0023_add_filebugzillacomponent.py index 3c691e827a7..95e3dd1cc1a 100644 --- a/treeherder/model/migrations/0023_add_filebugzillacomponent.py +++ b/treeherder/model/migrations/0023_add_filebugzillacomponent.py @@ -6,54 +6,54 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0022_support_group_status'), + ("model", "0022_support_group_status"), ] operations = [ migrations.CreateModel( - name='BugzillaComponent', + name="BugzillaComponent", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('product', models.CharField(max_length=60)), - ('component', models.CharField(max_length=60)), + ("product", models.CharField(max_length=60)), + ("component", models.CharField(max_length=60)), ], options={ - 'verbose_name_plural': 'bugzilla_components', - 'db_table': 'bugzilla_component', - 'unique_together': {('product', 'component')}, + "verbose_name_plural": "bugzilla_components", + "db_table": "bugzilla_component", + "unique_together": {("product", "component")}, }, ), migrations.AddField( - model_name='repository', - name='life_cycle_order', + model_name="repository", + name="life_cycle_order", field=models.PositiveIntegerField(default=None, null=True), ), migrations.CreateModel( - name='FilesBugzillaMap', + name="FilesBugzillaMap", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('path', models.CharField(db_index=True, max_length=255, unique=True)), - ('file_name', models.CharField(db_index=True, max_length=255)), + ("path", models.CharField(db_index=True, max_length=255, unique=True)), + ("file_name", models.CharField(db_index=True, max_length=255)), ( - 'bugzilla_component', + "bugzilla_component", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.bugzillacomponent' + on_delete=django.db.models.deletion.CASCADE, to="model.bugzillacomponent" ), ), ], options={ - 'verbose_name_plural': 'files_bugzilla_components', - 'db_table': 'file_bugzilla_component', + "verbose_name_plural": "files_bugzilla_components", + "db_table": "file_bugzilla_component", }, ), ] diff --git a/treeherder/model/migrations/0024_add_bugzillasecuritygroup.py b/treeherder/model/migrations/0024_add_bugzillasecuritygroup.py index 0bccec47e37..f57f89b2c44 100644 --- a/treeherder/model/migrations/0024_add_bugzillasecuritygroup.py +++ b/treeherder/model/migrations/0024_add_bugzillasecuritygroup.py @@ -5,25 +5,25 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0023_add_filebugzillacomponent'), + ("model", "0023_add_filebugzillacomponent"), ] operations = [ migrations.CreateModel( - name='BugzillaSecurityGroup', + name="BugzillaSecurityGroup", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('product', models.CharField(db_index=True, max_length=60, unique=True)), - ('security_group', models.CharField(max_length=60)), + ("product", models.CharField(db_index=True, max_length=60, unique=True)), + ("security_group", models.CharField(max_length=60)), ], options={ - 'verbose_name_plural': 'bugzilla_security_groups', - 'db_table': 'bugzilla_security_group', + "verbose_name_plural": "bugzilla_security_groups", + "db_table": "bugzilla_security_group", }, ), ] diff --git a/treeherder/model/migrations/0025_remove_bugscache_os.py b/treeherder/model/migrations/0025_remove_bugscache_os.py index 10205b9e528..1bfedd83a11 100644 --- a/treeherder/model/migrations/0025_remove_bugscache_os.py +++ b/treeherder/model/migrations/0025_remove_bugscache_os.py @@ -5,12 +5,12 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0024_add_bugzillasecuritygroup'), + ("model", "0024_add_bugzillasecuritygroup"), ] operations = [ migrations.RemoveField( - model_name='bugscache', - name='os', + model_name="bugscache", + name="os", ), ] diff --git a/treeherder/model/migrations/0026_bugscache_add_dupe_of_and_processed_update.py b/treeherder/model/migrations/0026_bugscache_add_dupe_of_and_processed_update.py index bd73d2f29e3..2ba20a96cb2 100644 --- a/treeherder/model/migrations/0026_bugscache_add_dupe_of_and_processed_update.py +++ b/treeherder/model/migrations/0026_bugscache_add_dupe_of_and_processed_update.py @@ -13,24 +13,24 @@ def set_update_next_run(apps, schema_editor): # chains of duplicates. more_than_year_ago = datetime.utcnow() - timedelta(days=400) - Bugscache = apps.get_model('model', 'Bugscache') + Bugscache = apps.get_model("model", "Bugscache") Bugscache.objects.all().update(modified=more_than_year_ago) class Migration(migrations.Migration): dependencies = [ - ('model', '0025_remove_bugscache_os'), + ("model", "0025_remove_bugscache_os"), ] operations = [ migrations.AddField( - model_name='bugscache', - name='dupe_of', + model_name="bugscache", + name="dupe_of", field=models.PositiveIntegerField(null=True), ), migrations.AddField( - model_name='bugscache', - name='processed_update', + model_name="bugscache", + name="processed_update", field=models.BooleanField(default=True), ), migrations.RunPython(set_update_next_run), diff --git a/treeherder/model/migrations/0027_mozciclassification.py b/treeherder/model/migrations/0027_mozciclassification.py index 20a4a217b75..2fff24ad91e 100644 --- a/treeherder/model/migrations/0027_mozciclassification.py +++ b/treeherder/model/migrations/0027_mozciclassification.py @@ -8,35 +8,35 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0026_bugscache_add_dupe_of_and_processed_update'), + ("model", "0026_bugscache_add_dupe_of_and_processed_update"), ] operations = [ migrations.CreateModel( - name='MozciClassification', + name="MozciClassification", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), + ("id", models.BigAutoField(primary_key=True, serialize=False)), ( - 'result', + "result", models.CharField( max_length=7, - choices=[('BAD', 'bad'), ('GOOD', 'good'), ('UNKNOWN', 'unknown')], + choices=[("BAD", "bad"), ("GOOD", "good"), ("UNKNOWN", "unknown")], ), ), - ('created', models.DateTimeField(default=django.utils.timezone.now)), + ("created", models.DateTimeField(default=django.utils.timezone.now)), ( - 'task_id', + "task_id", models.CharField( max_length=22, validators=[django.core.validators.MinLengthValidator(22)] ), ), ( - 'push', - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='model.push'), + "push", + models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="model.push"), ), ], options={ - 'db_table': 'mozci_classification', + "db_table": "mozci_classification", }, ), ] diff --git a/treeherder/model/migrations/0028_alter_textlogerror_unique_together.py b/treeherder/model/migrations/0028_alter_textlogerror_unique_together.py index 65c11608e27..8c73212b366 100644 --- a/treeherder/model/migrations/0028_alter_textlogerror_unique_together.py +++ b/treeherder/model/migrations/0028_alter_textlogerror_unique_together.py @@ -5,12 +5,12 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0027_mozciclassification'), + ("model", "0027_mozciclassification"), ] operations = [ migrations.AlterUniqueTogether( - name='textlogerror', - unique_together={('step', 'line_number'), ('job', 'line_number')}, + name="textlogerror", + unique_together={("step", "line_number"), ("job", "line_number")}, ), ] diff --git a/treeherder/model/migrations/0029_alter_failureline_index_together.py b/treeherder/model/migrations/0029_alter_failureline_index_together.py index ae41d367c64..a065a1e4de1 100644 --- a/treeherder/model/migrations/0029_alter_failureline_index_together.py +++ b/treeherder/model/migrations/0029_alter_failureline_index_together.py @@ -11,8 +11,7 @@ class Migration(migrations.Migration): """ dependencies = [ - ('model', '0028_alter_textlogerror_unique_together'), + ("model", "0028_alter_textlogerror_unique_together"), ] - operations = [ - ] + operations = [] diff --git a/treeherder/model/migrations/0030_group_durations.py b/treeherder/model/migrations/0030_group_durations.py index 40c923c9006..8f0a4d6918b 100644 --- a/treeherder/model/migrations/0030_group_durations.py +++ b/treeherder/model/migrations/0030_group_durations.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0029_alter_failureline_index_together'), + ("model", "0029_alter_failureline_index_together"), ] operations = [ migrations.AddField( - model_name='groupstatus', - name='duration', + model_name="groupstatus", + name="duration", field=models.SmallIntegerField(default=0), preserve_default=False, ), diff --git a/treeherder/model/migrations/0031_trigram_extension.py b/treeherder/model/migrations/0031_trigram_extension.py index 06c41db19e3..7072d4fdcef 100644 --- a/treeherder/model/migrations/0031_trigram_extension.py +++ b/treeherder/model/migrations/0031_trigram_extension.py @@ -5,7 +5,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0030_group_durations"), ] diff --git a/treeherder/model/migrations/0032_rename_failureline_job_guid_repository_failure_lin_job_gui_b67c6d_idx_and_more.py b/treeherder/model/migrations/0032_rename_failureline_job_guid_repository_failure_lin_job_gui_b67c6d_idx_and_more.py index 2b0718a2e6d..7cdf36ba7ee 100644 --- a/treeherder/model/migrations/0032_rename_failureline_job_guid_repository_failure_lin_job_gui_b67c6d_idx_and_more.py +++ b/treeherder/model/migrations/0032_rename_failureline_job_guid_repository_failure_lin_job_gui_b67c6d_idx_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0031_trigram_extension"), ] diff --git a/treeherder/model/migrations/0033_textlogerror_new_failure.py b/treeherder/model/migrations/0033_textlogerror_new_failure.py index fcf45af4847..3dc1e45ed82 100644 --- a/treeherder/model/migrations/0033_textlogerror_new_failure.py +++ b/treeherder/model/migrations/0033_textlogerror_new_failure.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ( "model", diff --git a/treeherder/model/migrations/0034_bugjobmap_bug_open.py b/treeherder/model/migrations/0034_bugjobmap_bug_open.py index 8289112b941..65b04440368 100644 --- a/treeherder/model/migrations/0034_bugjobmap_bug_open.py +++ b/treeherder/model/migrations/0034_bugjobmap_bug_open.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ( "model", diff --git a/treeherder/model/migrations/0035_bugscache_optional_bugzilla_ref.py b/treeherder/model/migrations/0035_bugscache_optional_bugzilla_ref.py index f590da4f7b3..0e0b7349789 100644 --- a/treeherder/model/migrations/0035_bugscache_optional_bugzilla_ref.py +++ b/treeherder/model/migrations/0035_bugscache_optional_bugzilla_ref.py @@ -11,7 +11,6 @@ def set_bugzilla_ids(apps, schema_editor): class Migration(migrations.Migration): - dependencies = [ ("model", "0034_bugjobmap_bug_open"), ] diff --git a/treeherder/model/migrations/0036_bugscache_init_autoincrement.py b/treeherder/model/migrations/0036_bugscache_init_autoincrement.py index 68131b368b7..3303faca32f 100644 --- a/treeherder/model/migrations/0036_bugscache_init_autoincrement.py +++ b/treeherder/model/migrations/0036_bugscache_init_autoincrement.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0035_bugscache_optional_bugzilla_ref"), ] diff --git a/treeherder/model/migrations/0037_bugjobmap_internal_bug_refs.py b/treeherder/model/migrations/0037_bugjobmap_internal_bug_refs.py index 88ba9270752..41c70644f67 100644 --- a/treeherder/model/migrations/0037_bugjobmap_internal_bug_refs.py +++ b/treeherder/model/migrations/0037_bugjobmap_internal_bug_refs.py @@ -20,7 +20,7 @@ def set_internal_fks(apps, schema_editor): defaults={ "modified": now, "summary": "(no bug data fetched)", - } + }, ) created_count += created bug_job_map.bug_id = bugscache.id @@ -28,8 +28,8 @@ def set_internal_fks(apps, schema_editor): if created_count: print(f"Created {created_count} missing Bugscache entries referenced via BugJobMap") -class Migration(migrations.Migration): +class Migration(migrations.Migration): dependencies = [ ("model", "0036_bugscache_init_autoincrement"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), @@ -38,9 +38,9 @@ class Migration(migrations.Migration): operations = [ # Allow access to custom manager inside the migration migrations.AlterModelManagers( - name='bugjobmap', + name="bugjobmap", managers=[ - ('objects', models.Manager()), + ("objects", models.Manager()), ], ), migrations.DeleteModel( @@ -55,11 +55,7 @@ class Migration(migrations.Migration): name="bugjobmap", unique_together=set(), ), - migrations.RenameField( - model_name="bugjobmap", - old_name="bug_id", - new_name="bugzilla_id" - ), + migrations.RenameField(model_name="bugjobmap", old_name="bug_id", new_name="bugzilla_id"), migrations.AddField( model_name="bugjobmap", name="bug", diff --git a/treeherder/model/migrations/0038_commit_search_vector_idx.py b/treeherder/model/migrations/0038_commit_search_vector_idx.py index a64286236d6..14571073bf3 100644 --- a/treeherder/model/migrations/0038_commit_search_vector_idx.py +++ b/treeherder/model/migrations/0038_commit_search_vector_idx.py @@ -7,7 +7,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0037_bugjobmap_internal_bug_refs"), ] diff --git a/treeherder/model/migrations/0039_fix_bugscache_autoincrement.py b/treeherder/model/migrations/0039_fix_bugscache_autoincrement.py index e5931b230b4..2b03e059c69 100644 --- a/treeherder/model/migrations/0039_fix_bugscache_autoincrement.py +++ b/treeherder/model/migrations/0039_fix_bugscache_autoincrement.py @@ -2,11 +2,12 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0038_commit_search_vector_idx"), ] operations = [ - migrations.RunSQL("SELECT SETVAL('bugscache_id_seq', (SELECT MAX(bugzilla_id) FROM bugscache))") + migrations.RunSQL( + "SELECT SETVAL('bugscache_id_seq', (SELECT MAX(bugzilla_id) FROM bugscache))" + ) ] diff --git a/treeherder/model/migrations/0040_alter_textlogerror_unique_together_and_more.py b/treeherder/model/migrations/0040_alter_textlogerror_unique_together_and_more.py index fb6ad48b418..45eec77b3da 100644 --- a/treeherder/model/migrations/0040_alter_textlogerror_unique_together_and_more.py +++ b/treeherder/model/migrations/0040_alter_textlogerror_unique_together_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0039_fix_bugscache_autoincrement"), ] diff --git a/treeherder/model/migrations/0041_update_search_vector.py b/treeherder/model/migrations/0041_update_search_vector.py index b499fe2a6f6..5807a9b0a09 100644 --- a/treeherder/model/migrations/0041_update_search_vector.py +++ b/treeherder/model/migrations/0041_update_search_vector.py @@ -10,14 +10,16 @@ def update_search_vector(apps, schema_editor): Commit = apps.get_model("model", "Commit") Commit.objects.update( - search_vector=SearchVector("revision", "author", Substr("comments", 1, 100000), config="english") + search_vector=SearchVector( + "revision", "author", Substr("comments", 1, 100000), config="english" + ) ) class Migration(migrations.Migration): dependencies = [ - ("model", "0040_alter_textlogerror_unique_together_and_more"), - ] + ("model", "0040_alter_textlogerror_unique_together_and_more"), + ] operations = [ migrations.RemoveIndex( diff --git a/treeherder/model/migrations/0042_alter_jobgroup_name.py b/treeherder/model/migrations/0042_alter_jobgroup_name.py index bc829e54677..b4495c4d8b8 100644 --- a/treeherder/model/migrations/0042_alter_jobgroup_name.py +++ b/treeherder/model/migrations/0042_alter_jobgroup_name.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0041_update_search_vector"), ] diff --git a/treeherder/model/migrations/0043_alter_referencedatasignatures_job_group_name.py b/treeherder/model/migrations/0043_alter_referencedatasignatures_job_group_name.py index 3db826ff990..f62d1669d74 100644 --- a/treeherder/model/migrations/0043_alter_referencedatasignatures_job_group_name.py +++ b/treeherder/model/migrations/0043_alter_referencedatasignatures_job_group_name.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0042_alter_jobgroup_name"), ] diff --git a/treeherder/model/migrations/0044_add_optimized_group_results_indexes.py b/treeherder/model/migrations/0044_add_optimized_group_results_indexes.py index 83e3f8f9210..c388c462714 100644 --- a/treeherder/model/migrations/0044_add_optimized_group_results_indexes.py +++ b/treeherder/model/migrations/0044_add_optimized_group_results_indexes.py @@ -9,7 +9,7 @@ class Migration(migrations.Migration): atomic = False dependencies = [ - ('model', '0043_alter_referencedatasignatures_job_group_name'), + ("model", "0043_alter_referencedatasignatures_job_group_name"), ] operations = [ @@ -17,41 +17,36 @@ class Migration(migrations.Migration): # This eliminates separate lookups for the group name in the values_list query migrations.RunSQL( sql='CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_group_push_lookup ON "group"(id) INCLUDE (name);', - reverse_sql='DROP INDEX IF EXISTS idx_group_push_lookup;' + reverse_sql="DROP INDEX IF EXISTS idx_group_push_lookup;", ), - # 2. Optimize the job_logs → job → push join path (the main bottleneck) # This handles the job__push__revision and job__push__repository filters efficiently migrations.RunSQL( sql="CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_job_push_repo_composite ON job(push_id, repository_id) INCLUDE (id);", - reverse_sql="DROP INDEX IF EXISTS idx_job_push_repo_composite;" + reverse_sql="DROP INDEX IF EXISTS idx_job_push_repo_composite;", ), - # 3. Critical: Partial index for group_status filtering # Only indexes OK and ERROR status (1, 2) which are the only ones the query needs migrations.RunSQL( sql="CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_group_status_optimized ON group_status(group_id, status) WHERE status IN (1, 2);", - reverse_sql="DROP INDEX IF EXISTS idx_group_status_optimized;" + reverse_sql="DROP INDEX IF EXISTS idx_group_status_optimized;", ), - # 4. Support the taskcluster_metadata lookup with covering index # Includes task_id to avoid separate table lookups for the values_list query migrations.RunSQL( sql="CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_taskcluster_metadata_covering ON taskcluster_metadata(job_id) INCLUDE (task_id);", - reverse_sql="DROP INDEX IF EXISTS idx_taskcluster_metadata_covering;" + reverse_sql="DROP INDEX IF EXISTS idx_taskcluster_metadata_covering;", ), - # 5. Better push lookup index with covering id # Optimizes the initial Push.objects.get() call and includes id for joins migrations.RunSQL( sql="CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_push_revision_repo_covering ON push(revision, repository_id) INCLUDE (id);", - reverse_sql="DROP INDEX IF EXISTS idx_push_revision_repo_covering;" + reverse_sql="DROP INDEX IF EXISTS idx_push_revision_repo_covering;", ), - # 6. Optimize the job_logs join specifically # This handles the Group → job_logs relationship efficiently migrations.RunSQL( sql="CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_job_log_job_id_optimized ON job_log(job_id) INCLUDE (id);", - reverse_sql="DROP INDEX IF EXISTS idx_job_log_job_id_optimized;" + reverse_sql="DROP INDEX IF EXISTS idx_job_log_job_id_optimized;", ), ] diff --git a/treeherder/model/migrations/0045_alter_failureline_expected_alter_failureline_level_and_more.py b/treeherder/model/migrations/0045_alter_failureline_expected_alter_failureline_level_and_more.py index 3352f0602a0..d9ea47e9abb 100644 --- a/treeherder/model/migrations/0045_alter_failureline_expected_alter_failureline_level_and_more.py +++ b/treeherder/model/migrations/0045_alter_failureline_expected_alter_failureline_level_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0044_add_optimized_group_results_indexes"), ] diff --git a/treeherder/model/migrations/0047_failureline_known_intermittent.py b/treeherder/model/migrations/0047_failureline_known_intermittent.py index 379b96ca8a2..cece48b8685 100644 --- a/treeherder/model/migrations/0047_failureline_known_intermittent.py +++ b/treeherder/model/migrations/0047_failureline_known_intermittent.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0046_repository_repo_url_active_idx"), ] diff --git a/treeherder/model/migrations/0048_alter_failureline_action.py b/treeherder/model/migrations/0048_alter_failureline_action.py index 72a3a3cdfaf..cd2438effd3 100644 --- a/treeherder/model/migrations/0048_alter_failureline_action.py +++ b/treeherder/model/migrations/0048_alter_failureline_action.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0047_failureline_known_intermittent"), ] diff --git a/treeherder/perf/migrations/0001_squashed_0005_permit_github_links.py b/treeherder/perf/migrations/0001_squashed_0005_permit_github_links.py index c3313af76af..717f473413d 100644 --- a/treeherder/perf/migrations/0001_squashed_0005_permit_github_links.py +++ b/treeherder/perf/migrations/0001_squashed_0005_permit_github_links.py @@ -10,280 +10,280 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('model', '0001_squashed_0022_modify_bugscache_and_bugjobmap'), + ("model", "0001_squashed_0022_modify_bugscache_and_bugjobmap"), ] operations = [ migrations.CreateModel( - name='IssueTracker', + name="IssueTracker", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=255)), - ('task_base_url', models.URLField(max_length=512)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=255)), + ("task_base_url", models.URLField(max_length=512)), ], options={ - 'db_table': 'issue_tracker', + "db_table": "issue_tracker", }, ), migrations.CreateModel( - name='PerformanceFramework', + name="PerformanceFramework", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('name', models.SlugField(max_length=255, unique=True)), - ('enabled', models.BooleanField(default=False)), + ("name", models.SlugField(max_length=255, unique=True)), + ("enabled", models.BooleanField(default=False)), ], options={ - 'db_table': 'performance_framework', + "db_table": "performance_framework", }, ), migrations.CreateModel( - name='PerformanceBugTemplate', + name="PerformanceBugTemplate", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('keywords', models.CharField(max_length=255)), - ('status_whiteboard', models.CharField(max_length=255)), - ('default_component', models.CharField(max_length=255)), - ('default_product', models.CharField(max_length=255)), - ('cc_list', models.CharField(max_length=255)), - ('text', models.TextField(max_length=4096)), + ("keywords", models.CharField(max_length=255)), + ("status_whiteboard", models.CharField(max_length=255)), + ("default_component", models.CharField(max_length=255)), + ("default_product", models.CharField(max_length=255)), + ("cc_list", models.CharField(max_length=255)), + ("text", models.TextField(max_length=4096)), ( - 'framework', + "framework", models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, to='perf.PerformanceFramework' + on_delete=django.db.models.deletion.CASCADE, to="perf.PerformanceFramework" ), ), ], options={ - 'db_table': 'performance_bug_template', + "db_table": "performance_bug_template", }, ), migrations.CreateModel( - name='PerformanceSignature', + name="PerformanceSignature", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ( - 'signature_hash', + "signature_hash", models.CharField( max_length=40, validators=[django.core.validators.MinLengthValidator(40)] ), ), - ('suite', models.CharField(max_length=80)), - ('test', models.CharField(blank=True, max_length=80)), - ('lower_is_better', models.BooleanField(default=True)), - ('last_updated', models.DateTimeField(db_index=True)), - ('has_subtests', models.BooleanField()), - ('extra_options', models.CharField(blank=True, max_length=60)), - ('should_alert', models.NullBooleanField()), + ("suite", models.CharField(max_length=80)), + ("test", models.CharField(blank=True, max_length=80)), + ("lower_is_better", models.BooleanField(default=True)), + ("last_updated", models.DateTimeField(db_index=True)), + ("has_subtests", models.BooleanField()), + ("extra_options", models.CharField(blank=True, max_length=60)), + ("should_alert", models.NullBooleanField()), ( - 'alert_change_type', - models.IntegerField(choices=[(0, 'percentage'), (1, 'absolute')], null=True), + "alert_change_type", + models.IntegerField(choices=[(0, "percentage"), (1, "absolute")], null=True), ), - ('alert_threshold', models.FloatField(null=True)), - ('min_back_window', models.IntegerField(null=True)), - ('max_back_window', models.IntegerField(null=True)), - ('fore_window', models.IntegerField(null=True)), + ("alert_threshold", models.FloatField(null=True)), + ("min_back_window", models.IntegerField(null=True)), + ("max_back_window", models.IntegerField(null=True)), + ("fore_window", models.IntegerField(null=True)), ( - 'framework', + "framework", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='perf.PerformanceFramework' + on_delete=django.db.models.deletion.CASCADE, to="perf.PerformanceFramework" ), ), ( - 'option_collection', + "option_collection", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.OptionCollection' + on_delete=django.db.models.deletion.CASCADE, to="model.OptionCollection" ), ), ( - 'parent_signature', + "parent_signature", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='subtests', - to='perf.PerformanceSignature', + related_name="subtests", + to="perf.PerformanceSignature", ), ), ( - 'platform', + "platform", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.MachinePlatform' + on_delete=django.db.models.deletion.CASCADE, to="model.MachinePlatform" ), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ], options={ - 'db_table': 'performance_signature', + "db_table": "performance_signature", }, ), migrations.CreateModel( - name='PerformanceDatum', + name="PerformanceDatum", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('value', models.FloatField()), - ('push_timestamp', models.DateTimeField()), - ('ds_job_id', models.PositiveIntegerField(db_column='ds_job_id', null=True)), - ('result_set_id', models.PositiveIntegerField(null=True)), + ("value", models.FloatField()), + ("push_timestamp", models.DateTimeField()), + ("ds_job_id", models.PositiveIntegerField(db_column="ds_job_id", null=True)), + ("result_set_id", models.PositiveIntegerField(null=True)), ( - 'job', + "job", models.ForeignKey( default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, - to='model.Job', + to="model.Job", ), ), ( - 'push', - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='model.Push'), + "push", + models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="model.Push"), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ( - 'signature', + "signature", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='perf.PerformanceSignature' + on_delete=django.db.models.deletion.CASCADE, to="perf.PerformanceSignature" ), ), ], options={ - 'db_table': 'performance_datum', + "db_table": "performance_datum", }, ), migrations.CreateModel( - name='PerformanceAlertSummary', + name="PerformanceAlertSummary", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('manually_created', models.BooleanField(default=False)), - ('last_updated', models.DateTimeField(db_index=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("manually_created", models.BooleanField(default=False)), + ("last_updated", models.DateTimeField(db_index=True)), ( - 'status', + "status", models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (3, 'Invalid'), - (4, 'Improvement'), - (5, 'Investigating'), + (0, "Untriaged"), + (1, "Downstream"), + (3, "Invalid"), + (4, "Improvement"), + (5, "Investigating"), (6, "Won't fix"), - (7, 'Fixed'), - (8, 'Backed out'), + (7, "Fixed"), + (8, "Backed out"), ], default=0, ), ), - ('bug_number', models.PositiveIntegerField(null=True)), + ("bug_number", models.PositiveIntegerField(null=True)), ( - 'framework', + "framework", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='perf.PerformanceFramework' + on_delete=django.db.models.deletion.CASCADE, to="perf.PerformanceFramework" ), ), ( - 'prev_push', + "prev_push", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='+', - to='model.Push', + related_name="+", + to="model.Push", ), ), ( - 'push', + "push", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='+', - to='model.Push', + related_name="+", + to="model.Push", ), ), ( - 'repository', + "repository", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='model.Repository' + on_delete=django.db.models.deletion.CASCADE, to="model.Repository" ), ), ( - 'issue_tracker', + "issue_tracker", models.ForeignKey( null=True, on_delete=django.db.models.deletion.PROTECT, - to='perf.IssueTracker', + to="perf.IssueTracker", ), ), ], options={ - 'db_table': 'performance_alert_summary', + "db_table": "performance_alert_summary", }, ), migrations.CreateModel( - name='PerformanceAlert', + name="PerformanceAlert", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('is_regression', models.BooleanField()), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("is_regression", models.BooleanField()), ( - 'status', + "status", models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (2, 'Reassigned'), - (3, 'Invalid'), - (4, 'Acknowledged'), + (0, "Untriaged"), + (1, "Downstream"), + (2, "Reassigned"), + (3, "Invalid"), + (4, "Acknowledged"), ], default=0, ), ), ( - 'amount_pct', - models.FloatField(help_text='Amount in percentage that series has changed'), + "amount_pct", + models.FloatField(help_text="Amount in percentage that series has changed"), ), ( - 'amount_abs', - models.FloatField(help_text='Absolute amount that series has changed'), + "amount_abs", + models.FloatField(help_text="Absolute amount that series has changed"), ), ( - 'prev_value', - models.FloatField(help_text='Previous value of series before change'), + "prev_value", + models.FloatField(help_text="Previous value of series before change"), ), - ('new_value', models.FloatField(help_text='New value of series after change')), + ("new_value", models.FloatField(help_text="New value of series after change")), ( - 't_value', + "t_value", models.FloatField( help_text="t value out of analysis indicating confidence that change is 'real'", null=True, ), ), - ('manually_created', models.BooleanField(default=False)), + ("manually_created", models.BooleanField(default=False)), ( - 'classifier', + "classifier", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, @@ -291,61 +291,61 @@ class Migration(migrations.Migration): ), ), ( - 'related_summary', + "related_summary", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, - related_name='related_alerts', - to='perf.PerformanceAlertSummary', + related_name="related_alerts", + to="perf.PerformanceAlertSummary", ), ), ( - 'series_signature', + "series_signature", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='perf.PerformanceSignature' + on_delete=django.db.models.deletion.CASCADE, to="perf.PerformanceSignature" ), ), ( - 'summary', + "summary", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='alerts', - to='perf.PerformanceAlertSummary', + related_name="alerts", + to="perf.PerformanceAlertSummary", ), ), ], options={ - 'db_table': 'performance_alert', + "db_table": "performance_alert", }, ), migrations.AlterUniqueTogether( - name='performancesignature', - unique_together=set([('repository', 'framework', 'signature_hash')]), + name="performancesignature", + unique_together=set([("repository", "framework", "signature_hash")]), ), migrations.AlterUniqueTogether( - name='performancedatum', - unique_together=set([('repository', 'job', 'push', 'signature')]), + name="performancedatum", + unique_together=set([("repository", "job", "push", "signature")]), ), migrations.AddIndex( - model_name='performancedatum', + model_name="performancedatum", index=models.Index( - fields=['repository', 'signature', 'push_timestamp'], - name='performance_reposit_c9d328_idx', + fields=["repository", "signature", "push_timestamp"], + name="performance_reposit_c9d328_idx", ), ), migrations.AddIndex( - model_name='performancedatum', + model_name="performancedatum", index=models.Index( - fields=['repository', 'signature', 'push'], - name='performance_reposit_5486e2_idx', + fields=["repository", "signature", "push"], + name="performance_reposit_5486e2_idx", ), ), migrations.AlterUniqueTogether( - name='performancealertsummary', - unique_together=set([('repository', 'framework', 'prev_push', 'push')]), + name="performancealertsummary", + unique_together=set([("repository", "framework", "prev_push", "push")]), ), migrations.AlterUniqueTogether( - name='performancealert', - unique_together=set([('summary', 'series_signature')]), + name="performancealert", + unique_together=set([("summary", "series_signature")]), ), ] diff --git a/treeherder/perf/migrations/0006_add_alert_summary_notes.py b/treeherder/perf/migrations/0006_add_alert_summary_notes.py index 2066690b6c2..69d2c21accc 100644 --- a/treeherder/perf/migrations/0006_add_alert_summary_notes.py +++ b/treeherder/perf/migrations/0006_add_alert_summary_notes.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0001_squashed_0005_permit_github_links'), + ("perf", "0001_squashed_0005_permit_github_links"), ] operations = [ migrations.AddField( - model_name='performancealertsummary', - name='notes', + model_name="performancealertsummary", + name="notes", field=models.TextField(null=True, blank=True), ), ] diff --git a/treeherder/perf/migrations/0007_star_performancealert.py b/treeherder/perf/migrations/0007_star_performancealert.py index bcc725e2bd0..debc85f7906 100644 --- a/treeherder/perf/migrations/0007_star_performancealert.py +++ b/treeherder/perf/migrations/0007_star_performancealert.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0006_add_alert_summary_notes'), + ("perf", "0006_add_alert_summary_notes"), ] operations = [ migrations.AddField( - model_name='performancealert', - name='starred', + model_name="performancealert", + name="starred", field=models.BooleanField(default=False), ), ] diff --git a/treeherder/perf/migrations/0008_add_confirming_state.py b/treeherder/perf/migrations/0008_add_confirming_state.py index af529a4ac6c..df601c9691a 100644 --- a/treeherder/perf/migrations/0008_add_confirming_state.py +++ b/treeherder/perf/migrations/0008_add_confirming_state.py @@ -4,39 +4,39 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0007_star_performancealert'), + ("perf", "0007_star_performancealert"), ] operations = [ migrations.AlterField( - model_name='performancealert', - name='status', + model_name="performancealert", + name="status", field=models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (2, 'Reassigned'), - (3, 'Invalid'), - (4, 'Acknowledged'), - (5, 'Confirming'), + (0, "Untriaged"), + (1, "Downstream"), + (2, "Reassigned"), + (3, "Invalid"), + (4, "Acknowledged"), + (5, "Confirming"), ], default=0, ), ), migrations.AlterField( - model_name='performancealertsummary', - name='status', + model_name="performancealertsummary", + name="status", field=models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (3, 'Invalid'), - (4, 'Improvement'), - (5, 'Investigating'), + (0, "Untriaged"), + (1, "Downstream"), + (3, "Invalid"), + (4, "Improvement"), + (5, "Investigating"), (6, "Won't fix"), - (7, 'Fixed'), - (8, 'Backed out'), - (9, 'Confirming'), + (7, "Fixed"), + (8, "Backed out"), + (9, "Confirming"), ], default=0, ), diff --git a/treeherder/perf/migrations/0009_non_nullable_issue_tracker.py b/treeherder/perf/migrations/0009_non_nullable_issue_tracker.py index ee464f47305..83134dc4ccb 100644 --- a/treeherder/perf/migrations/0009_non_nullable_issue_tracker.py +++ b/treeherder/perf/migrations/0009_non_nullable_issue_tracker.py @@ -5,15 +5,15 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0008_add_confirming_state'), + ("perf", "0008_add_confirming_state"), ] operations = [ migrations.AlterField( - model_name='performancealertsummary', - name='issue_tracker', + model_name="performancealertsummary", + name="issue_tracker", field=models.ForeignKey( - default=1, on_delete=django.db.models.deletion.PROTECT, to='perf.IssueTracker' + default=1, on_delete=django.db.models.deletion.PROTECT, to="perf.IssueTracker" ), ), ] diff --git a/treeherder/perf/migrations/0010_fix_signature_uniqueness.py b/treeherder/perf/migrations/0010_fix_signature_uniqueness.py index 1f08d9810fc..cafc03bda73 100644 --- a/treeherder/perf/migrations/0010_fix_signature_uniqueness.py +++ b/treeherder/perf/migrations/0010_fix_signature_uniqueness.py @@ -4,26 +4,26 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0010_remove_runnable_job'), - ('perf', '0009_non_nullable_issue_tracker'), + ("model", "0010_remove_runnable_job"), + ("perf", "0009_non_nullable_issue_tracker"), ] operations = [ migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together=set( [ ( - 'repository', - 'framework', - 'platform', - 'option_collection', - 'suite', - 'test', - 'last_updated', - 'extra_options', + "repository", + "framework", + "platform", + "option_collection", + "suite", + "test", + "last_updated", + "extra_options", ), - ('repository', 'framework', 'signature_hash'), + ("repository", "framework", "signature_hash"), ] ), ), diff --git a/treeherder/perf/migrations/0011_inc_extra_options_length.py b/treeherder/perf/migrations/0011_inc_extra_options_length.py index 5549922fd78..8e8885ca34d 100644 --- a/treeherder/perf/migrations/0011_inc_extra_options_length.py +++ b/treeherder/perf/migrations/0011_inc_extra_options_length.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0010_fix_signature_uniqueness'), + ("perf", "0010_fix_signature_uniqueness"), ] operations = [ migrations.AlterField( - model_name='performancesignature', - name='extra_options', + model_name="performancesignature", + name="extra_options", field=models.CharField(blank=True, max_length=360), ), ] diff --git a/treeherder/perf/migrations/0012_rename_summary_last_updated.py b/treeherder/perf/migrations/0012_rename_summary_last_updated.py index ca3ff0302fc..40fb0d7fc2f 100644 --- a/treeherder/perf/migrations/0012_rename_summary_last_updated.py +++ b/treeherder/perf/migrations/0012_rename_summary_last_updated.py @@ -4,13 +4,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0011_inc_extra_options_length'), + ("perf", "0011_inc_extra_options_length"), ] operations = [ migrations.RenameField( - model_name='performancealertsummary', - old_name='last_updated', - new_name='created', + model_name="performancealertsummary", + old_name="last_updated", + new_name="created", ), ] diff --git a/treeherder/perf/migrations/0013_add_alert_timestamps.py b/treeherder/perf/migrations/0013_add_alert_timestamps.py index a4038c2d5d7..c62a9f1296f 100644 --- a/treeherder/perf/migrations/0013_add_alert_timestamps.py +++ b/treeherder/perf/migrations/0013_add_alert_timestamps.py @@ -5,53 +5,53 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0012_rename_summary_last_updated'), + ("perf", "0012_rename_summary_last_updated"), ] operations = [ migrations.AddField( - model_name='performancealert', - name='created', + model_name="performancealert", + name="created", field=models.DateTimeField(null=True), ), migrations.AlterField( - model_name='performancealert', - name='created', + model_name="performancealert", + name="created", field=models.DateTimeField(auto_now_add=True, null=True), ), migrations.AddField( - model_name='performancealert', - name='first_triaged', + model_name="performancealert", + name="first_triaged", field=models.DateTimeField(default=None, null=True), ), migrations.AddField( - model_name='performancealert', - name='last_updated', + model_name="performancealert", + name="last_updated", field=models.DateTimeField(null=True), ), migrations.AlterField( - model_name='performancealert', - name='last_updated', + model_name="performancealert", + name="last_updated", field=models.DateTimeField(auto_now=True, null=True), ), migrations.AlterField( - model_name='performancealertsummary', - name='created', + model_name="performancealertsummary", + name="created", field=models.DateTimeField(auto_now_add=True, db_index=True), ), migrations.AddField( - model_name='performancealertsummary', - name='first_triaged', + model_name="performancealertsummary", + name="first_triaged", field=models.DateTimeField(default=None, null=True), ), migrations.AddField( - model_name='performancealertsummary', - name='last_updated', + model_name="performancealertsummary", + name="last_updated", field=models.DateTimeField(null=True), ), migrations.AlterField( - model_name='performancealertsummary', - name='last_updated', + model_name="performancealertsummary", + name="last_updated", field=models.DateTimeField(auto_now=True, null=True), ), ] diff --git a/treeherder/perf/migrations/0014_add_performance_datum_idx.py b/treeherder/perf/migrations/0014_add_performance_datum_idx.py index 7a006042bc9..62ebde777e2 100644 --- a/treeherder/perf/migrations/0014_add_performance_datum_idx.py +++ b/treeherder/perf/migrations/0014_add_performance_datum_idx.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0013_add_alert_timestamps'), + ("perf", "0013_add_alert_timestamps"), ] operations = [ migrations.AlterField( - model_name='performancedatum', - name='push_timestamp', + model_name="performancedatum", + name="push_timestamp", field=models.DateTimeField(db_index=True), ), ] diff --git a/treeherder/perf/migrations/0015_add_bug_updated_field.py b/treeherder/perf/migrations/0015_add_bug_updated_field.py index 56fbeebaad5..cc7454bd025 100644 --- a/treeherder/perf/migrations/0015_add_bug_updated_field.py +++ b/treeherder/perf/migrations/0015_add_bug_updated_field.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0014_add_performance_datum_idx'), + ("perf", "0014_add_performance_datum_idx"), ] operations = [ migrations.AddField( - model_name='performancealertsummary', - name='bug_updated', + model_name="performancealertsummary", + name="bug_updated", field=models.DateTimeField(null=True), ), ] diff --git a/treeherder/perf/migrations/0016_modify_alertsummary_status_choices.py b/treeherder/perf/migrations/0016_modify_alertsummary_status_choices.py index 6b114696652..52a6bb1b97a 100644 --- a/treeherder/perf/migrations/0016_modify_alertsummary_status_choices.py +++ b/treeherder/perf/migrations/0016_modify_alertsummary_status_choices.py @@ -5,25 +5,25 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0015_add_bug_updated_field'), + ("perf", "0015_add_bug_updated_field"), ] operations = [ migrations.AlterField( - model_name='performancealertsummary', - name='status', + model_name="performancealertsummary", + name="status", field=models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (2, 'Reassigned'), - (3, 'Invalid'), - (4, 'Improvement'), - (5, 'Investigating'), + (0, "Untriaged"), + (1, "Downstream"), + (2, "Reassigned"), + (3, "Invalid"), + (4, "Improvement"), + (5, "Investigating"), (6, "Won't fix"), - (7, 'Fixed'), - (8, 'Backed out'), - (9, 'Confirming'), + (7, "Fixed"), + (8, "Backed out"), + (9, "Confirming"), ], default=0, ), diff --git a/treeherder/perf/migrations/0017_assignment_support_for_alert_summaries.py b/treeherder/perf/migrations/0017_assignment_support_for_alert_summaries.py index e4faad70014..8acafbb17eb 100644 --- a/treeherder/perf/migrations/0017_assignment_support_for_alert_summaries.py +++ b/treeherder/perf/migrations/0017_assignment_support_for_alert_summaries.py @@ -8,17 +8,17 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('perf', '0016_modify_alertsummary_status_choices'), + ("perf", "0016_modify_alertsummary_status_choices"), ] operations = [ migrations.AddField( - model_name='performancealertsummary', - name='assignee', + model_name="performancealertsummary", + name="assignee", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name='assigned_alerts', + related_name="assigned_alerts", to=settings.AUTH_USER_MODEL, ), ), diff --git a/treeherder/perf/migrations/0018_add_measurement_units.py b/treeherder/perf/migrations/0018_add_measurement_units.py index d24a4d28341..dfce0972415 100644 --- a/treeherder/perf/migrations/0018_add_measurement_units.py +++ b/treeherder/perf/migrations/0018_add_measurement_units.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0017_assignment_support_for_alert_summaries'), + ("perf", "0017_assignment_support_for_alert_summaries"), ] operations = [ migrations.AddField( - model_name='performancesignature', - name='measurement_unit', + model_name="performancesignature", + name="measurement_unit", field=models.CharField(max_length=50, null=True), ), ] diff --git a/treeherder/perf/migrations/0019_remove_confirming_state.py b/treeherder/perf/migrations/0019_remove_confirming_state.py index 07a9a3d5a13..5843f063754 100644 --- a/treeherder/perf/migrations/0019_remove_confirming_state.py +++ b/treeherder/perf/migrations/0019_remove_confirming_state.py @@ -5,38 +5,38 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0018_add_measurement_units'), + ("perf", "0018_add_measurement_units"), ] operations = [ migrations.AlterField( - model_name='performancealert', - name='status', + model_name="performancealert", + name="status", field=models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (2, 'Reassigned'), - (3, 'Invalid'), - (4, 'Acknowledged'), + (0, "Untriaged"), + (1, "Downstream"), + (2, "Reassigned"), + (3, "Invalid"), + (4, "Acknowledged"), ], default=0, ), ), migrations.AlterField( - model_name='performancealertsummary', - name='status', + model_name="performancealertsummary", + name="status", field=models.IntegerField( choices=[ - (0, 'Untriaged'), - (1, 'Downstream'), - (2, 'Reassigned'), - (3, 'Invalid'), - (4, 'Improvement'), - (5, 'Investigating'), + (0, "Untriaged"), + (1, "Downstream"), + (2, "Reassigned"), + (3, "Invalid"), + (4, "Improvement"), + (5, "Investigating"), (6, "Won't fix"), - (7, 'Fixed'), - (8, 'Backed out'), + (7, "Fixed"), + (8, "Backed out"), ], default=0, ), diff --git a/treeherder/perf/migrations/0020_add_application_field.py b/treeherder/perf/migrations/0020_add_application_field.py index 714e6d19d4b..810c5d26426 100644 --- a/treeherder/perf/migrations/0020_add_application_field.py +++ b/treeherder/perf/migrations/0020_add_application_field.py @@ -5,14 +5,14 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0015_add_repository_tc_root_url'), - ('perf', '0019_remove_confirming_state'), + ("model", "0015_add_repository_tc_root_url"), + ("perf", "0019_remove_confirming_state"), ] operations = [ migrations.AddField( - model_name='performancesignature', - name='application', + model_name="performancesignature", + name="application", field=models.CharField( help_text="Application that runs the signature's tests. Generally used to record browser's name, but not necessarily.", max_length=10, @@ -20,19 +20,19 @@ class Migration(migrations.Migration): ), ), migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together={ - ('repository', 'framework', 'signature_hash'), + ("repository", "framework", "signature_hash"), ( - 'repository', - 'suite', - 'test', - 'framework', - 'application', - 'platform', - 'option_collection', - 'extra_options', - 'last_updated', + "repository", + "suite", + "test", + "framework", + "application", + "platform", + "option_collection", + "extra_options", + "last_updated", ), }, ), diff --git a/treeherder/perf/migrations/0021_remove_application_from_constraint.py b/treeherder/perf/migrations/0021_remove_application_from_constraint.py index 5120b5be75b..eda19ec2ac4 100644 --- a/treeherder/perf/migrations/0021_remove_application_from_constraint.py +++ b/treeherder/perf/migrations/0021_remove_application_from_constraint.py @@ -5,24 +5,24 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0015_add_repository_tc_root_url'), - ('perf', '0020_add_application_field'), + ("model", "0015_add_repository_tc_root_url"), + ("perf", "0020_add_application_field"), ] operations = [ migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together={ - ('repository', 'framework', 'signature_hash'), + ("repository", "framework", "signature_hash"), ( - 'repository', - 'suite', - 'test', - 'framework', - 'platform', - 'option_collection', - 'extra_options', - 'last_updated', + "repository", + "suite", + "test", + "framework", + "platform", + "option_collection", + "extra_options", + "last_updated", ), }, ), diff --git a/treeherder/perf/migrations/0022_add_test_display_names.py b/treeherder/perf/migrations/0022_add_test_display_names.py index c8e766a0599..0fe0fc522d9 100644 --- a/treeherder/perf/migrations/0022_add_test_display_names.py +++ b/treeherder/perf/migrations/0022_add_test_display_names.py @@ -5,44 +5,44 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0015_add_repository_tc_root_url'), - ('perf', '0021_remove_application_from_constraint'), + ("model", "0015_add_repository_tc_root_url"), + ("perf", "0021_remove_application_from_constraint"), ] operations = [ migrations.AddField( - model_name='performancesignature', - name='suite_public_name', + model_name="performancesignature", + name="suite_public_name", field=models.CharField(max_length=30, null=True), ), migrations.AddField( - model_name='performancesignature', - name='test_public_name', + model_name="performancesignature", + name="test_public_name", field=models.CharField(max_length=30, null=True), ), migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together={ ( - 'repository', - 'suite', - 'test', - 'framework', - 'platform', - 'option_collection', - 'extra_options', - 'last_updated', + "repository", + "suite", + "test", + "framework", + "platform", + "option_collection", + "extra_options", + "last_updated", ), ( - 'repository', - 'suite_public_name', - 'test_public_name', - 'framework', - 'platform', - 'option_collection', - 'extra_options', + "repository", + "suite_public_name", + "test_public_name", + "framework", + "platform", + "option_collection", + "extra_options", ), - ('repository', 'framework', 'signature_hash'), + ("repository", "framework", "signature_hash"), }, ), ] diff --git a/treeherder/perf/migrations/0023_increase_extra_options_size.py b/treeherder/perf/migrations/0023_increase_extra_options_size.py index 9a57096ddfd..37417ebbbd7 100644 --- a/treeherder/perf/migrations/0023_increase_extra_options_size.py +++ b/treeherder/perf/migrations/0023_increase_extra_options_size.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0022_add_test_display_names'), + ("perf", "0022_add_test_display_names"), ] operations = [ migrations.AlterField( - model_name='performancesignature', - name='extra_options', + model_name="performancesignature", + name="extra_options", field=models.CharField(blank=True, max_length=422), ), ] diff --git a/treeherder/perf/migrations/0024_support_backfill_reports.py b/treeherder/perf/migrations/0024_support_backfill_reports.py index 3e15f5552dd..85925b14b70 100644 --- a/treeherder/perf/migrations/0024_support_backfill_reports.py +++ b/treeherder/perf/migrations/0024_support_backfill_reports.py @@ -6,56 +6,56 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0023_increase_extra_options_size'), + ("perf", "0023_increase_extra_options_size"), ] operations = [ migrations.CreateModel( - name='BackfillReport', + name="BackfillReport", fields=[ ( - 'summary', + "summary", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='backfill_report', + related_name="backfill_report", serialize=False, - to='perf.PerformanceAlertSummary', + to="perf.PerformanceAlertSummary", ), ), - ('created', models.DateTimeField(auto_now_add=True)), - ('last_updated', models.DateTimeField(auto_now=True)), + ("created", models.DateTimeField(auto_now_add=True)), + ("last_updated", models.DateTimeField(auto_now=True)), ], options={ - 'db_table': 'backfill_report', + "db_table": "backfill_report", }, ), migrations.CreateModel( - name='BackfillRecord', + name="BackfillRecord", fields=[ ( - 'alert', + "alert", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='backfill_record', + related_name="backfill_record", serialize=False, - to='perf.PerformanceAlert', + to="perf.PerformanceAlert", ), ), - ('context', models.TextField()), - ('created', models.DateTimeField(auto_now_add=True)), + ("context", models.TextField()), + ("created", models.DateTimeField(auto_now_add=True)), ( - 'report', + "report", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - related_name='records', - to='perf.BackfillReport', + related_name="records", + to="perf.BackfillReport", ), ), ], options={ - 'db_table': 'backfill_record', + "db_table": "backfill_record", }, ), ] diff --git a/treeherder/perf/migrations/0025_provide_tag_support.py b/treeherder/perf/migrations/0025_provide_tag_support.py index 8eefb6f0976..21f10e597d8 100644 --- a/treeherder/perf/migrations/0025_provide_tag_support.py +++ b/treeherder/perf/migrations/0025_provide_tag_support.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0024_support_backfill_reports'), + ("perf", "0024_support_backfill_reports"), ] operations = [ migrations.AddField( - model_name='performancesignature', - name='tags', + model_name="performancesignature", + name="tags", field=models.CharField(blank=True, max_length=360), ), ] diff --git a/treeherder/perf/migrations/0026_add_backfill_record_status.py b/treeherder/perf/migrations/0026_add_backfill_record_status.py index 0fbd19aacc1..35e6ea82a28 100644 --- a/treeherder/perf/migrations/0026_add_backfill_record_status.py +++ b/treeherder/perf/migrations/0026_add_backfill_record_status.py @@ -5,26 +5,26 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0025_provide_tag_support'), + ("perf", "0025_provide_tag_support"), ] operations = [ migrations.AddField( - model_name='backfillrecord', - name='log_details', + model_name="backfillrecord", + name="log_details", field=models.TextField(default=None), preserve_default=False, ), migrations.AddField( - model_name='backfillrecord', - name='status', + model_name="backfillrecord", + name="status", field=models.IntegerField( choices=[ - (0, 'Preliminary'), - (1, 'Ready for processing'), - (2, 'Backfilled'), - (3, 'Finished'), - (4, 'Failed'), + (0, "Preliminary"), + (1, "Ready for processing"), + (2, "Backfilled"), + (3, "Finished"), + (4, "Failed"), ], default=0, ), diff --git a/treeherder/perf/migrations/0027_support_perfherder_settings.py b/treeherder/perf/migrations/0027_support_perfherder_settings.py index 407749eb05f..0c7f868c121 100644 --- a/treeherder/perf/migrations/0027_support_perfherder_settings.py +++ b/treeherder/perf/migrations/0027_support_perfherder_settings.py @@ -5,19 +5,19 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0026_add_backfill_record_status'), + ("perf", "0026_add_backfill_record_status"), ] operations = [ migrations.CreateModel( - name='PerformanceSettings', + name="PerformanceSettings", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=255)), - ('settings', models.TextField()), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=255)), + ("settings", models.TextField()), ], options={ - 'db_table': 'performance_settings', + "db_table": "performance_settings", }, ), ] diff --git a/treeherder/perf/migrations/0028_default_application_to_empty_str.py b/treeherder/perf/migrations/0028_default_application_to_empty_str.py index 2db971b3b8b..53b7a87597c 100644 --- a/treeherder/perf/migrations/0028_default_application_to_empty_str.py +++ b/treeherder/perf/migrations/0028_default_application_to_empty_str.py @@ -5,15 +5,15 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0027_support_perfherder_settings'), + ("perf", "0027_support_perfherder_settings"), ] operations = [ migrations.AlterField( - model_name='performancesignature', - name='application', + model_name="performancesignature", + name="application", field=models.CharField( - default='', + default="", help_text="Application that runs the signature's tests. Generally used to record browser's name, but not necessarily.", max_length=10, ), diff --git a/treeherder/perf/migrations/0029_add_frozen_to_report.py b/treeherder/perf/migrations/0029_add_frozen_to_report.py index ae76e0a3fda..3f598d8612e 100644 --- a/treeherder/perf/migrations/0029_add_frozen_to_report.py +++ b/treeherder/perf/migrations/0029_add_frozen_to_report.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0028_default_application_to_empty_str'), + ("perf", "0028_default_application_to_empty_str"), ] operations = [ migrations.AddField( - model_name='backfillreport', - name='frozen', + model_name="backfillreport", + name="frozen", field=models.BooleanField(default=False), ), ] diff --git a/treeherder/perf/migrations/0030_add_application_to_contraints.py b/treeherder/perf/migrations/0030_add_application_to_contraints.py index 514ed09665e..6cdb7df8221 100644 --- a/treeherder/perf/migrations/0030_add_application_to_contraints.py +++ b/treeherder/perf/migrations/0030_add_application_to_contraints.py @@ -5,34 +5,34 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0016_add_index_commit_revision'), - ('perf', '0029_add_frozen_to_report'), + ("model", "0016_add_index_commit_revision"), + ("perf", "0029_add_frozen_to_report"), ] operations = [ migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together={ ( - 'repository', - 'suite', - 'test', - 'framework', - 'platform', - 'option_collection', - 'extra_options', - 'last_updated', - 'application', + "repository", + "suite", + "test", + "framework", + "platform", + "option_collection", + "extra_options", + "last_updated", + "application", ), - ('repository', 'framework', 'signature_hash'), + ("repository", "framework", "signature_hash"), ( - 'repository', - 'suite_public_name', - 'test_public_name', - 'framework', - 'platform', - 'option_collection', - 'extra_options', + "repository", + "suite_public_name", + "test_public_name", + "framework", + "platform", + "option_collection", + "extra_options", ), }, ), diff --git a/treeherder/perf/migrations/0031_fix_application_in_constraints.py b/treeherder/perf/migrations/0031_fix_application_in_constraints.py index f055669231d..c34d1a2236d 100644 --- a/treeherder/perf/migrations/0031_fix_application_in_constraints.py +++ b/treeherder/perf/migrations/0031_fix_application_in_constraints.py @@ -5,35 +5,35 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0017_add_index_task_id'), - ('perf', '0030_add_application_to_contraints'), + ("model", "0017_add_index_task_id"), + ("perf", "0030_add_application_to_contraints"), ] operations = [ migrations.AlterUniqueTogether( - name='performancesignature', + name="performancesignature", unique_together={ ( - 'repository', - 'suite', - 'test', - 'framework', - 'platform', - 'option_collection', - 'extra_options', - 'last_updated', - 'application', + "repository", + "suite", + "test", + "framework", + "platform", + "option_collection", + "extra_options", + "last_updated", + "application", ), ( - 'repository', - 'suite_public_name', - 'test_public_name', - 'framework', - 'platform', - 'option_collection', - 'extra_options', + "repository", + "suite_public_name", + "test_public_name", + "framework", + "platform", + "option_collection", + "extra_options", ), - ('repository', 'framework', 'application', 'signature_hash'), + ("repository", "framework", "application", "signature_hash"), }, ), ] diff --git a/treeherder/perf/migrations/0032_add_performance_tag.py b/treeherder/perf/migrations/0032_add_performance_tag.py index dc3fa1f0f11..8bfcb83819f 100644 --- a/treeherder/perf/migrations/0032_add_performance_tag.py +++ b/treeherder/perf/migrations/0032_add_performance_tag.py @@ -5,24 +5,24 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0031_fix_application_in_constraints'), + ("perf", "0031_fix_application_in_constraints"), ] operations = [ migrations.CreateModel( - name='PerformanceTag', + name="PerformanceTag", fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(max_length=30, unique=True)), + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=30, unique=True)), ( - 'alert_summaries', + "alert_summaries", models.ManyToManyField( - related_name='performance_tags', to='perf.PerformanceAlertSummary' + related_name="performance_tags", to="perf.PerformanceAlertSummary" ), ), ], options={ - 'db_table': 'performance_tag', + "db_table": "performance_tag", }, ), ] diff --git a/treeherder/perf/migrations/0033_permit_multi_data_per_job.py b/treeherder/perf/migrations/0033_permit_multi_data_per_job.py index 785012d8dd7..e6a83cfe6ee 100644 --- a/treeherder/perf/migrations/0033_permit_multi_data_per_job.py +++ b/treeherder/perf/migrations/0033_permit_multi_data_per_job.py @@ -6,28 +6,28 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0020_textlogerror_job'), - ('perf', '0032_add_performance_tag'), + ("model", "0020_textlogerror_job"), + ("perf", "0032_add_performance_tag"), ] operations = [ migrations.CreateModel( - name='MultiCommitDatum', + name="MultiCommitDatum", fields=[ ( - 'perf_datum', + "perf_datum", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='multi_commit_datum', + related_name="multi_commit_datum", serialize=False, - to='perf.PerformanceDatum', + to="perf.PerformanceDatum", ), ), ], ), migrations.AlterUniqueTogether( - name='performancedatum', - unique_together={('repository', 'job', 'push', 'push_timestamp', 'signature')}, + name="performancedatum", + unique_together={("repository", "job", "push", "push_timestamp", "signature")}, ), ] diff --git a/treeherder/perf/migrations/0034_remove_performancedatum_fields.py b/treeherder/perf/migrations/0034_remove_performancedatum_fields.py index 8ee65cbd94f..a82faa7a29c 100644 --- a/treeherder/perf/migrations/0034_remove_performancedatum_fields.py +++ b/treeherder/perf/migrations/0034_remove_performancedatum_fields.py @@ -5,16 +5,16 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0033_permit_multi_data_per_job'), + ("perf", "0033_permit_multi_data_per_job"), ] operations = [ migrations.RemoveField( - model_name='performancedatum', - name='ds_job_id', + model_name="performancedatum", + name="ds_job_id", ), migrations.RemoveField( - model_name='performancedatum', - name='result_set_id', + model_name="performancedatum", + name="result_set_id", ), ] diff --git a/treeherder/perf/migrations/0035_fix_deprecated_nullboolean_field.py b/treeherder/perf/migrations/0035_fix_deprecated_nullboolean_field.py index 63cec2e8d48..2aa9ef19e15 100644 --- a/treeherder/perf/migrations/0035_fix_deprecated_nullboolean_field.py +++ b/treeherder/perf/migrations/0035_fix_deprecated_nullboolean_field.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0034_remove_performancedatum_fields'), + ("perf", "0034_remove_performancedatum_fields"), ] operations = [ migrations.AlterField( - model_name='performancesignature', - name='should_alert', + model_name="performancesignature", + name="should_alert", field=models.BooleanField(null=True), ), ] diff --git a/treeherder/perf/migrations/0036_cascade_perf_datum_deletion.py b/treeherder/perf/migrations/0036_cascade_perf_datum_deletion.py index cbd6813e8e7..86811e21976 100644 --- a/treeherder/perf/migrations/0036_cascade_perf_datum_deletion.py +++ b/treeherder/perf/migrations/0036_cascade_perf_datum_deletion.py @@ -2,31 +2,31 @@ from django.db import migrations -MULTICOMMIT_CONSTRAINT_SYMBOL = 'perf_multicommitdatu_perf_datum_id_c2d7eb14_fk_performan' +MULTICOMMIT_CONSTRAINT_SYMBOL = "perf_multicommitdatu_perf_datum_id_c2d7eb14_fk_performan" class Migration(migrations.Migration): dependencies = [ - ('perf', '0035_fix_deprecated_nullboolean_field'), + ("perf", "0035_fix_deprecated_nullboolean_field"), ] operations = [ migrations.RunSQL( # add ON DELETE CASCADE at database level [ - f'ALTER TABLE perf_multicommitdatum ' - f'DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};', - f'ALTER TABLE perf_multicommitdatum ' - f'ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;', + f"ALTER TABLE perf_multicommitdatum " + f"DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};", + f"ALTER TABLE perf_multicommitdatum " + f"ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;", ], # put back the non-CASCADE foreign key constraint reverse_sql=[ - f'ALTER TABLE perf_multicommitdatum ' - f'DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};', - f'ALTER TABLE perf_multicommitdatum ' - f'ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID);', + f"ALTER TABLE perf_multicommitdatum " + f"DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};", + f"ALTER TABLE perf_multicommitdatum " + f"ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID);", ], ) ] diff --git a/treeherder/perf/migrations/0037_extend_backfill_record.py b/treeherder/perf/migrations/0037_extend_backfill_record.py index 2285cfd8610..dcb5963ca05 100644 --- a/treeherder/perf/migrations/0037_extend_backfill_record.py +++ b/treeherder/perf/migrations/0037_extend_backfill_record.py @@ -6,24 +6,24 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0022_support_group_status'), - ('perf', '0036_cascade_perf_datum_deletion'), + ("model", "0022_support_group_status"), + ("perf", "0036_cascade_perf_datum_deletion"), ] operations = [ migrations.AddField( - model_name='backfillrecord', - name='job_type', + model_name="backfillrecord", + name="job_type", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name='backfill_records', - to='model.jobtype', + related_name="backfill_records", + to="model.jobtype", ), ), migrations.AddField( - model_name='backfillrecord', - name='total_backfills_triggered', + model_name="backfillrecord", + name="total_backfills_triggered", field=models.IntegerField(default=0), ), ] diff --git a/treeherder/perf/migrations/0038_update_record_status.py b/treeherder/perf/migrations/0038_update_record_status.py index e3e7fe1d571..f9a2f92dee5 100644 --- a/treeherder/perf/migrations/0038_update_record_status.py +++ b/treeherder/perf/migrations/0038_update_record_status.py @@ -5,20 +5,20 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0037_extend_backfill_record'), + ("perf", "0037_extend_backfill_record"), ] operations = [ migrations.AlterField( - model_name='backfillrecord', - name='status', + model_name="backfillrecord", + name="status", field=models.IntegerField( choices=[ - (0, 'Preliminary'), - (1, 'Ready for processing'), - (2, 'Backfilled'), - (3, 'Successful'), - (4, 'Failed'), + (0, "Preliminary"), + (1, "Ready for processing"), + (2, "Backfilled"), + (3, "Successful"), + (4, "Failed"), ], default=0, ), diff --git a/treeherder/perf/migrations/0039_store_more_job_details_on_record.py b/treeherder/perf/migrations/0039_store_more_job_details_on_record.py index 5a5236a0513..79155d18d77 100644 --- a/treeherder/perf/migrations/0039_store_more_job_details_on_record.py +++ b/treeherder/perf/migrations/0039_store_more_job_details_on_record.py @@ -6,29 +6,29 @@ class Migration(migrations.Migration): dependencies = [ - ('model', '0022_support_group_status'), - ('perf', '0038_update_record_status'), + ("model", "0022_support_group_status"), + ("perf", "0038_update_record_status"), ] operations = [ migrations.AddField( - model_name='backfillrecord', - name='job_group', + model_name="backfillrecord", + name="job_group", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name='backfill_records', - to='model.jobgroup', + related_name="backfill_records", + to="model.jobgroup", ), ), migrations.AddField( - model_name='backfillrecord', - name='job_platform_option', + model_name="backfillrecord", + name="job_platform_option", field=models.CharField(max_length=100, null=True), ), migrations.AddField( - model_name='backfillrecord', - name='job_tier', + model_name="backfillrecord", + name="job_tier", field=models.PositiveIntegerField(null=True), ), ] diff --git a/treeherder/perf/migrations/0040_performancealert_noise_profile.py b/treeherder/perf/migrations/0040_performancealert_noise_profile.py index b9cf4eafbab..9c496aa1761 100644 --- a/treeherder/perf/migrations/0040_performancealert_noise_profile.py +++ b/treeherder/perf/migrations/0040_performancealert_noise_profile.py @@ -5,29 +5,29 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0039_store_more_job_details_on_record'), + ("perf", "0039_store_more_job_details_on_record"), ] operations = [ migrations.AddField( - model_name='performancealert', - name='noise_profile', + model_name="performancealert", + name="noise_profile", field=models.CharField( choices=[ - ('SKEWED', 'Samples are heavily found on one side of the mean.'), + ("SKEWED", "Samples are heavily found on one side of the mean."), ( - 'OUTLIERS', - 'There are more outliers than should be expected from a normal distribution.', + "OUTLIERS", + "There are more outliers than should be expected from a normal distribution.", ), ( - 'MODAL', - 'There are multiple areas where most values are found rather than only one.', + "MODAL", + "There are multiple areas where most values are found rather than only one.", ), - ('OK', 'No issues were found.'), - ('N/A', 'Could not compute a noise profile.'), + ("OK", "No issues were found."), + ("N/A", "Could not compute a noise profile."), ], - default='N/A', - help_text='The noise profile of the data which precedes this alert.', + default="N/A", + help_text="The noise profile of the data which precedes this alert.", max_length=30, ), ), diff --git a/treeherder/perf/migrations/0041_backfillnotificationrecord.py b/treeherder/perf/migrations/0041_backfillnotificationrecord.py index 243ffa19c46..cf75279bd24 100644 --- a/treeherder/perf/migrations/0041_backfillnotificationrecord.py +++ b/treeherder/perf/migrations/0041_backfillnotificationrecord.py @@ -6,32 +6,32 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0040_performancealert_noise_profile'), + ("perf", "0040_performancealert_noise_profile"), ] operations = [ migrations.CreateModel( - name='BackfillNotificationRecord', + name="BackfillNotificationRecord", fields=[ ( - 'id', + "id", models.AutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name='ID' + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), - ('created', models.DateTimeField(auto_now_add=True)), - ('last_updated', models.DateTimeField(auto_now=True)), + ("created", models.DateTimeField(auto_now_add=True)), + ("last_updated", models.DateTimeField(auto_now=True)), ( - 'record', + "record", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, - related_name='backfill_notification_record', - to='perf.backfillrecord', + related_name="backfill_notification_record", + to="perf.backfillrecord", ), ), ], options={ - 'db_table': 'backfill_notification_record', + "db_table": "backfill_notification_record", }, ), ] diff --git a/treeherder/perf/migrations/0042_backfillrecord_new_fields.py b/treeherder/perf/migrations/0042_backfillrecord_new_fields.py index 43bb0ec06a1..7f7824ade24 100644 --- a/treeherder/perf/migrations/0042_backfillrecord_new_fields.py +++ b/treeherder/perf/migrations/0042_backfillrecord_new_fields.py @@ -5,28 +5,28 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0041_backfillnotificationrecord'), + ("perf", "0041_backfillnotificationrecord"), ] operations = [ migrations.RenameField( - model_name='backfillrecord', - old_name='total_backfills_triggered', - new_name='total_actions_triggered', + model_name="backfillrecord", + old_name="total_backfills_triggered", + new_name="total_actions_triggered", ), migrations.AddField( - model_name='backfillrecord', - name='total_backfills_failed', + model_name="backfillrecord", + name="total_backfills_failed", field=models.IntegerField(default=0), ), migrations.AddField( - model_name='backfillrecord', - name='total_backfills_in_progress', + model_name="backfillrecord", + name="total_backfills_in_progress", field=models.IntegerField(default=0), ), migrations.AddField( - model_name='backfillrecord', - name='total_backfills_successful', + model_name="backfillrecord", + name="total_backfills_successful", field=models.IntegerField(default=0), ), ] diff --git a/treeherder/perf/migrations/0043_drop_multicommitdatum.py b/treeherder/perf/migrations/0043_drop_multicommitdatum.py index cbc92dadada..3c8468a4c0b 100644 --- a/treeherder/perf/migrations/0043_drop_multicommitdatum.py +++ b/treeherder/perf/migrations/0043_drop_multicommitdatum.py @@ -2,7 +2,7 @@ def check_no_multicommitdatum(apps, schema_editor): - MultiCommitDatum = apps.get_model('perf', 'MultiCommitDatum') + MultiCommitDatum = apps.get_model("perf", "MultiCommitDatum") assert ( not MultiCommitDatum.objects.exists() ), "MultiCommitDatum table must be empty to migrate PerformanceDatum PK" @@ -16,7 +16,7 @@ class Migration(migrations.Migration): """ dependencies = [ - ('perf', '0042_backfillrecord_new_fields'), + ("perf", "0042_backfillrecord_new_fields"), ] operations = [ @@ -25,6 +25,6 @@ class Migration(migrations.Migration): reverse_code=migrations.RunPython.noop, ), migrations.DeleteModel( - name='MultiCommitDatum', + name="MultiCommitDatum", ), ] diff --git a/treeherder/perf/migrations/0044_perfdatum_bigint_fk.py b/treeherder/perf/migrations/0044_perfdatum_bigint_fk.py index 7d1e0538de2..274359dd320 100644 --- a/treeherder/perf/migrations/0044_perfdatum_bigint_fk.py +++ b/treeherder/perf/migrations/0044_perfdatum_bigint_fk.py @@ -2,11 +2,12 @@ On large tables or production environment, it is recommanded to use an external tool (e.g. pt-osc) to update the column and fake this migration. Migration perf.0045 will restore a valid django's schema. """ + from django.db import connection, migrations def alter_perfdatum_pk(apps, schema_editor): - PerformanceDatum = apps.get_model('perf', 'PerformanceDatum') + PerformanceDatum = apps.get_model("perf", "PerformanceDatum") pursue = "yes" # Automatically pursue migration if performance_datum table is empty # This is useful for scenarios running initial migration like tests @@ -15,7 +16,7 @@ def alter_perfdatum_pk(apps, schema_editor): "This operation will ALTER performance_datum PK to BIGINT(20). It is recommended to use an external tool " "(e.g. pt-osc) on large tables. Do you want to continue ? [Y/n]" ) - if pursue.lower() not in ('', 'y', 'yes'): + if pursue.lower() not in ("", "y", "yes"): raise Exception("Aborting…") with connection.cursor() as cursor: cursor.execute("ALTER TABLE performance_datum ALTER COLUMN id TYPE BIGINT using id::bigint") @@ -24,7 +25,7 @@ def alter_perfdatum_pk(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('perf', '0043_drop_multicommitdatum'), + ("perf", "0043_drop_multicommitdatum"), ] operations = [ diff --git a/treeherder/perf/migrations/0045_restore_perf_multicommitdatum_and_schema.py b/treeherder/perf/migrations/0045_restore_perf_multicommitdatum_and_schema.py index 81dab1da458..78d5309faa7 100644 --- a/treeherder/perf/migrations/0045_restore_perf_multicommitdatum_and_schema.py +++ b/treeherder/perf/migrations/0045_restore_perf_multicommitdatum_and_schema.py @@ -8,7 +8,7 @@ class Migration(migrations.Migration): """ dependencies = [ - ('perf', '0044_perfdatum_bigint_fk'), + ("perf", "0044_perfdatum_bigint_fk"), ] operations = [ @@ -17,24 +17,24 @@ class Migration(migrations.Migration): migrations.RunSQL.noop, state_operations=[ migrations.AlterField( - model_name='performancedatum', - name='id', + model_name="performancedatum", + name="id", field=models.BigAutoField(primary_key=True, serialize=False), ), ], ), # Restore MultiCommitDatum FK to PerformanceDatum migrations.CreateModel( - name='MultiCommitDatum', + name="MultiCommitDatum", fields=[ ( - 'perf_datum', + "perf_datum", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, - related_name='multi_commit_datum', + related_name="multi_commit_datum", serialize=False, - to='perf.performancedatum', + to="perf.performancedatum", ), ), ], diff --git a/treeherder/perf/migrations/0046_restore_cascade_perf_datum_deletion.py b/treeherder/perf/migrations/0046_restore_cascade_perf_datum_deletion.py index 5d0b7f8261d..a5d2c36e0e8 100644 --- a/treeherder/perf/migrations/0046_restore_cascade_perf_datum_deletion.py +++ b/treeherder/perf/migrations/0046_restore_cascade_perf_datum_deletion.py @@ -1,33 +1,34 @@ """This migration is a copy of perf.0036_cascade_perf_datum_deletion It restores the DB side CASCADE deletion behavior for perf_multicommitdatum table toward performance_datum """ + from django.db import migrations -MULTICOMMIT_CONSTRAINT_SYMBOL = 'perf_multicommitdatu_perf_datum_id_c2d7eb14_fk_performan' +MULTICOMMIT_CONSTRAINT_SYMBOL = "perf_multicommitdatu_perf_datum_id_c2d7eb14_fk_performan" class Migration(migrations.Migration): dependencies = [ - ('perf', '0045_restore_perf_multicommitdatum_and_schema'), + ("perf", "0045_restore_perf_multicommitdatum_and_schema"), ] operations = [ migrations.RunSQL( # add ON DELETE CASCADE at database level [ - f'ALTER TABLE perf_multicommitdatum ' - f'DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};', - f'ALTER TABLE perf_multicommitdatum ' - f'ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;', + f"ALTER TABLE perf_multicommitdatum " + f"DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};", + f"ALTER TABLE perf_multicommitdatum " + f"ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;", ], # put back the non-CASCADE foreign key constraint reverse_sql=[ - f'ALTER TABLE perf_multicommitdatum ' - f'DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};', - f'ALTER TABLE perf_multicommitdatum ' - f'ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID);', + f"ALTER TABLE perf_multicommitdatum " + f"DROP CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL};", + f"ALTER TABLE perf_multicommitdatum " + f"ADD CONSTRAINT {MULTICOMMIT_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (perf_datum_id) REFERENCES performance_datum (ID);", ], ) ] diff --git a/treeherder/perf/migrations/0047_performancealertsummary_triage_due.py b/treeherder/perf/migrations/0047_performancealertsummary_triage_due.py index 8847a369830..fd0374bbbf1 100644 --- a/treeherder/perf/migrations/0047_performancealertsummary_triage_due.py +++ b/treeherder/perf/migrations/0047_performancealertsummary_triage_due.py @@ -5,7 +5,7 @@ def update_summary_triage_due_date(apps, schema_editor): - PerformanceAlertSummary = apps.get_model('perf', 'PerformanceAlertSummary') + PerformanceAlertSummary = apps.get_model("perf", "PerformanceAlertSummary") for row in PerformanceAlertSummary.objects.all(): row.triage_due_date = calculate_time_to(row.created, due_days=TRIAGE_DAYS) @@ -14,13 +14,13 @@ def update_summary_triage_due_date(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('perf', '0046_restore_cascade_perf_datum_deletion'), + ("perf", "0046_restore_cascade_perf_datum_deletion"), ] operations = [ migrations.AddField( - model_name='performancealertsummary', - name='triage_due_date', + model_name="performancealertsummary", + name="triage_due_date", field=models.DateTimeField(default=None, null=True), ), migrations.RunPython( diff --git a/treeherder/perf/migrations/0048_performancedatum_application_version.py b/treeherder/perf/migrations/0048_performancedatum_application_version.py index b834ef4aac9..10ac7c4bf7c 100644 --- a/treeherder/perf/migrations/0048_performancedatum_application_version.py +++ b/treeherder/perf/migrations/0048_performancedatum_application_version.py @@ -5,13 +5,13 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0047_performancealertsummary_triage_due'), + ("perf", "0047_performancealertsummary_triage_due"), ] operations = [ migrations.AddField( - model_name='performancedatum', - name='application_version', + model_name="performancedatum", + name="application_version", field=models.CharField(blank=True, max_length=50), ), ] diff --git a/treeherder/perf/migrations/0049_performancedatumreplicate.py b/treeherder/perf/migrations/0049_performancedatumreplicate.py index 0f8fbb58acf..ee6f65a9320 100644 --- a/treeherder/perf/migrations/0049_performancedatumreplicate.py +++ b/treeherder/perf/migrations/0049_performancedatumreplicate.py @@ -6,24 +6,24 @@ class Migration(migrations.Migration): dependencies = [ - ('perf', '0048_performancedatum_application_version'), + ("perf", "0048_performancedatum_application_version"), ] operations = [ migrations.CreateModel( - name='PerformanceDatumReplicate', + name="PerformanceDatumReplicate", fields=[ - ('id', models.BigAutoField(primary_key=True, serialize=False)), - ('value', models.FloatField()), + ("id", models.BigAutoField(primary_key=True, serialize=False)), + ("value", models.FloatField()), ( - 'performance_datum', + "performance_datum", models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='perf.performancedatum' + on_delete=django.db.models.deletion.CASCADE, to="perf.performancedatum" ), ), ], options={ - 'db_table': 'performance_datum_replicate', + "db_table": "performance_datum_replicate", }, ), ] diff --git a/treeherder/perf/migrations/0050_cascade_perf_datum_deletion_replicate.py b/treeherder/perf/migrations/0050_cascade_perf_datum_deletion_replicate.py index 68e5ec26c6a..1e650950534 100644 --- a/treeherder/perf/migrations/0050_cascade_perf_datum_deletion_replicate.py +++ b/treeherder/perf/migrations/0050_cascade_perf_datum_deletion_replicate.py @@ -3,32 +3,32 @@ from django.db import migrations DATUM_REPLICATE_CONSTRAINT_SYMBOL = ( - 'performance_datum_re_performance_datum_id_fe2ed518_fk_performan' + "performance_datum_re_performance_datum_id_fe2ed518_fk_performan" ) class Migration(migrations.Migration): dependencies = [ - ('perf', '0049_performancedatumreplicate'), + ("perf", "0049_performancedatumreplicate"), ] operations = [ migrations.RunSQL( # add ON DELETE CASCADE at database level [ - f'ALTER TABLE performance_datum_replicate ' - f'DROP CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL};', - f'ALTER TABLE performance_datum_replicate ' - f'ADD CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (performance_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;', + f"ALTER TABLE performance_datum_replicate " + f"DROP CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL};", + f"ALTER TABLE performance_datum_replicate " + f"ADD CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (performance_datum_id) REFERENCES performance_datum (ID) ON DELETE CASCADE;", ], # put back the non-CASCADE foreign key constraint reverse_sql=[ - f'ALTER TABLE performance_datum_replicate ' - f'DROP CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL};', - f'ALTER TABLE performance_datum_replicate ' - f'ADD CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL} ' - f'FOREIGN KEY (performance_datum_id) REFERENCES performance_datum (ID);', + f"ALTER TABLE performance_datum_replicate " + f"DROP CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL};", + f"ALTER TABLE performance_datum_replicate " + f"ADD CONSTRAINT {DATUM_REPLICATE_CONSTRAINT_SYMBOL} " + f"FOREIGN KEY (performance_datum_id) REFERENCES performance_datum (ID);", ], ) ] diff --git a/treeherder/perf/migrations/0051_performancealertsummary_bug_due_date.py b/treeherder/perf/migrations/0051_performancealertsummary_bug_due_date.py index a18a38e156f..9505641d40a 100644 --- a/treeherder/perf/migrations/0051_performancealertsummary_bug_due_date.py +++ b/treeherder/perf/migrations/0051_performancealertsummary_bug_due_date.py @@ -6,7 +6,7 @@ def update_summary_bug_due_date(apps, schema_editor): - PerformanceAlertSummary = apps.get_model('perf', 'PerformanceAlertSummary') + PerformanceAlertSummary = apps.get_model("perf", "PerformanceAlertSummary") for row in PerformanceAlertSummary.objects.all(): row.bug_due_date = calculate_time_to(row.created, due_days=BUG_DAYS) @@ -15,13 +15,13 @@ def update_summary_bug_due_date(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('perf', '0050_cascade_perf_datum_deletion_replicate'), + ("perf", "0050_cascade_perf_datum_deletion_replicate"), ] operations = [ migrations.AddField( - model_name='performancealertsummary', - name='bug_due_date', + model_name="performancealertsummary", + name="bug_due_date", field=models.DateTimeField(default=None, null=True), ), migrations.RunPython( diff --git a/treeherder/perf/migrations/0052_rename_performancedatum_repository_signature_push_timestamp_performance_reposit_c9d328_idx_and_more.py b/treeherder/perf/migrations/0052_rename_performancedatum_repository_signature_push_timestamp_performance_reposit_c9d328_idx_and_more.py index 447af9932a0..08e20c66a64 100644 --- a/treeherder/perf/migrations/0052_rename_performancedatum_repository_signature_push_timestamp_performance_reposit_c9d328_idx_and_more.py +++ b/treeherder/perf/migrations/0052_rename_performancedatum_repository_signature_push_timestamp_performance_reposit_c9d328_idx_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0051_performancealertsummary_bug_due_date"), ] diff --git a/treeherder/perf/migrations/0053_performancealertsummarytesting_and_more.py b/treeherder/perf/migrations/0053_performancealertsummarytesting_and_more.py index 7598619ef86..9923d6ec071 100644 --- a/treeherder/perf/migrations/0053_performancealertsummarytesting_and_more.py +++ b/treeherder/perf/migrations/0053_performancealertsummarytesting_and_more.py @@ -6,7 +6,6 @@ class Migration(migrations.Migration): - dependencies = [ ( "model", @@ -127,21 +126,15 @@ class Migration(migrations.Migration): ), ( "amount_pct", - models.FloatField( - help_text="Amount in percentage that series has changed" - ), + models.FloatField(help_text="Amount in percentage that series has changed"), ), ( "amount_abs", - models.FloatField( - help_text="Absolute amount that series has changed" - ), + models.FloatField(help_text="Absolute amount that series has changed"), ), ( "prev_value", - models.FloatField( - help_text="Previous value of series before change" - ), + models.FloatField(help_text="Previous value of series before change"), ), ( "new_value", diff --git a/treeherder/perf/migrations/0054_performancealert_confidence_and_more.py b/treeherder/perf/migrations/0054_performancealert_confidence_and_more.py index f9d0690a09b..a35dfb35050 100644 --- a/treeherder/perf/migrations/0054_performancealert_confidence_and_more.py +++ b/treeherder/perf/migrations/0054_performancealert_confidence_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0053_performancealertsummarytesting_and_more"), ] diff --git a/treeherder/perf/migrations/0055_remove_performancealerttesting_related_summary_and_more.py b/treeherder/perf/migrations/0055_remove_performancealerttesting_related_summary_and_more.py index 69d527715ed..31f17732e4f 100644 --- a/treeherder/perf/migrations/0055_remove_performancealerttesting_related_summary_and_more.py +++ b/treeherder/perf/migrations/0055_remove_performancealerttesting_related_summary_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0054_performancealert_confidence_and_more"), ] diff --git a/treeherder/perf/migrations/0056_performancealertsummary_original_push.py b/treeherder/perf/migrations/0056_performancealertsummary_original_push.py index b418c504ea9..694c8efb98a 100644 --- a/treeherder/perf/migrations/0056_performancealertsummary_original_push.py +++ b/treeherder/perf/migrations/0056_performancealertsummary_original_push.py @@ -5,14 +5,13 @@ def update_summary_original_push(apps, schema_editor): - PerformanceAlertSummary = apps.get_model('perf', 'PerformanceAlertSummary') + PerformanceAlertSummary = apps.get_model("perf", "PerformanceAlertSummary") for alert in PerformanceAlertSummary.objects.all(): alert.original_push = alert.push alert.save() class Migration(migrations.Migration): - dependencies = [ ("perf", "0055_remove_performancealerttesting_related_summary_and_more"), ] diff --git a/treeherder/perf/migrations/0057_performancealert_confidence_and_more.py b/treeherder/perf/migrations/0057_performancealert_confidence_and_more.py index e996f7f19e8..f9e25d0060f 100644 --- a/treeherder/perf/migrations/0057_performancealert_confidence_and_more.py +++ b/treeherder/perf/migrations/0057_performancealert_confidence_and_more.py @@ -6,7 +6,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0035_bugscache_optional_bugzilla_ref"), ("perf", "0056_performancealertsummary_original_push"), @@ -257,9 +256,7 @@ class Migration(migrations.Migration): ], options={ "db_table": "performance_telemetry_signature", - "unique_together": { - ("channel", "probe", "probe_type", "platform", "application") - }, + "unique_together": {("channel", "probe", "probe_type", "platform", "application")}, }, ), migrations.CreateModel( @@ -286,21 +283,15 @@ class Migration(migrations.Migration): ), ( "amount_pct", - models.FloatField( - help_text="Amount in percentage that series has changed" - ), + models.FloatField(help_text="Amount in percentage that series has changed"), ), ( "amount_abs", - models.FloatField( - help_text="Absolute amount that series has changed" - ), + models.FloatField(help_text="Absolute amount that series has changed"), ), ( "prev_value", - models.FloatField( - help_text="Previous value of series before change" - ), + models.FloatField(help_text="Previous value of series before change"), ), ( "new_value", @@ -350,21 +341,15 @@ class Migration(migrations.Migration): ("direction", models.CharField(max_length=100, null=True)), ( "prev_median", - models.FloatField( - help_text="Previous median value of series before change" - ), + models.FloatField(help_text="Previous median value of series before change"), ), ( "new_median", - models.FloatField( - help_text="New median value of series after change" - ), + models.FloatField(help_text="New median value of series after change"), ), ( "prev_p90", - models.FloatField( - help_text="Previous P90 value of series before change" - ), + models.FloatField(help_text="Previous P90 value of series before change"), ), ( "new_p90", @@ -372,9 +357,7 @@ class Migration(migrations.Migration): ), ( "prev_p95", - models.FloatField( - help_text="Previous P95 value of series before change" - ), + models.FloatField(help_text="Previous P95 value of series before change"), ), ( "new_p95", @@ -442,21 +425,15 @@ class Migration(migrations.Migration): ), ( "amount_pct", - models.FloatField( - help_text="Amount in percentage that series has changed" - ), + models.FloatField(help_text="Amount in percentage that series has changed"), ), ( "amount_abs", - models.FloatField( - help_text="Absolute amount that series has changed" - ), + models.FloatField(help_text="Absolute amount that series has changed"), ), ( "prev_value", - models.FloatField( - help_text="Previous value of series before change" - ), + models.FloatField(help_text="Previous value of series before change"), ), ( "new_value", @@ -506,21 +483,15 @@ class Migration(migrations.Migration): ("direction", models.CharField(max_length=100, null=True)), ( "prev_median", - models.FloatField( - help_text="Previous median value of series before change" - ), + models.FloatField(help_text="Previous median value of series before change"), ), ( "new_median", - models.FloatField( - help_text="New median value of series after change" - ), + models.FloatField(help_text="New median value of series after change"), ), ( "prev_p90", - models.FloatField( - help_text="Previous P90 value of series before change" - ), + models.FloatField(help_text="Previous P90 value of series before change"), ), ( "new_p90", @@ -528,9 +499,7 @@ class Migration(migrations.Migration): ), ( "prev_p95", - models.FloatField( - help_text="Previous P95 value of series before change" - ), + models.FloatField(help_text="Previous P95 value of series before change"), ), ( "new_p95", diff --git a/treeherder/perf/migrations/0058_performancealertsummary_original_prev_push_and_more.py b/treeherder/perf/migrations/0058_performancealertsummary_original_prev_push_and_more.py index a7a1370a185..3374954917f 100644 --- a/treeherder/perf/migrations/0058_performancealertsummary_original_prev_push_and_more.py +++ b/treeherder/perf/migrations/0058_performancealertsummary_original_prev_push_and_more.py @@ -5,24 +5,23 @@ def update_summary_original_push(apps, schema_editor): - performancealertsummary = apps.get_model('perf', 'PerformanceAlertSummary') + performancealertsummary = apps.get_model("perf", "PerformanceAlertSummary") for alert in performancealertsummary.objects.all(): alert.original_prev_push = alert.prev_push alert.save() - performancealertsummarytesting = apps.get_model('perf', 'PerformanceAlertSummaryTesting') + performancealertsummarytesting = apps.get_model("perf", "PerformanceAlertSummaryTesting") for alert in performancealertsummarytesting.objects.all(): alert.original_prev_push = alert.prev_push alert.save() - performancetetemetryalertsummary = apps.get_model('perf', 'PerformanceTelemetryAlertSummary') + performancetetemetryalertsummary = apps.get_model("perf", "PerformanceTelemetryAlertSummary") for alert in performancetetemetryalertsummary.objects.all(): alert.original_prev_push = alert.prev_push alert.save() class Migration(migrations.Migration): - dependencies = [ ("perf", "0057_performancealert_confidence_and_more"), ] diff --git a/treeherder/perf/migrations/0059_performancebugtemplate_critical_text.py b/treeherder/perf/migrations/0059_performancebugtemplate_critical_text.py index e99f10b84b3..4ec3833cc62 100644 --- a/treeherder/perf/migrations/0059_performancebugtemplate_critical_text.py +++ b/treeherder/perf/migrations/0059_performancebugtemplate_critical_text.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0058_performancealertsummary_original_prev_push_and_more"), ] diff --git a/treeherder/perf/migrations/0060_alter_performancealert_unique_together_and_more.py b/treeherder/perf/migrations/0060_alter_performancealert_unique_together_and_more.py index 27b2e82874d..9d7f49b9ced 100644 --- a/treeherder/perf/migrations/0060_alter_performancealert_unique_together_and_more.py +++ b/treeherder/perf/migrations/0060_alter_performancealert_unique_together_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("model", "0042_alter_jobgroup_name"), ("perf", "0059_performancebugtemplate_critical_text"), @@ -65,8 +64,6 @@ class Migration(migrations.Migration): ), migrations.AlterUniqueTogether( name="performancealertsummary", - unique_together={ - ("repository", "framework", "prev_push", "push", "sheriffed") - }, + unique_together={("repository", "framework", "prev_push", "push", "sheriffed")}, ), ] diff --git a/treeherder/perf/migrations/0061_performancedatum_os_name_and_more.py b/treeherder/perf/migrations/0061_performancedatum_os_name_and_more.py index cd5ca705a20..54e9885e0d0 100644 --- a/treeherder/perf/migrations/0061_performancedatum_os_name_and_more.py +++ b/treeherder/perf/migrations/0061_performancedatum_os_name_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0060_alter_performancealert_unique_together_and_more"), ] diff --git a/treeherder/perf/migrations/0062_performancetelemetryalert_bug_modified_and_more.py b/treeherder/perf/migrations/0062_performancetelemetryalert_bug_modified_and_more.py index 9f111da18e3..3f43a9a7f77 100644 --- a/treeherder/perf/migrations/0062_performancetelemetryalert_bug_modified_and_more.py +++ b/treeherder/perf/migrations/0062_performancetelemetryalert_bug_modified_and_more.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0061_performancedatum_os_name_and_more"), ] diff --git a/treeherder/perf/migrations/0063_performancebugtemplate_no_action_required_text.py b/treeherder/perf/migrations/0063_performancebugtemplate_no_action_required_text.py index 1e65c333ce3..982ab06a172 100644 --- a/treeherder/perf/migrations/0063_performancebugtemplate_no_action_required_text.py +++ b/treeherder/perf/migrations/0063_performancebugtemplate_no_action_required_text.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ ("perf", "0062_performancetelemetryalert_bug_modified_and_more"), ]