{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":17728164,"defaultBranch":"main","name":"terraform","ownerLogin":"hashicorp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-03-13T22:25:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/761456?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715901053.0","currentOid":""},"activityList":{"items":[{"before":"1e590e2f2c31d07afddfc61edfd9b2582e76620c","after":"13d3651fbeae05f7dbb305652fe4700dae807fe1","ref":"refs/heads/nf/may24-data-planned-deferred-changes","pushedAt":"2024-05-17T01:13:56.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nfagerlund","name":"Nick Fagerlund","path":"/nfagerlund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/484309?s=80&v=4"},"commit":{"message":"nodeApplyableDeferredInstance: During apply, re-report deferred data sources too\n\nOutputs will want these too.","shortMessageHtmlLink":"nodeApplyableDeferredInstance: During apply, re-report deferred data …"}},{"before":"740fccc66262707fde8012fb7b13c785edd47e6d","after":null,"ref":"refs/heads/f-stacks-promise-names","pushedAt":"2024-05-16T23:10:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"}},{"before":"43ba8a147c638dd8338e14f4b0c16060a032ff1e","after":"9448845e911fc51390dbd3d3d8f540b2abe13beb","ref":"refs/heads/main","pushedAt":"2024-05-16T23:10:49.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"},"commit":{"message":"stackeval: Improve coverage of namedPromiseReporter impls\n\nThe \"namedPromiseReporter\" interface is a helper we use to collect\nuser-friendly names for promises when we need to report a promise\nself-reference error to the user.\n\nWe collect names for promises reactively on error, rather than proactively\nin the normal course of work, because proactively maintaining a suitable\ndata structure for this cross-cutting concern would be both expensive and\ncomplicated due to it being a cross-cutting concern.\n\nThis compromise therefore allows us to pay the cost of walking over all\nof the promise-owning objects only in the exceptional case where we need\nto report a self-reference error, but it does come at the expense of it\nbeing possible for us to forget to implement this interface for certain\ntypes and thus be unable to name a subset of the affected promises.\n\nThis commit implements reportNamedPromises for all promise-owning types\nthat are reachable from a stackeval.Main, although there is a notable gap\nhere where we can't actually report promises from the individual instances\nof a multi-instance object (e.g. a component) because the promising API\ndoesn't let us peek into a promising.Once to see if it's resolved without\nblocking until it becomes resolved. There are FIXME comments for that\nlimitation in all of the places where it's relevant, and so hopefully in a\nfuture commit we'll devise a suitable way to perform a fallible\nnon-blocking peek of a promise so that we can report promises nested in its\nresult only if they are already present.","shortMessageHtmlLink":"stackeval: Improve coverage of namedPromiseReporter impls"}},{"before":null,"after":"d84a7530e8e34fbde05d9f3bdf804f1089a78b1f","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-16T22:53:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Refactor how interval env var is passed","shortMessageHtmlLink":"Refactor how interval env var is passed"}},{"before":"7a876e3b2c37a2ff4dad7754449c77ca9e07ecac","after":null,"ref":"refs/heads/bflad-patch-1","pushedAt":"2024-05-16T21:15:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"}},{"before":"0cbab0f06ab234bee42cde039c42ebe2ea1ce6b4","after":"43ba8a147c638dd8338e14f4b0c16060a032ff1e","ref":"refs/heads/main","pushedAt":"2024-05-16T21:15:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md (#35171)","shortMessageHtmlLink":"Update CHANGELOG.md (#35171)"}},{"before":null,"after":"7a876e3b2c37a2ff4dad7754449c77ca9e07ecac","ref":"refs/heads/bflad-patch-1","pushedAt":"2024-05-16T19:56:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"721ffea0e148c815abd916c43cb0e41f5c6c8a51","after":null,"ref":"refs/heads/bflad/move_null_resource","pushedAt":"2024-05-16T19:54:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"}},{"before":"d346432dd0dd6f20dcd4ce0645e0f16ca2c31cb7","after":"0cbab0f06ab234bee42cde039c42ebe2ea1ce6b4","ref":"refs/heads/main","pushedAt":"2024-05-16T19:54:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Support moving from null_resource to terraform_data (#35163)\n\nThis change enables the built-in provider's `terraform_data` managed resource to work with the `moved` configuration block where the `from` address is a `null_resource` managed resource type from the official `hashicorp/null` provider. It produces no plan differences for typical configurations and specifically helps practitioners from re-running provisioners while moving resource types.\r\n\r\nIn addition to the unit testing, this was manually tested with the following configurations and outputs:\r\n\r\nInitial configuration (no `triggers`):\r\n\r\n```terraform\r\nterraform {\r\n required_providers {\r\n null = {\r\n source = \"hashicorp/null\"\r\n version = \"3.2.2\"\r\n }\r\n }\r\n}\r\n\r\nresource \"null_resource\" \"example\" {\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n```\r\n\r\nMoved configuration (no `triggers`):\r\n\r\n```terraform\r\nresource \"terraform_data\" \"example\" {\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n\r\nmoved {\r\n from = null_resource.example\r\n to = terraform_data.example\r\n}\r\n```\r\n\r\nMoved output (no `triggers`):\r\n\r\n```console\r\n$ terraform apply\r\nterraform_data.example: Refreshing state... [id=892002337455008838]\r\n\r\nTerraform will perform the following actions:\r\n\r\n # null_resource.example has moved to terraform_data.example\r\n resource \"terraform_data\" \"example\" {\r\n id = \"892002337455008838\"\r\n }\r\n\r\nPlan: 0 to add, 0 to change, 0 to destroy.\r\n\r\nDo you want to perform these actions?\r\n Terraform will perform the actions described above.\r\n Only 'yes' will be accepted to approve.\r\n\r\n Enter a value: yes\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n```\r\n\r\nInitial configuration (with `triggers`):\r\n\r\n```terraform\r\nterraform {\r\n required_providers {\r\n null = {\r\n source = \"hashicorp/null\"\r\n version = \"3.2.2\"\r\n }\r\n }\r\n}\r\n\r\nresource \"null_resource\" \"example\" {\r\n triggers = {\r\n examplekey = \"examplevalue\"\r\n }\r\n\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n```\r\n\r\nMoved configuration (with `triggers`):\r\n\r\n```terraform\r\nresource \"terraform_data\" \"example\" {\r\n triggers_replace = {\r\n examplekey = \"examplevalue\"\r\n }\r\n\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n\r\nmoved {\r\n from = null_resource.example\r\n to = terraform_data.example\r\n}\r\n```\r\n\r\nMoved output (with `triggers`):\r\n\r\n```console\r\n$ terraform apply\r\nterraform_data.example: Refreshing state... [id=1651348367769440250]\r\n\r\nTerraform will perform the following actions:\r\n\r\n # null_resource.example has moved to terraform_data.example\r\n resource \"terraform_data\" \"example\" {\r\n id = \"1651348367769440250\"\r\n # (1 unchanged attribute hidden)\r\n }\r\n\r\nPlan: 0 to add, 0 to change, 0 to destroy.\r\n\r\nDo you want to perform these actions?\r\n Terraform will perform the actions described above.\r\n Only 'yes' will be accepted to approve.\r\n\r\n Enter a value: yes\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n```","shortMessageHtmlLink":"Support moving from null_resource to terraform_data (#35163)"}},{"before":"94ab59c5b6bd70ce702fc3bc9937e6fcb7c5b370","after":"d346432dd0dd6f20dcd4ce0645e0f16ca2c31cb7","ref":"refs/heads/main","pushedAt":"2024-05-16T14:50:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mutahhir","name":"Mutahhir Hayat","path":"/mutahhir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/573531?s=80&v=4"},"commit":{"message":"version: Clean up after 1.9.0-alpha20240516 release","shortMessageHtmlLink":"version: Clean up after 1.9.0-alpha20240516 release"}},{"before":"72c25974c87682fcafdc934dda730a08a21ad2d5","after":"94ab59c5b6bd70ce702fc3bc9937e6fcb7c5b370","ref":"refs/heads/main","pushedAt":"2024-05-16T12:51:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"update CHANGELOG.md","shortMessageHtmlLink":"update CHANGELOG.md"}},{"before":"e8119cced39bdd9edf0944f35a8c980336c2c6d1","after":null,"ref":"refs/heads/jbardin/remove-state-copies","pushedAt":"2024-05-16T12:50:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"}},{"before":"619c5f172044a89c121e15ba6f772ea5e71e7c9e","after":"72c25974c87682fcafdc934dda730a08a21ad2d5","ref":"refs/heads/main","pushedAt":"2024-05-16T12:50:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"Merge pull request #35164 from hashicorp/jbardin/remove-state-copies\n\nremove extra state.DeepCopy from updateStateHook","shortMessageHtmlLink":"Merge pull request #35164 from hashicorp/jbardin/remove-state-copies"}},{"before":"5956767627c78597e665765f793ee9de01acfd57","after":"619c5f172044a89c121e15ba6f772ea5e71e7c9e","ref":"refs/heads/main","pushedAt":"2024-05-16T12:41:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mutahhir","name":"Mutahhir Hayat","path":"/mutahhir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/573531?s=80&v=4"},"commit":{"message":"version: Prepare for 1.9.0-alpha20240516 release","shortMessageHtmlLink":"version: Prepare for 1.9.0-alpha20240516 release"}},{"before":null,"after":"0b44869874885546f057ab87f2ebcc258e80180c","ref":"refs/heads/liamcervante/enable-deferrals-in-stack-tests","pushedAt":"2024-05-16T11:43:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"stacks: Enable resource deferrals within stack tests","shortMessageHtmlLink":"stacks: Enable resource deferrals within stack tests"}},{"before":"48fc2d3ac7c24cb9e29a54b370de858e0c98f0cc","after":"5956767627c78597e665765f793ee9de01acfd57","ref":"refs/heads/main","pushedAt":"2024-05-16T11:17:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"7a3a12cb1cbfe28b458f75ae1fff13308a7bfea6","after":null,"ref":"refs/heads/liamcervante/35160","pushedAt":"2024-05-16T11:15:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"}},{"before":"7a8ffff66ee026dc425311d494fc9fb4bcdb5add","after":"48fc2d3ac7c24cb9e29a54b370de858e0c98f0cc","ref":"refs/heads/main","pushedAt":"2024-05-16T11:15:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"terraform test: Disallow version constraints within test files (#35161)","shortMessageHtmlLink":"terraform test: Disallow version constraints within test files (#35161)"}},{"before":"3845aa1a7d58628eb3456574937b19f48e1f8abb","after":"7a8ffff66ee026dc425311d494fc9fb4bcdb5add","ref":"refs/heads/main","pushedAt":"2024-05-16T11:06:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"stacks: Fix unknown provider values crashing validation phase (#35155)\n\n* test to reproduce\r\n\r\n* stacks: Fix unknown provider values crashing validation phase\r\n\r\n* remove extra type information\r\n\r\n---------\r\n\r\nCo-authored-by: CJ Horton ","shortMessageHtmlLink":"stacks: Fix unknown provider values crashing validation phase (#35155)"}},{"before":"bf047027bf64b2ceaaaaaf6e7a729b001dd27afd","after":"1e590e2f2c31d07afddfc61edfd9b2582e76620c","ref":"refs/heads/nf/may24-data-planned-deferred-changes","pushedAt":"2024-05-16T01:37:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nfagerlund","name":"Nick Fagerlund","path":"/nfagerlund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/484309?s=80&v=4"},"commit":{"message":"Finish implementing partial-expanded data sources\n\nFill in `nodePlannablePartialExpandedResource.dataResourceExecute`, and report\n`ResourceInstanceChange` values for them in Deferred.","shortMessageHtmlLink":"Finish implementing partial-expanded data sources"}},{"before":null,"after":"368ccbf63a9294313435b3b3ffa48076e2b7a554","ref":"refs/heads/bump_golang_x_net","pushedAt":"2024-05-15T23:05:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"finnigja","name":"Jamie Finnigan","path":"/finnigja","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/421063?s=80&v=4"},"commit":{"message":"make syncdeps","shortMessageHtmlLink":"make syncdeps"}},{"before":null,"after":"e8119cced39bdd9edf0944f35a8c980336c2c6d1","ref":"refs/heads/jbardin/remove-state-copies","pushedAt":"2024-05-15T18:27:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"remove extra state.DeepCopy from updateStateHook\n\nAll production state implementations copy the given state when storing\nit to temporary or permanent storage, either explicitly with DeepCopy,\nor implicitly by serializing the state. Since `updateStateHook` is\ncalled with every state change, a second call to `DeepCopy` with that\nhook doubles the overhead of `PostStateUpdate`.\n\nSince all Hook implementations which handle `PostStateUpdate` (which is\nexactly 1 in non-test code) only call state methods that eventually copy\nthe state, we can remove the extra copy from the `updateStateHook`\nitself. The state was already locked for the duration of the\n`PostStateUpdate` call previously, so no additional delay should result.\n\nFor consistency this also updates the documentation for\n`PostStateUpdate` to record the new caller and callee expectations based\non the existing implementation. The Hook interface predated the\n`statemgr` which provides a better interface for synchronizing state\naccess and therefor required extra copying at that time, while now we\ncan more easily declare that the method requires concurrent access be\nlocked for the duration of the call.","shortMessageHtmlLink":"remove extra state.DeepCopy from updateStateHook"}},{"before":"e2a8a387bf23b95ab06dc41ce3dc3bb48238f458","after":"721ffea0e148c815abd916c43cb0e41f5c6c8a51","ref":"refs/heads/bflad/move_null_resource","pushedAt":"2024-05-15T18:02:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Support moving from null_resource to terraform_data\n\nThis change enables the built-in provider's `terraform_data` managed resource to work with the `moved` configuration block where the `from` address is a `null_resource` managed resource type from the official `hashicorp/null` provider. It produces no plan differences for typical configurations and specifically helps practitioners from re-running provisioners while moving resource types.\n\nIn addition to the unit testing, this was manually tested with the following configurations and outputs:\n\nInitial configuration (no `triggers`):\n\n```terraform\nterraform {\n required_providers {\n null = {\n source = \"hashicorp/null\"\n version = \"3.2.2\"\n }\n }\n}\n\nresource \"null_resource\" \"example\" {\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n```\n\nMoved configuration (no `triggers`):\n\n```terraform\nresource \"terraform_data\" \"example\" {\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n\nmoved {\n from = null_resource.example\n to = terraform_data.example\n}\n```\n\nMoved output (no `triggers`):\n\n```console\n$ terraform apply\nterraform_data.example: Refreshing state... [id=892002337455008838]\n\nTerraform will perform the following actions:\n\n # null_resource.example has moved to terraform_data.example\n resource \"terraform_data\" \"example\" {\n id = \"892002337455008838\"\n }\n\nPlan: 0 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\n```\n\nInitial configuration (with `triggers`):\n\n```terraform\nterraform {\n required_providers {\n null = {\n source = \"hashicorp/null\"\n version = \"3.2.2\"\n }\n }\n}\n\nresource \"null_resource\" \"example\" {\n triggers = {\n examplekey = \"examplevalue\"\n }\n\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n```\n\nMoved configuration (with `triggers`):\n\n```terraform\nresource \"terraform_data\" \"example\" {\n triggers_replace = {\n examplekey = \"examplevalue\"\n }\n\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n\nmoved {\n from = null_resource.example\n to = terraform_data.example\n}\n```\n\nMoved output (with `triggers`):\n\n```console\n$ terraform apply\nterraform_data.example: Refreshing state... [id=1651348367769440250]\n\nTerraform will perform the following actions:\n\n # null_resource.example has moved to terraform_data.example\n resource \"terraform_data\" \"example\" {\n id = \"1651348367769440250\"\n # (1 unchanged attribute hidden)\n }\n\nPlan: 0 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\n```","shortMessageHtmlLink":"Support moving from null_resource to terraform_data"}},{"before":null,"after":"e2a8a387bf23b95ab06dc41ce3dc3bb48238f458","ref":"refs/heads/bflad/move_null_resource","pushedAt":"2024-05-15T17:59:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Support moving from null_resource to terraform_data\n\nThis change enables the built-in provider's `terraform_data` managed resource to work with the `moved` configuration block where the `from` address is a `null_resource` managed resource type from the official `hashicorp/null` provider. It produces no plan differences for typical configurations and specifically helps practitioners from re-running provisioners while moving resource types.\n\nIn addition to the unit testing, this was manually tested with the following configurations and outputs:\n\nInitial configuration (no `triggers`):\n\n```terraform\nterraform {\n required_providers {\n null = {\n source = \"hashicorp/null\"\n version = \"3.2.2\"\n }\n }\n}\n\nresource \"null_resource\" \"example\" {\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n```\n\nMoved configuration (no `triggers`):\n\n```terraform\nresource \"terraform_data\" \"example\" {\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n\nmoved {\n from = null_resource.example\n to = terraform_data.example\n}\n```\n\nMoved output (no `triggers`):\n\n```console\n$ terraform apply\nterraform_data.example: Refreshing state... [id=892002337455008838]\n\nTerraform will perform the following actions:\n\n # null_resource.example has moved to terraform_data.example\n resource \"terraform_data\" \"example\" {\n id = \"892002337455008838\"\n }\n\nPlan: 0 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\n```\n\nInitial configuration (with `triggers`):\n\n```terraform\nterraform {\n required_providers {\n null = {\n source = \"hashicorp/null\"\n version = \"3.2.2\"\n }\n }\n}\n\nresource \"null_resource\" \"example\" {\n triggers = {\n examplekey = \"examplevalue\"\n }\n\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n```\n\nMoved configuration (with `triggers`):\n\n```terraform\nresource \"terraform_data\" \"example\" {\n triggers_replace = {\n examplekey = \"examplevalue\"\n }\n\n provisioner \"local-exec\" {\n command = \"echo 'Hello, World!'\"\n }\n}\n\nmoved {\n from = null_resource.example\n to = terraform_data.example\n}\n```\n\nMoved output (with `triggers`):\n\n```console\n$ terraform apply\nterraform_data.example: Refreshing state... [id=1651348367769440250]\n\nTerraform will perform the following actions:\n\n # null_resource.example has moved to terraform_data.example\n resource \"terraform_data\" \"example\" {\n id = \"1651348367769440250\"\n # (1 unchanged attribute hidden)\n }\n\nPlan: 0 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\n```","shortMessageHtmlLink":"Support moving from null_resource to terraform_data"}},{"before":"41d5430549cbf0ee7495d5840dbccc8f6f46419c","after":"84398a8202b75c71a546c8abb3813833c48f915e","ref":"refs/heads/v1.8","pushedAt":"2024-05-15T15:41:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"update CHANGELOG.md","shortMessageHtmlLink":"update CHANGELOG.md"}},{"before":"f4a84fea3db19b3ef9d6f51989402e619d24212e","after":null,"ref":"refs/heads/backport-35157","pushedAt":"2024-05-15T15:39:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"}},{"before":"e3f1c61713ca075ad47c39a53957bece092a9d64","after":"41d5430549cbf0ee7495d5840dbccc8f6f46419c","ref":"refs/heads/v1.8","pushedAt":"2024-05-15T15:39:51.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"Merge pull request #35162 from hashicorp/backport-35157\n\nv1.8 Backport of #35157","shortMessageHtmlLink":"Merge pull request #35162 from hashicorp/backport-35157"}},{"before":null,"after":"f4a84fea3db19b3ef9d6f51989402e619d24212e","ref":"refs/heads/backport-35157","pushedAt":"2024-05-15T15:31:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"walk multiple ancestors at once in ReferenceMap\n\nThe existing implementation of parentModuleDependsOn would walk each\nreference separately, but if there were many dependencies which were all\ninterconnected, that would end up walking over the same nodes multiple\ntimes, and storing many duplicate results.\n\nSince a graph walk can start at multiple nodes, we use the extended\nversion of Ancestors to start at all dependencies simultaneously,\nreducing the time spend traversing the graph as well as automatically\nremoving duplicates.","shortMessageHtmlLink":"walk multiple ancestors at once in ReferenceMap"}},{"before":"f41a1fb3a402b53395924c2e47e218700b8adba4","after":null,"ref":"refs/heads/jbardin/depends-on-references","pushedAt":"2024-05-15T15:11:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"}},{"before":"dc3a040a4164ffba863cef7bd216c4f49e30e40b","after":"3845aa1a7d58628eb3456574937b19f48e1f8abb","ref":"refs/heads/main","pushedAt":"2024-05-15T15:11:39.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"Merge pull request #35157 from hashicorp/jbardin/depends-on-references\n\nReduce redundant walks when resolving module `depends_on`","shortMessageHtmlLink":"Merge pull request #35157 from hashicorp/jbardin/depends-on-references"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETDHokgA","startCursor":null,"endCursor":null}},"title":"Activity · hashicorp/terraform"}