Update Black to 2026 Stable Style#5376
Merged
Merged
Conversation
* Updating black. Will break the linters. * /api black update * /audit black update * /census_historical_migration black update * /curation black update * /dissemination black update * /report_submission black update * ./ and everything else black update
Contributor
|
Terraform plan for meta No changes. Your infrastructure matches the configuration.✅ Plan applied in Deploy to Development and Meta Environments #1114 |
Contributor
|
Terraform plan for dev Plan: 4 to add, 10 to change, 4 to destroy.Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
!~ update in-place
-/+ destroy and then create replacement
<= read (data resources)
Terraform will perform the following actions:
# module.dev.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~ resource "cloudfoundry_network_policy" "app-network-policy" {
!~ policies = [
!~ {
!~ destination_app = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> (known after apply)
# (3 unchanged attributes hidden)
},
# (2 unchanged elements hidden)
]
}
# module.dev.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~ resource "cloudfoundry_network_policy" "clamav-network-policy" {
!~ policies = [
!~ {
!~ destination_app = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> (known after apply)
# (3 unchanged attributes hidden)
},
!~ {
!~ destination_app = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> (known after apply)
# (3 unchanged attributes hidden)
},
]
}
# module.dev.cloudfoundry_network_policy.logshipper-network-policy will be updated in-place
!~ resource "cloudfoundry_network_policy" "logshipper-network-policy" {
!~ policies = [
!~ {
!~ destination_app = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> (known after apply)
!~ source_app = "92483ac7-d368-43b0-b429-0170e3e2b2c2" -> (known after apply)
# (2 unchanged attributes hidden)
},
]
}
# module.dev.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~ resource "cloudfoundry_network_policy" "scanner-network-policy" {
!~ policies = [
!~ {
!~ destination_app = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> (known after apply)
!~ source_app = "a0669f56-c5a5-4c35-85bf-5b6201478ad5" -> (known after apply)
# (2 unchanged attributes hidden)
},
!~ {
!~ source_app = "a0669f56-c5a5-4c35-85bf-5b6201478ad5" -> (known after apply)
# (3 unchanged attributes hidden)
},
]
}
# module.dev.module.cg-logshipper.cloudfoundry_app.logshipper_app will be updated in-place
!~ resource "cloudfoundry_app" "logshipper_app" {
!~ created_at = "2025-04-21T18:47:16Z" -> (known after apply)
!~ enable_ssh = false -> (known after apply)
!~ id = "************************************" -> (known after apply)
!~ log_rate_limit_per_second = "-1" -> (known after apply)
name = "logshipper"
!~ readiness_health_check_type = "process" -> (known after apply)
!~ routes = [
- {
- protocol = "http1" -> null
- route = "fac-dev-logshipper.app.cloud.gov" -> null
},
] -> (known after apply)
!~ source_code_hash = "edc3bec89c5eb68007e80f54b2965310df487f974309045d347a764d3f02b354" -> "e7f45bb27e420cbe794b468bf6f3d7c904785fb624ce575bc8ee97ed0b5a8704"
!~ stack = "cflinuxfs4" -> (known after apply)
!~ updated_at = "2026-02-18T16:18:38Z" -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.dev.module.cg-logshipper.cloudfoundry_route.logshipper_route will be updated in-place
!~ resource "cloudfoundry_route" "logshipper_route" {
!~ destinations = [
- {
- app_id = "92483ac7-d368-43b0-b429-0170e3e2b2c2" -> null
- app_process_type = "web" -> null
- id = "cb430c0b-be04-428f-b94f-0af6d42d100b" -> null
- port = 8080 -> null
- protocol = "http1" -> null
},
+ {
+ app_id = (known after apply)
+ app_process_type = (known after apply)
+ id = (known after apply)
+ port = (known after apply)
+ protocol = (known after apply)
},
]
id = "3aec8f3f-c16b-4528-bc10-021921a7c5c6"
!~ updated_at = "2025-04-21T18:49:17Z" -> (known after apply)
# (6 unchanged attributes hidden)
}
# module.dev.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~ id = "*******************" -> (known after apply)
!~ triggers = { # forces replacement
!~ "always_run" = "2026-02-18T16:00:12Z" -> (known after apply)
}
}
# module.dev.module.fac-file-scanner.data.cloudfoundry_domain.internal will be read during apply
# (depends on a resource or a module with changes pending)
<= data "cloudfoundry_domain" "internal" {
+ annotations = (known after apply)
+ created_at = (known after apply)
+ id = (known after apply)
+ internal = (known after apply)
+ labels = (known after apply)
+ name = "apps.internal"
+ org = (known after apply)
+ router_group = (known after apply)
+ shared_orgs = (known after apply)
+ supported_protocols = (known after apply)
+ updated_at = (known after apply)
}
# module.dev.module.fac-file-scanner.data.external.scannerzip will be read during apply
# (depends on a resource or a module with changes pending)
<= data "external" "scannerzip" {
+ id = (known after apply)
+ program = [
+ "/bin/sh",
+ "prepare-scanner.sh",
]
+ query = {
+ "gitref" = "refs/heads/main"
}
+ result = (known after apply)
+ working_dir = "../shared/modules/scanner"
}
# module.dev.module.fac-file-scanner.cloudfoundry_app.scanner_app will be updated in-place
!~ resource "cloudfoundry_app" "scanner_app" {
!~ created_at = "2025-04-21T18:53:54Z" -> (known after apply)
!~ enable_ssh = false -> (known after apply)
!~ id = "************************************" -> (known after apply)
!~ log_rate_limit_per_second = "-1" -> (known after apply)
name = "fac-file-scanner"
!~ path = "../shared/modules/scanner/scanner.zip" -> (known after apply)
!~ readiness_health_check_type = "process" -> (known after apply)
!~ routes = [
- {
- protocol = "http1" -> null
- route = "fac-file-scanner-dev.apps.internal" -> null
},
] -> (known after apply)
!~ source_code_hash = "2a3e56e1d49c26a97bbd1bf14c4a002fdf79180889b0914983291b3a505fe5c2" -> (known after apply)
!~ stack = "cflinuxfs4" -> (known after apply)
!~ updated_at = "2026-02-17T16:30:23Z" -> (known after apply)
# (11 unchanged attributes hidden)
}
# module.dev.module.fac-file-scanner.cloudfoundry_route.scanner_route must be replaced
-/+ resource "cloudfoundry_route" "scanner_route" {
!~ created_at = "2026-02-17T16:30:25Z" -> (known after apply)
!~ destinations = [
- {
- app_id = "a0669f56-c5a5-4c35-85bf-5b6201478ad5" -> null
- app_process_type = "web" -> null
- id = "4fd7b967-5461-44c4-a2f8-2feb5642c62e" -> null
- port = 8080 -> null
- protocol = "http1" -> null
},
+ {
+ app_id = (known after apply)
+ app_process_type = (known after apply)
+ id = (known after apply)
+ port = (known after apply)
+ protocol = (known after apply)
},
]
!~ domain = "26df58ef-0c0d-4997-b68b-8defb7b3998b" -> (known after apply) # forces replacement
!~ id = "************************************" -> (known after apply)
!~ protocol = "http" -> (known after apply)
!~ updated_at = "2026-02-17T16:30:25Z" -> (known after apply)
!~ url = "fac-file-scanner-dev.apps.internal" -> (known after apply)
# (2 unchanged attributes hidden)
}
# module.dev.module.https-proxy.cloudfoundry_app.egress_app must be replaced
-/+ resource "cloudfoundry_app" "egress_app" {
!~ created_at = "2026-02-17T16:27:35Z" -> (known after apply)
!~ disk_quota = "2048M" -> (known after apply)
!~ enable_ssh = false -> (known after apply)
!~ health_check_type = "port" -> (known after apply)
!~ id = "************************************" -> (known after apply)
!~ log_rate_limit_per_second = "-1" -> (known after apply)
name = "https-proxy"
!~ readiness_health_check_type = "process" -> (known after apply)
!~ routes = [
- {
- protocol = "http1" -> null
- route = "gsa-tts-oros-fac-dev-egress-https-proxy.apps.internal" -> null
},
] -> (known after apply)
+ service_bindings = (known after apply) # forces replacement
!~ source_code_hash = "4715e97eb6fc5130bb7993aeefb5d29994a99d47174a49a71832bf95acda0cb6" -> "96d970dc6cc637f96188ee883b30fb08f298702bedc8827c26a9ec0d69c9891b"
!~ stack = "cflinuxfs4" -> (known after apply)
!~ updated_at = "2026-02-18T16:18:29Z" -> (known after apply)
# (9 unchanged attributes hidden)
}
# module.dev.module.https-proxy.cloudfoundry_route.egress_route will be updated in-place
!~ resource "cloudfoundry_route" "egress_route" {
!~ destinations = [
- {
- app_id = "d2eabbb0-d748-4be8-926d-55531c38bfad" -> null
- app_process_type = "web" -> null
- id = "9bc89e3a-b0f2-4d13-918e-65af0f105ca7" -> null
- port = 8080 -> null
- protocol = "http1" -> null
},
+ {
+ app_id = (known after apply)
+ app_process_type = (known after apply)
+ id = (known after apply)
+ port = (known after apply)
+ protocol = (known after apply)
},
]
id = "13dc80b5-4d3b-4181-b7c1-b6dc8d5a0e65"
!~ updated_at = "2026-02-17T16:27:54Z" -> (known after apply)
# (6 unchanged attributes hidden)
}
# module.dev.module.newrelic.newrelic_nrql_alert_condition.http_500_errors will be updated in-place
!~ resource "newrelic_nrql_alert_condition" "http_500_errors" {
- description = <<-EOT
Application is experiencing 500 errors.
To investigate run this query:
FROM Transaction
SELECT name, duration, request.uri, response.status
WHERE response.status = '500'
AND appName = 'gsa-fac-dev'
SINCE 10 minutes ago
EOT -> null
id = "4900037:58210045"
name = "HTTP 500 Errors Detected"
# (18 unchanged attributes hidden)
# (2 unchanged blocks hidden)
}
# module.dev.module.fac-file-scanner.module.quarantine.data.cloudfoundry_service_plans.s3 will be read during apply
# (depends on a resource or a module with changes pending)
<= data "cloudfoundry_service_plans" "s3" {
+ name = "basic"
+ service_offering_name = "s3"
+ service_plans = (known after apply)
}
# module.dev.module.fac-file-scanner.module.quarantine.cloudfoundry_service_instance.bucket will be updated in-place
!~ resource "cloudfoundry_service_instance" "bucket" {
+ dashboard_url = (known after apply)
id = "c435cb9c-32a7-4a31-828b-48c8c6f3bf37"
!~ last_operation = {
!~ created_at = "2025-03-14T14:22:42Z" -> (known after apply)
+ description = (known after apply)
!~ state = "succeeded" -> (known after apply)
!~ type = "update" -> (known after apply)
!~ updated_at = "2025-03-14T14:22:42Z" -> (known after apply)
} -> (known after apply)
!~ maintenance_info = {
+ description = (known after apply)
+ version = (known after apply)
} -> (known after apply)
name = "fac-file-scanner-quarantine"
!~ service_plan = "021bb2a3-7e11-4fc2-b06b-d9f5938cd806" -> (known after apply)
tags = [
"s3",
"terraform-cloudgov-managed",
]
!~ updated_at = "2025-03-14T14:22:42Z" -> (known after apply)
!~ upgrade_available = false -> (known after apply)
# (3 unchanged attributes hidden)
}
# module.dev.module.file_scanner_clamav.module.route.data.cloudfoundry_domain.domain will be read during apply
# (depends on a resource or a module with changes pending)
<= data "cloudfoundry_domain" "domain" {
+ annotations = (known after apply)
+ created_at = (known after apply)
+ id = (known after apply)
+ internal = (known after apply)
+ labels = (known after apply)
+ name = "apps.internal"
+ org = (known after apply)
+ router_group = (known after apply)
+ shared_orgs = (known after apply)
+ supported_protocols = (known after apply)
+ updated_at = (known after apply)
}
# module.dev.module.file_scanner_clamav.module.route.data.cloudfoundry_org.org will be read during apply
# (depends on a resource or a module with changes pending)
<= data "cloudfoundry_org" "org" {
+ annotations = (known after apply)
+ created_at = (known after apply)
+ id = (known after apply)
+ labels = (known after apply)
+ name = "gsa-tts-oros-fac"
+ quota = (known after apply)
+ suspended = (known after apply)
+ updated_at = (known after apply)
}
# module.dev.module.file_scanner_clamav.module.route.data.cloudfoundry_space.space will be read during apply
# (config refers to values not yet known)
<= data "cloudfoundry_space" "space" {
+ allow_ssh = (known after apply)
+ annotations = (known after apply)
+ created_at = (known after apply)
+ id = (known after apply)
+ isolation_segment = (known after apply)
+ labels = (known after apply)
+ name = "dev"
+ org = (known after apply)
+ quota = (known after apply)
+ updated_at = (known after apply)
}
# module.dev.module.file_scanner_clamav.module.route.cloudfoundry_route.app_route must be replaced
-/+ resource "cloudfoundry_route" "app_route" {
!~ created_at = "2026-02-17T16:30:26Z" -> (known after apply)
!~ destinations = [
- {
- app_id = "726a907a-c6db-434a-b381-b0ae13f13ba3" -> null
- app_process_type = "web" -> null
- id = "fdac276b-b334-498c-9c00-7eb4206fdcf0" -> null
- port = 8080 -> null
- protocol = "http1" -> null
},
+ {
+ app_id = "************************************"
+ app_process_type = (known after apply)
+ id = (known after apply)
+ port = (known after apply)
+ protocol = (known after apply)
},
]
!~ domain = "26df58ef-0c0d-4997-b68b-8defb7b3998b" -> (known after apply) # forces replacement
!~ id = "************************************" -> (known after apply)
!~ protocol = "http" -> (known after apply)
!~ space = "06525ba3-19c2-451b-96e9-ea4a9134e8b9" -> (known after apply) # forces replacement
!~ updated_at = "2026-02-17T16:30:26Z" -> (known after apply)
!~ url = "fac-av-dev-fs.apps.internal" -> (known after apply)
# (1 unchanged attribute hidden)
}
Plan: 4 to add, 10 to change, 4 to destroy.❌ Plan not applied in Deploy to Development and Meta Environments #1114 (Plan has changed) |
Contributor
Minimum allowed line rate is |
phildominguez-gsa
approved these changes
Feb 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update Black to 2026 Stable Style
This is a re-do! See PR #5335. This was added to
mainand reverted as part of the oh-boy-a-dependency-broke-lets-roll-it-back PR. Since theblackupdate to the requirements files came after the other dependencies, I rolled them both back.Note: The few extra line changes on this PR compared to the last are due to a sub-dependency bump. It's one that would have come in with a larger dependency update anyways. An interesting tidbit.
Changes:
Testing:
Pull and run on this branch. You can either update your local py dependencies and do something like
make lint, or you can run the linter in the docker container with something likeblack --check ./PR Checklist: Submitter
maininto your branch shortly before creating the PR. (You should also be mergingmaininto your branch regularly during development.)git status | grep migrations. If there are any results, you probably need to add them to the branch for the PR. Your PR should have only one new migration file for each of the component apps, except in rare circumstances; you may need to delete some and re-runpython manage.py makemigrationsto reduce the number to one. (Also, unless in exceptional circumstances, your PR should not delete any migration files.)PR Checklist: Reviewer
make docker-clean; make docker-first-run && docker compose up; then rundocker compose exec web /bin/bash -c "python manage.py test"The larger the PR, the stricter we should be about these points.
Pre Merge Checklist: Merger
-/+ resource "null_resource" "cors_header"should be destroying and recreating its self and~ resource "cloudfoundry_app" "clamav_api"might be updating itssha256for thefac-file-scannerandfac-av-${ENV}by default.main.