diff --git a/CHANGELOG.md b/CHANGELOG.md index d4f98ad96..cb5264c1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,18 @@ All notable changes to this project will be documented in this file. -## [Unreleased] +## [Unreleased](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v55.1.0...HEAD) -## [55.1.0] - 2026-04-20 +### MODULES + +- [[#3893](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3893)] Skip IAM for the Agent Gateway Service Agent ([juliocc](https://github.com/juliocc)) + +### TOOLS + +- [[#3893](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3893)] Skip IAM for the Agent Gateway Service Agent ([juliocc](https://github.com/juliocc)) +- [[#3891](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3891)] Add more context to automated reviews ([juliocc](https://github.com/juliocc)) + +## [v55.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v55.1.0) - 2026-04-20 ### FAST @@ -33,7 +42,7 @@ All notable changes to this project will be documented in this file. - [[#3869](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3869)] ci: remove automated-review label after PR review workflow ([ludoo](https://github.com/ludoo)) - [[#3867](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3867)] Fix automated PR review workflow for forks ([ludoo](https://github.com/ludoo)) -## [55.0.0] - 2026-04-14 +## [v55.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v55.0.0) - 2026-04-14 ### BREAKING CHANGES @@ -70,7 +79,7 @@ All notable changes to this project will be documented in this file. - [[#3853](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3853)] Tools: add orphan doc detection to check_schema_docs.py ([ludoo](https://github.com/ludoo)) - [[#3851](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3851)] Remove the FAST data platform stage ([ludoo](https://github.com/ludoo)) -## [54.4.0] - 2026-04-14 +## [v54.4.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v54.4.0) - 2026-04-14 ### BREAKING CHANGES @@ -92,7 +101,7 @@ All notable changes to this project will be documented in this file. - [[#3849](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3849)] fix(bigquery-dataset): refresh_interval_ms should be a number ([joshmyers](https://github.com/joshmyers)) - [[#3848](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3848)] Add position attribute to compute-vm module attached disks to control ordering ([ludoo](https://github.com/ludoo)) -## [54.3.0] - 2026-04-09 +## [v54.3.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v54.3.0) - 2026-04-09 ### BREAKING CHANGES @@ -124,7 +133,7 @@ All notable changes to this project will be documented in this file. - [[#3843](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3843)] Enforce schema docs in linting ([ludoo](https://github.com/ludoo)) - [[#3836](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3836)] Remove hcl2 python dependency ([juliocc](https://github.com/juliocc)) -## [54.2.0] - 2026-03-26 +## [v54.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v54.2.0) - 2026-03-26 ### BREAKING CHANGES @@ -156,7 +165,7 @@ All notable changes to this project will be documented in this file. - [[#3826](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3826)] Bump tftest version ([ludoo](https://github.com/ludoo)) -## [54.1.0] - 2026-03-26 +## [v54.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v54.1.0) - 2026-03-26 ### BREAKING CHANGES @@ -202,7 +211,7 @@ All notable changes to this project will be documented in this file. - [[#3805](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3805)] Compute VM module refactor ([ludoo](https://github.com/ludoo)) -## [54.0.0] - 2026-03-05 +## [v54.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v54.0.0) - 2026-03-05 ### BREAKING CHANGES @@ -223,7 +232,7 @@ All notable changes to this project will be documented in this file. - [[#3782](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3782)] Additional changes to folder module and project factory ([ludoo](https://github.com/ludoo)) - [[#3768](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3768)] Add support for URL filtering profiles to FAST NGFW add-on ([ludoo](https://github.com/ludoo)) -## [53.1.0] - 2026-03-05 +## [v53.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v53.1.0) - 2026-03-05 ### BREAKING CHANGES @@ -279,7 +288,7 @@ All notable changes to this project will be documented in this file. - [[#3748](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3748)] Refactor Github Action per b/485167538 ([google-admin](https://github.com/google-admin)) -## [53.0.0] - 2026-02-12 +## [v53.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v53.0.0) - 2026-02-12 ### BREAKING CHANGES @@ -302,7 +311,7 @@ All notable changes to this project will be documented in this file. - [[#3728](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3728)] Change factories_config type in FAST and project/vpc factory modules, add YAML schema validation ([ludoo](https://github.com/ludoo)) -## [52.1.0] - 2026-02-12 +## [v52.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v52.1.0) - 2026-02-12 ### BREAKING CHANGES @@ -359,7 +368,7 @@ All notable changes to this project will be documented in this file. - [[#3697](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3697)] Add basic observability example to classic dataset ([juliocc](https://github.com/juliocc)) - [[#3723](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3723)] Retry #3719 and fix broken link ([juliocc](https://github.com/juliocc)) -## [52.0.0] - 2026-01-30 +## [v52.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v52.0.0) - 2026-01-30 ### BREAKING CHANGES @@ -382,7 +391,7 @@ All notable changes to this project will be documented in this file. - [[#3621](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3621)] Improve fallback behaviour documentation for hardened dataset in 0-org-setup ([kovagoadam](https://github.com/kovagoadam)) - [[#3635](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3635)] Implement various compliance configuration and principle of least privilege for hardened dataset ([vannicktrinquier](https://github.com/vannicktrinquier)) -## [51.1.0] - 2026-01-30 +## [v51.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v51.1.0) - 2026-01-30 ### BREAKING CHANGES @@ -457,7 +466,7 @@ All notable changes to this project will be documented in this file. - [[#3679](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3679)] feat: create new dataset `classic-gcd` (based on dataset `classic`) to enable deployment on GCD ([SvenPistre](https://github.com/SvenPistre)) - [[#3658](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3658)] Add `asset_feeds` to resman modules ([juliocc](https://github.com/juliocc)) -## [51.0.0] - 2026-01-07 +## [v51.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v51.0.0) - 2026-01-07 ### FAST @@ -478,7 +487,7 @@ All notable changes to this project will be documented in this file. - [[#3601](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3601)] Fix inconsistent provider plan for FAST outputs ([wiktorn](https://github.com/wiktorn)) - [[#3556](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3556)] Add controls related to CMEK encryption and support to FAST ([vannicktrinquier](https://github.com/vannicktrinquier)) -## [50.1.0] - 2026-01-07 +## [v50.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v50.1.0) - 2026-01-07 ### BREAKING CHANGES @@ -518,7 +527,7 @@ All notable changes to this project will be documented in this file. - [[#3600](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3600)] Upgrade Terraform provider to 7.13 ([LucaPrete](https://github.com/LucaPrete)) -## [50.0.0] - 2025-12-11 +## [v50.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v50.0.0) - 2025-12-11 ### FAST @@ -537,7 +546,7 @@ All notable changes to this project will be documented in this file. - [[#3584](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3584)] Add script to programmatically replace the path in schema declarations ([ludoo](https://github.com/ludoo)) -## [49.3.0] - 2025-12-11 +## [v49.3.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v49.3.0) - 2025-12-11 ### FAST @@ -554,7 +563,7 @@ All notable changes to this project will be documented in this file. - [[#3579](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3579)] fixed project-factory module to pass service account description ([fenyvesi-levi](https://github.com/fenyvesi-levi)) - [[#3574](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3574)] Add `retain_backups_on_delete` and `final_backup_configuration` to `cloudsql-instance` ([justkmark](https://github.com/justkmark)) -## [49.2.0] - 2025-12-08 +## [v49.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v49.2.0) - 2025-12-08 ### FAST @@ -581,7 +590,7 @@ All notable changes to this project will be documented in this file. - [[#3562](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3562)] Updates to GKE modules to support Secret Sync ([woodham1](https://github.com/woodham1)) - [[#3563](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3563)] Add GEMINI.md file ([drebes](https://github.com/drebes)) -## [49.1.0] - 2025-11-24 +## [v49.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v49.1.0) - 2025-11-24 ### FAST @@ -599,7 +608,7 @@ All notable changes to this project will be documented in this file. - [[#3529](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3529)] Add optional secondary read pool support to the alloydb module ([sshcherbakov](https://github.com/sshcherbakov)) - [[#3539](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3539)] Allow PSC and PSA connections on Cloud SQL ([vennemp](https://github.com/vennemp)) -## [49.0.0] - 2025-11-18 +## [v49.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v49.0.0) - 2025-11-18 ### FAST @@ -611,7 +620,7 @@ All notable changes to this project will be documented in this file. - [[#3535](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3535)] Leverage project-level workload identity in FAST CI/CD ([ludoo](https://github.com/ludoo)) -## [48.1.0] - 2025-11-18 +## [v48.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v48.1.0) - 2025-11-18 ### FAST @@ -638,7 +647,7 @@ All notable changes to this project will be documented in this file. - [[#3531](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3531)] Add support for Workload Identity to project module and project factory ([ludoo](https://github.com/ludoo)) - [[#3524](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3524)] Fix schema doc tool, fix schema errors, regenerate schema docs ([ludoo](https://github.com/ludoo)) -## [48.0.0] - 2025-11-11 +## [v48.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v48.0.0) - 2025-11-11 ### BREAKING CHANGES @@ -664,7 +673,7 @@ All notable changes to this project will be documented in this file. - [[#3515](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3515)] [WIP] Add support for KMS autokey ([ludoo](https://github.com/ludoo)) - [[#3506](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3506)] Allow defining org-level pam_entitlements in 0-org-setup ([juliocc](https://github.com/juliocc)) -## [47.1.0] - 2025-11-11 +## [v47.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v47.1.0) - 2025-11-11 ### DOCUMENTATION @@ -681,7 +690,7 @@ All notable changes to this project will be documented in this file. - [[#3509](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3509)] compute-vm: hyperdisk and ARM support ([wiktorn](https://github.com/wiktorn)) - [[#3503](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3503)] Password for initial_user for AlloyDB is now required ([wiktorn](https://github.com/wiktorn)) -## [47.0.0] - 2025-11-05 +## [v47.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v47.0.0) - 2025-11-05 ### BREAKING CHANGES @@ -717,7 +726,7 @@ All notable changes to this project will be documented in this file. - [[#3480](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3480)] Enable tflint on 2-security ([wiktorn](https://github.com/wiktorn)) - [[#3479](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3479)] Removes legacy FAST networking stages ([sruffilli](https://github.com/sruffilli)) -## [46.1.0] - 2025-11-05 +## [v46.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v46.1.0) - 2025-11-05 ### BREAKING CHANGES @@ -752,7 +761,7 @@ All notable changes to this project will be documented in this file. - [[#3473](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3473)] service_account_config for Cloud Run v2 ([wiktorn](https://github.com/wiktorn)) - [[#3475](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3475)] Run yapf in single thread to prevent EOFError errors ([wiktorn](https://github.com/wiktorn)) -## [46.0.0] - 2025-10-26 +## [v46.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v46.0.0) - 2025-10-26 ### BREAKING CHANGES @@ -821,7 +830,7 @@ All notable changes to this project will be documented in this file. - [[#3447](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3447)] Align schemas ([ludoo](https://github.com/ludoo)) - [[#3410](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3410)] Adding hardened datasets for preventive and detective Compliance Controls ([vannicktrinquier](https://github.com/vannicktrinquier)) -## [45.1.0] - 2025-10-26 +## [v45.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v45.1.0) - 2025-10-26 ### BREAKING CHANGES @@ -929,7 +938,7 @@ All notable changes to this project will be documented in this file. - [[#3428](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3428)] gitignore update ([juliocc](https://github.com/juliocc)) - [[#3361](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3361)] Use pre-commit managed Python environment for pre-commit checks ([wiktorn](https://github.com/wiktorn)) -## [45.0.0] - 2025-09-20 +## [v45.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v45.0.0) - 2025-09-20 ### FAST @@ -943,7 +952,7 @@ All notable changes to this project will be documented in this file. - [[#3325](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3325)] Incremental improvements to project factory and underlying modules ([ludoo](https://github.com/ludoo)) - [[#3311](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3311)] New security stage leveraging project factory and contexts ([ludoo](https://github.com/ludoo)) -## [44.2.0] - 2025-09-20 +## [v44.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v44.2.0) - 2025-09-20 ### BREAKING CHANGES @@ -993,7 +1002,7 @@ All notable changes to this project will be documented in this file. - [[#3319](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3319)] Allow skipping selected tests with tofu ([ludoo](https://github.com/ludoo)) -## [44.1.0] - 2025-09-06 +## [v44.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v44.1.0) - 2025-09-06 ### BREAKING CHANGES @@ -1008,7 +1017,7 @@ All notable changes to this project will be documented in this file. - [[#3303](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3303)] New project factory improvements ([ludoo](https://github.com/ludoo)) - [[#3301](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3301)] Add missing outputs to new project factory module, improve context README section ([ludoo](https://github.com/ludoo)) -## [44.0.0] - 2025-09-05 +## [v44.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v44.0.0) - 2025-09-05 ### BREAKING CHANGES @@ -1056,7 +1065,7 @@ Project templates are still following the old project factory schemas, and will - [[#3298](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3298)] Rename FAST stages preparing for eventual deprecation ([ludoo](https://github.com/ludoo)) - [[#3255](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3255)] FAST bootstrap light, blueprints deprecation, modules context, new project factory ([ludoo](https://github.com/ludoo)) -## [43.0.0] - 2025-09-01 +## [v43.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v43.0.0) - 2025-09-01 ### BREAKING CHANGES @@ -1080,7 +1089,7 @@ Project templates are still following the old project factory schemas, and will - [[#3291](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3291)] Upgrade provider to version 7.0.1 ([juliocc](https://github.com/juliocc)) -## [42.1.0] - 2025-09-01 +## [v42.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v42.1.0) - 2025-09-01 ### BREAKING CHANGES @@ -1117,7 +1126,7 @@ Project templates are still following the old project factory schemas, and will - [[#3274](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3274)] Add support for GPU functionality in Cloud Run ([wiktorn](https://github.com/wiktorn)) -## [42.0.0] - 2025-08-08 +## [v42.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v42.0.0) - 2025-08-08 ### BREAKING CHANGES @@ -1175,7 +1184,7 @@ Project templates are still following the old project factory schemas, and will - [[#3179](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3179)] Bypass accounts.google.com in FAST DNS policy rules ([ludoo](https://github.com/ludoo)) - [[#3160](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3160)] Add notebooks, appengine and appspot to dns policy routing in FAST networking stage ([wiktorn](https://github.com/wiktorn)) -## [41.1.0] - 2025-08-08 +## [v41.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v41.1.0) - 2025-08-08 ### BLUEPRINTS @@ -1222,7 +1231,7 @@ Project templates are still following the old project factory schemas, and will - [[#3216](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3216)] Add IP filtering support to `modules/gcs` ([juliocc](https://github.com/juliocc)) -## [41.0.0] - 2025-06-29 +## [v41.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v41.0.0) - 2025-06-29 ### BREAKING CHANGES @@ -1264,7 +1273,7 @@ Project templates are still following the old project factory schemas, and will - [[#3179](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3179)] Bypass accounts.google.com in FAST DNS policy rules ([ludoo](https://github.com/ludoo)) - [[#3160](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3160)] Add notebooks, appengine and appspot to dns policy routing in FAST networking stage ([wiktorn](https://github.com/wiktorn)) -## [40.2.0] - 2025-06-29 +## [v40.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v40.2.0) - 2025-06-29 ### BREAKING CHANGES @@ -1367,7 +1376,7 @@ Project templates are still following the old project factory schemas, and will - [[#3126](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3126)] Allow multiple types in JSON schema docs tool ([ludoo](https://github.com/ludoo)) - [[#3120](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3120)] Bump Terraform to 1.11 ([juliocc](https://github.com/juliocc)) -## [40.1.0] - 2025-05-21 +## [v40.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v40.1.0) - 2025-05-21 ### BLUEPRINTS @@ -1386,7 +1395,7 @@ Project templates are still following the old project factory schemas, and will - [[#3107](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3107)] Add fast_version.txt to FAST stages ([juliocc](https://github.com/juliocc)) -## [40.0.0] - 2025-05-21 +## [v40.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v40.0.0) - 2025-05-21 ### BREAKING CHANGES @@ -1428,7 +1437,7 @@ Project templates are still following the old project factory schemas, and will - [[#3070](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3070)] JSON schema documentation tool ([ludoo](https://github.com/ludoo)) -## [39.2.0] - 2025-05-21 +## [v39.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v39.2.0) - 2025-05-21 ### FAST @@ -1449,7 +1458,7 @@ Project templates are still following the old project factory schemas, and will - [[#3071](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3071)] [cloud-run-v2] Add ability to deploy OpenTelemetry Collector sidecar ([charles-salmon](https://github.com/charles-salmon)) - [[#3073](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3073)] Added versions.tf to net-vpc-factory ([sruffilli](https://github.com/sruffilli)) -## [39.1.0] - 2025-05-05 +## [v39.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v39.1.0) - 2025-05-05 ### BLUEPRINTS @@ -1481,7 +1490,7 @@ Project templates are still following the old project factory schemas, and will - [[#3063](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/3063)] Enable repd tag bindings in compute-vm module ([ludoo](https://github.com/ludoo)) -## [39.0.0] - 2025-04-18 +## [v39.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v39.0.0) - 2025-04-18 ### UPDATING FAST @@ -1553,7 +1562,7 @@ Project templates are still following the old project factory schemas, and will - [[#2990](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2990)] Merge master to fast dev ([wiktorn](https://github.com/wiktorn)) - [[#2986](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2986)] Mongodb Atlas cluster project template ([ludoo](https://github.com/ludoo)) -## [38.2.0] - 2025-04-18 +## [v38.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v38.2.0) - 2025-04-18 ### BREAKING CHANGES @@ -1608,7 +1617,7 @@ Project templates are still following the old project factory schemas, and will - [[#2996](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2996)] Improve failure message for tests ([wiktorn](https://github.com/wiktorn)) - [[#2987](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2987)] Project object c14n in separate file ([wiktorn](https://github.com/wiktorn)) -## [38.1.0] - 2025-03-22 +## [v38.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v38.1.0) - 2025-03-22 ### BREAKING CHANGES @@ -1664,7 +1673,7 @@ Project templates are still following the old project factory schemas, and will - [[#2965](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2965)] Revert "Fix broken upgrades of TF provider for routes" ([wiktorn](https://github.com/wiktorn)) - [[#2964](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2964)] Fix broken upgrades of TF provider for routes ([wiktorn](https://github.com/wiktorn)) -## [38.0.0] - 2025-02-21 +## [v38.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v38.0.0) - 2025-02-21 ### BREAKING CHANGES @@ -1728,7 +1737,7 @@ Project templates are still following the old project factory schemas, and will - [[#2899](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2899)] Project factory additions, project module reuse implementation ([ludoo](https://github.com/ludoo)) - [[#2894](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2894)] Make service agents work in different universes ([juliocc](https://github.com/juliocc)) -## [37.4.0] - 2025-02-21 +## [v37.4.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v37.4.0) - 2025-02-21 ### BREAKING CHANGES @@ -1757,7 +1766,7 @@ Project templates are still following the old project factory schemas, and will - [[#2908](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2908)] Add breaking changes to changelog ([juliocc](https://github.com/juliocc)) -## [37.3.0] - 2025-02-12 +## [v37.3.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v37.3.0) - 2025-02-12 ### BLUEPRINTS @@ -1767,7 +1776,7 @@ Project templates are still following the old project factory schemas, and will - [[#2883](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2883)] **incompatible change:** Fix ipv6 and align loadbalancer address types ([wiktorn](https://github.com/wiktorn)) -## [37.2.0] - 2025-02-11 +## [v37.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v37.2.0) - 2025-02-11 ### BLUEPRINTS @@ -1800,13 +1809,13 @@ Project templates are still following the old project factory schemas, and will - [[#2871](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2871)] Fix KMS E2E tests ([wiktorn](https://github.com/wiktorn)) - [[#2869](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2869)] Expose org policy parameters ([juliocc](https://github.com/juliocc)) -## [37.1.0] - 2025-01-26 +## [v37.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v37.1.0) - 2025-01-26 ### FAST - [[#2839](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2839)] Revert "Allow multiple stage-2 project factories" ([ludoo](https://github.com/ludoo)) -## [37.0.0] - 2025-01-24 +## [v37.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v37.0.0) - 2025-01-24 ### FAST @@ -1832,7 +1841,7 @@ Project templates are still following the old project factory schemas, and will - [[#2821](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2821)] **incompatible change:** FAST SWP networking add-on, refactor CAS module interface ([ludoo](https://github.com/ludoo)) - [[#2820](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2820)] **incompatible change:** Do not create service agent resources in project module for services not explicitly enabled ([ludoo](https://github.com/ludoo)) -## [36.2.0] - 2025-01-24 +## [v36.2.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v36.2.0) - 2025-01-24 ### BLUEPRINTS @@ -1848,7 +1857,7 @@ Project templates are still following the old project factory schemas, and will - [[#2825](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2825)] FAST add-on for networking test resources ([ludoo](https://github.com/ludoo)) - [[#2823](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2823)] Update service activation in ngfw add-on ([ludoo](https://github.com/ludoo)) -## [36.1.0] - 2025-01-10 +## [v36.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v36.1.0) - 2025-01-10 - [[#2777](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2777)] Document `tag_bindings` definition as `map(string)` ([juliocc](https://github.com/juliocc)) @@ -1929,7 +1938,7 @@ Project templates are still following the old project factory schemas, and will - [[#2765](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2765)] Update issue templates ([juliocc](https://github.com/juliocc)) - [[#2736](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2736)] Add confidential compute support to google_dataproc_cluster module, bump provider versions ([steenblik](https://github.com/steenblik)) -## [36.0.1] - 2024-11-23 +## [v36.0.1](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v36.0.1) - 2024-11-23 ### FAST @@ -1939,7 +1948,7 @@ Project templates are still following the old project factory schemas, and will - [[#2730](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2730)] Run tests and linting when pushing to master or fast-dev ([juliocc](https://github.com/juliocc)) -## [36.0.0] - 2024-11-22 +## [v36.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v36.0.0) - 2024-11-22 ### BLUEPRINTS @@ -1970,7 +1979,7 @@ Project templates are still following the old project factory schemas, and will - [[#2660](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2660)] Refactor changelog for the new release process ([ludoo](https://github.com/ludoo)) - [[#2648](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2648)] Refactor of FAST resource management and subsequent stages ([ludoo](https://github.com/ludoo)) -## [35.1.0] - 2024-11-22 +## [v35.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v35.1.0) - 2024-11-22 ### BLUEPRINTS @@ -2024,7 +2033,7 @@ Project templates are still following the old project factory schemas, and will - [[#2631](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2631)] fix Vertex-ML-Ops e2e tests ([wiktorn](https://github.com/wiktorn)) - [[#2653](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2653)] Add required enabled field introduced in Terraform version 5.41.0 ([jacobmammoliti](https://github.com/jacobmammoliti)) -## [35.0.0] - 2024-10-30 +## [v35.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v35.0.0) - 2024-10-30 ### BLUEPRINTS @@ -2090,7 +2099,7 @@ Project templates are still following the old project factory schemas, and will - [[#2536](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2536)] **incompatible change:** Add support for google provider 6.x ([sruffilli](https://github.com/sruffilli)) -## [34.1.0] - 2024-09-05 +## [v34.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v34.1.0) - 2024-09-05 ### BLUEPRINTS @@ -2113,7 +2122,7 @@ Project templates are still following the old project factory schemas, and will - [[#2557](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2557)] Bump provider to 5.43.1 ahead of next release ([juliocc](https://github.com/juliocc)) - [[#2552](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2552)] Upload hidden files ([wiktorn](https://github.com/wiktorn)) -## [34.0.0] - 2024-08-30 +## [v34.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v34.0.0) - 2024-08-30 ### BLUEPRINTS @@ -2206,7 +2215,7 @@ Project templates are still following the old project factory schemas, and will - [[#2488](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2488)] Introduce YAML schema validation for YAML examples ([juliocc](https://github.com/juliocc)) - [[#2487](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2487)] Example testing improvements ([juliocc](https://github.com/juliocc)) -## [33.0.0] - 2024-08-01 +## [v33.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v33.0.0) - 2024-08-01 ### BLUEPRINTS @@ -2297,14 +2306,14 @@ Project templates are still following the old project factory schemas, and will - [[#2413](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2413)] **incompatible change:** Add E2E tests for Cloud Functions and fix perma-diff ([wiktorn](https://github.com/wiktorn)) - [[#2399](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2399)] Test different versions of Terraform ([wiktorn](https://github.com/wiktorn)) -## [32.0.1] - 2024-07-26 +## [v32.0.1](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v32.0.1) - 2024-07-26 ### MODULES - [[#2447](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2447)] Fix wrong expression in compute-mig module ([bz-canva](https://github.com/bz-canva)) -## [32.0.0] - 2024-06-16 +## [v32.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v32.0.0) - 2024-06-16 ### BLUEPRINTS @@ -2405,7 +2414,7 @@ Project templates are still following the old project factory schemas, and will - [[#2285](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2285)] New alloydb module ([simonebruzzechesse](https://github.com/simonebruzzechesse)) - [[#2254](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2254)] **incompatible change:** FAST: add top-level folders and restructure teams/tenants in resman ([ludoo](https://github.com/ludoo)) -## [31.1.0] - 2024-05-15 +## [v31.1.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v31.1.0) - 2024-05-15 ### BLUEPRINTS @@ -2416,7 +2425,7 @@ Project templates are still following the old project factory schemas, and will - [[#2282](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2282)] Disable reserved_internal_range in net-vpc due to provider bug ([sruffilli](https://github.com/sruffilli)) -## [31.0.0] - 2024-05-14 +## [v31.0.0](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/tag/v31.0.0) - 2024-05-14 ### BLUEPRINTS @@ -2532,67 +2541,3 @@ Project templates are still following the old project factory schemas, and will - [[#2192](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2192)] Update labeler version ([ludoo](https://github.com/ludoo)) - [[#2189](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2189)] Use explicit UTF-8 encoding in tfdoc.py ([wiktorn](https://github.com/wiktorn)) - [[#2163](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/pull/2163)] feat: add e2e test for pubsub module ([andybubu](https://github.com/andybubu)) - - -[Unreleased]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v55.1.0...HEAD -[55.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v55.0.0...v54.4.0 -[54.4.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v54.4.0...v54.3.0 -[54.3.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v54.3.0...v54.2.0 -[54.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v54.2.0...v54.1.0 -[54.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v54.1.0...v54.0.0 -[54.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v54.0.0...v53.1.0 -[53.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v53.1.0...v53.0.0 -[53.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v53.0.0...v52.1.0 -[52.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v52.1.0...v52.0.0 -[52.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v52.0.0...v51.1.0 -[51.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v51.1.0...v51.0.0 -[51.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v51.0.0...v50.1.0 -[50.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v50.1.0...v50.0.0 -[50.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v50.0.0...v49.3.0 -[49.3.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v49.3.0...v49.2.0 -[49.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v49.2.0...v49.1.0 -[49.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v49.1.0...v49.0.0 -[49.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v49.0.0...v48.1.0 -[48.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v48.1.0...v48.0.0 -[48.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v48.0.0...v47.1.0 -[47.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v47.1.0...v47.0.0 -[47.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v47.0.0...v46.1.0 -[46.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v46.1.0...v46.0.0 -[46.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v46.0.0...v45.1.0 -[45.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v45.1.0...v45.0.0 -[45.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v45.0.0...v44.2.0 -[44.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v44.2.0...v44.1.0 -[44.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v44.1.0...v44.0.0 -[44.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v44.0.0...v43.0.0 -[43.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v43.0.0...v42.1.0 -[42.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v42.1.0...v42.0.0 -[42.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v41.1.0...v41.0.0 -[41.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v41.0.0...v41.1.0 -[41.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v40.2.0...v41.0.0 -[40.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v40.1.0...v40.2.0 -[40.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v40.0.0...v40.1.0 -[40.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v39.2.0...v40.0.0 -[39.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v39.1.0...v39.2.0 -[39.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v39.0.0...v39.1.0 -[39.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v38.2.0...v39.0.0 -[38.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v38.1.0...v38.2.0 -[38.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v38.0.0...v38.1.0 -[38.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v37.4.0...v38.0.0 -[37.4.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v37.3.0...v37.4.0 -[37.3.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v37.2.0...v37.3.0 -[37.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v37.1.0...v37.2.0 -[37.1.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v37.0.0...v37.1.0 -[37.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v36.2.0...v37.0.0 -[36.2.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v36.1.0...v36.2.0 -[36.1.0]: -[36.0.1]: -[36.0.0]: -[35.1.0]: -[35.0.0]: -[34.1.0]: -[34.0.0]: -[33.0.0]: -[32.0.1]: -[32.0.0]: -[31.1.0]: -[31.0.0]: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 940b55cdd..deda4af82 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1404,58 +1404,4 @@ The tool can also be run so that it prints the generated output on standard outp ## Cutting a new release -Cutting a new release is mostly about updating `CHANGELOG.md` - luckily the [changelog tool](./tools/changelog.py) will do the heavy lifting for you. - -In order to use it, you will need to generate a [Github Token](https://github.com/settings/tokens/). The token does not require any scope, so if you're purposely generating one, make sure to avoid adding any. Store the token in your favourite secret manager for future usage. - -Also make sure to work in a `venv` where all the [requirements for the fabric tools](./tools/requirements.txt) are installed. - -```bash -cd cloud-foundation-fabric -git checkout master -git pull -./tools/changelog.py --write --token $YOURGITHUBTOKEN -``` - -After ~1 minute, the [CHANGELOG.md](./CHANGELOG.md) file will be updated by the tool - review any change by running `git diff` and make sure no unlabeled PR is listed. If you find unlabeled PRs, visit their link and add the relevant labels (e.g. on:FAST, on:blueprints, on:module, ...), and finally run again - -```bash -./tools/changelog.py --write --token $YOURGITHUBTOKEN -``` - -Now open the up-to-date CHANGELOG.md in your favorite editor, and append the new release H2 after the `## [Unreleased]` header you see at the top - e.g. if the latest version is `29.0.0`, add an header for `30.0.0` and mark todays date as follows: - -```md -[...] -## [Unreleased] - - -## [30.0.0] - 2024-03-20 - -## [29.0.0] - 2024-01-24 - -``` - -Now scroll to the bottom section of the document, and update the release links by adding `30.0.0` and updating `Unreleased` as follows: - -```md -[Unreleased]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v30.0.0...HEAD -[30.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v29.0.0...v30.0.0 -[29.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v28.0.0...v29.0.0 -``` - -Once done, add, commit and push changes to master. - -As CHANGELOG.md is now ready, [create a new release from the Github UI](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/new), and use `vXX.Y.Z` as the release tag and title (don't forget the `v` in front!). - -As a description, copy the whole content added to [CHANGELOG.md](./CHANGELOG.md) for the current release, and then click the 'Publish release' button. - -As a last cleanup for the CHANGELOG.md file, run - -```bash -git pull -./tools/changelog.py --write --token $TOKEN --release-to vXX.Y.Z -git diff -``` - -And add / commit / push any change in case of a diff. +The release process has been codified into a Gemini CLI skill. Please refer to the [Release Process Skill](skills/maintenance/release-process/SKILL.md) for detailed instructions on how to cut a new release. diff --git a/GEMINI.md b/GEMINI.md index 75d0a193b..11d22e62f 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -60,6 +60,11 @@ Always format code and update documentation before committing. terraform fmt -check -recursive modules/ terraform fmt -recursive modules/ +# Format Python code +# ALWAYS run yapf with the repository's .style.yapf configuration after editing any Python file. +# You can use the local virtual environment or run it directly: +~/venv/bin/yapf -i + # Check README consistency (variables table must match variables.tf) python3 tools/check_documentation.py modules/ diff --git a/skills/maintenance/release-process/SKILL.md b/skills/maintenance/release-process/SKILL.md new file mode 100644 index 000000000..6249bae68 --- /dev/null +++ b/skills/maintenance/release-process/SKILL.md @@ -0,0 +1,132 @@ +--- +name: release-process +description: Guide for cutting a new release of the Cloud Foundation Fabric (CFF) repository. Use this skill when asked to create, prepare, or draft a new release. +--- + +# Cloud Foundation Fabric Release Process + +This skill guides maintainers through the process of cutting a new release for the Cloud Foundation Fabric (CFF) repository. + +> **CRITICAL:** Release names and tags MUST ALWAYS be prefixed with `v` (e.g., `v55.1.0`, `v56.0.0`). + +## Prerequisites + +- **Permissions:** You must have write/release permissions on the repository. +- **GitHub Token:** A valid GitHub token (can be easily derived by running `gh auth token`). +- **Environment:** You can run the tools using either `uv` (recommended) or a standard Python virtual environment with `tools/requirements.txt` installed. + +## 1. Preparation + +Start from the `master` branch and ensure you are up to date: + +```bash +git checkout master +git pull +``` + +Identify the **latest released version** by extracting it from the `default-versions.tf` file: + +```bash +LATEST_RELEASE=$(grep -oP '(?<=# Fabric release: ).*' default-versions.tf) +echo "Latest release is: $LATEST_RELEASE" +``` + +## 2. Generate and Review Changelog + +Run the changelog script, specifying the bump type (e.g., `major`, `minor`, `patch`): + +```bash +# Set your bump type here (major, minor, or patch) +BUMP_TYPE="minor" + +# Option A: Using uv (Recommended) +uv run tools/changelog.py --release-from $LATEST_RELEASE --bump $BUMP_TYPE --write --token $(gh auth token) + +# Option B: Using a standard virtual environment +./tools/changelog.py --release-from $LATEST_RELEASE --bump $BUMP_TYPE --write --token $(gh auth token) +``` + +**Review the changes:** +Run `git diff CHANGELOG.md` and carefully inspect the output. Look for: +- PRs missing labels (they will appear under a "no subsection" or similar area). +- Weird or unclear names in PR titles. + +**If you find issues:** +1. Click the PR link in the diff. +2. Manually fix the labels or title on GitHub. +3. Re-run the `changelog.py` command above. +4. Repeat until the changelog is clean. + +## 3. Bump Versions + +Once the changelog is correct, extract the newly generated release version from the top of the changelog and bump the repository versions: + +```bash +NEW_RELEASE=$(grep -oP '(?<=^## \[).*(?=\] - )' CHANGELOG.md | head -n 1) +# Ensure it has the 'v' prefix +if [[ $NEW_RELEASE != v* ]]; then NEW_RELEASE="v$NEW_RELEASE"; fi +echo "New release is: $NEW_RELEASE" + +# Option A: Using uv (Recommended) +uv run tools/versions.py --fabric-release $NEW_RELEASE --write-defaults + +# Option B: Using a standard virtual environment +./tools/versions.py --fabric-release $NEW_RELEASE --write-defaults +``` + +## 4. Commit and Push + +Commit the prepared release files and push to `master`: + +```bash +git add CHANGELOG.md default-versions.tf +git commit -m "prep $NEW_RELEASE" +git push origin master +``` + +**Important:** Wait for the GitHub Actions workflows on `master` to finish successfully before proceeding to the next step. You can monitor the progress directly from your terminal: + +```bash +# Watch the latest workflow run on the master branch +gh run watch $(gh run list --branch master --limit 1 --json databaseId -q '.[0].databaseId') +``` + +## 5. Create the GitHub Release + +You can create the release either automatically via the GitHub CLI or manually via the GitHub UI. + +### Option A: Automated via GitHub CLI (Recommended) + +This script extracts any "BREAKING CHANGES" from the changelog, converts the heading to Title Case, and prepends them to the automatically generated release notes. + +```bash +# 1. Extract the section for the new release from CHANGELOG.md +# We use awk to grab everything from the new release header until the next release header +RELEASE_NOTES=$(awk "/^## \[$NEW_RELEASE\]/{flag=1; next} /^## \[v/{flag=0} flag" CHANGELOG.md) + +# 2. Extract just the BREAKING CHANGES section (if any) +BREAKING_CHANGES=$(echo "$RELEASE_NOTES" | awk '/^### BREAKING CHANGES/{flag=1; print; next} /^### /{flag=0} flag') + +# 3. Create the release +if [ -n "$(echo "$BREAKING_CHANGES" | tr -d '[:space:]')" ]; then + # Convert "### BREAKING CHANGES" to "### Breaking Changes" + FORMATTED_BREAKING_CHANGES=$(echo "$BREAKING_CHANGES" | sed 's/^### BREAKING CHANGES/### Breaking Changes/') + + # Prepend breaking changes to the generated notes + gh release create "$NEW_RELEASE" --title "$NEW_RELEASE" --generate-notes --notes "$FORMATTED_BREAKING_CHANGES" +else + # Otherwise, just generate the standard notes + gh release create "$NEW_RELEASE" --title "$NEW_RELEASE" --generate-notes +fi +``` + +### Option B: Manual via GitHub UI + +Go to the [GitHub Releases UI](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/new) and configure the release: + +1. **Tag:** Create a new tag matching the new version (e.g., `v56.0.0`). +2. **Title:** Use the exact same version string as the tag. +3. **Release Notes:** Click the **"Generate release notes"** button. +4. **Breaking Changes:** If the `CHANGELOG.md` contains a "BREAKING CHANGES" section for this release, copy it, paste it at the **top** of the generated release notes, and change the heading to "Breaking Changes". + +Click **Publish release**. \ No newline at end of file diff --git a/tools/changelog.py b/tools/changelog.py index 298fd75a7..dbc045252 100755 --- a/tools/changelog.py +++ b/tools/changelog.py @@ -1,4 +1,13 @@ #!/usr/bin/env python3 +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "click", +# "iso8601", +# "marko", +# "requests", +# ] +# /// # Copyright 2025 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -34,6 +43,8 @@ It works on a set of simple principles the `merged_to` argument (defaulting to `master`) are ignored - the unreleased block can optionally be marked with a release name via the `release_as` argument to prepare for a new release +- versions can be automatically bumped (major, minor, patch) using the `--bump` + argument, which computes `release_as` automatically from the latest release Example usage: @@ -52,6 +63,10 @@ Example usage: ./tools/changelog.py --token=$TOKEN --write \ --release-from=v35.0.0 --release-as=v36.0.0 ``` +- create a new release by automatically bumping the latest version + ``` + ./tools/changelog.py --token=$TOKEN --write --bump minor + ``` - create an rc release on the fast-dev branch capturing only branch-merged PRs ``` ./tools/changelog.py --token=$TOKEN --write \ @@ -149,9 +164,12 @@ def format_release(pull_groups, upgrade_notes, release_as, release_to, date_to = datetime.date.today() comment = f'' if release_to is None and not release_as: - buffer = [f'## [{release_as or "Unreleased"}] {comment}'] + link = f'https://github.com/{ORG}/{REPO}/compare/{release_from}...HEAD' + buffer = [f'## [Unreleased]({link}) {comment}'] else: - buffer = [(f'## [{_strip_relname(release_to or release_as)}] - ' + version = _strip_relname(release_to or release_as) + link = f'https://github.com/{ORG}/{REPO}/releases/tag/v{version}' + buffer = [(f'## [v{version}]({link}) - ' f'{date_to.strftime("%Y-%m-%d")} {comment}')] if upgrade_notes: buffer.append('\n### BREAKING CHANGES\n') @@ -227,6 +245,8 @@ def get_pulls(token, date_from, date_to, merged_to, exclude_pulls=None): def get_release_date(token, name=None): 'Get published date for a specific release or the latest release.' + if name and not name.startswith('v'): + name = f'v{name}' path = f'releases/tags/{name}' if name else f'releases/latest' release = fetch(token, path) if not release.get('draft'): @@ -251,65 +271,55 @@ def group_pulls(pulls): def load_changelog(filename): 'Return structured data from changelog file.' releases = {} - links = None name = None try: with open(filename) as f: for l in f.readlines(): l = l.strip() - if l.startswith(LINK_MARKER): - links = {} - continue if l.startswith('## '): - if l[4:].startswith('Unreleased'): - name, date = 'Unreleased', '' - else: - name, _, date = l[3:].partition(' - ') - name = _strip_relname(name) - if not date.strip(): - date = datetime.date.today() - else: - date = datetime.datetime.strptime(date.split()[0], - '%Y-%m-%d').date() - releases[name] = FileRelease(name, date, [l]) - elif name and links is None: + import re + match = re.match(r'^## \[(.*?)\](?:\((.*?)\))?(?:\s*-\s*(.*))?', l) + if match: + name = match.group(1) + link = match.group(2) + date_str = match.group(3) + + if name == 'Unreleased': + date = '' + else: + name = _strip_relname(name) + if not date_str or not date_str.strip(): + date = datetime.date.today() + else: + # Strip out trailing comments like ` '] + link_buffer)) + open(filename, 'w').write('\n'.join([HEADING] + rel_buffer) + '\n') @click.command @@ -332,15 +342,47 @@ def write_changelog(releases, links, rel_changes, release_as, release_to, help='Write modified changelog file.') @click.option('--verbose', '-v', is_flag=True, default=False, help='Print information about the running operations') +@click.option( + '--bump', type=click.Choice(['major', 'minor', 'patch']), + help='Automatically determine release_as by bumping the latest release.') @click.argument('changelog-file', required=False, default='CHANGELOG.md', type=click.Path(exists=True)) -def main(token, changelog_file='CHANGELOG.md', exclude_pull=None, +def main(token, changelog_file='CHANGELOG.md', bump=None, exclude_pull=None, merged_to=None, release_as=None, release_from=None, release_to=None, write=False, verbose=False): logging.basicConfig(level=logging.INFO if verbose else logging.WARNING) if release_as is not None and release_to is not None: raise SystemExit('Only one of `release_as` and `release_to` can be used.') try: + releases, _ = load_changelog(changelog_file) + latest_release = next((r.name for r in sorted( + releases.values(), reverse=True, key=lambda x: x.published + if x.published else datetime.date.min) if r.name != 'Unreleased'), None) + + if bump: + if release_as: + raise SystemExit('Cannot use both --bump and --release-as.') + if release_to: + raise SystemExit('Cannot use both --bump and --release-to.') + + base_version = release_from or latest_release + import re + m = re.match(r'^(v?)(\d+)\.(\d+)\.(\d+)(.*)$', base_version) + if not m: + raise SystemExit(f'Cannot bump version {base_version}') + prefix, major, minor, patch, suffix = m.groups() + if bump == 'major': + new_version = f"{int(major)+1}.0.0" + elif bump == 'minor': + new_version = f"{major}.{int(minor)+1}.0" + elif bump == 'patch': + new_version = f"{major}.{minor}.{int(patch)+1}" + + release_as = f"{prefix}{new_version}{suffix}" + logging.info(f'Bumping {base_version} to {release_as}') + if not release_from: + release_from = latest_release + date_from = get_release_date(token, release_from) logging.info(f'release date from: {date_from}') date_to = None if not release_to else get_release_date(token, release_to) @@ -356,9 +398,8 @@ def main(token, changelog_file='CHANGELOG.md', exclude_pull=None, if not write: print(rel_changes) raise SystemExit(0) - releases, links = load_changelog(changelog_file) - write_changelog(releases, links, rel_changes, release_as, release_to, - release_from, changelog_file) + write_changelog(releases, rel_changes, release_as, release_to, release_from, + changelog_file) except Error as e: raise SystemExit(f'Error running command: {e}')