📢 Migration of Components to a New GitHub Organization complete!
osterman opened this issue · 10 comments
Hello, Cloud Posse Community!
We’re excited to announce that starting on November 12, 2024, we will begin migrating each component in the cloudposse/terraform-aws-components
repository to individual repositories under a new GitHub organization. This change aims to improve the stability, maintainability, and usability of our components.
Why This Migration?
Our goal is to make each component easier to use, contribute to, and maintain. This migration will allow us to:
- Leverage
terratest
automation for better testing. - Implement semantic versioning to clearly communicate updates and breaking changes.
- Improve PR review times and accelerate community contributions.
- Enable Dependabot automation for dependency management.
- And much more!
What to Expect Starting November 12, 2024
- Migration Timeline: The migration will begin on November 12 and is anticipated to finish by the end of the following week.
- Code Freeze: Starting on November 12, this repository will be set to read-only mode, marking the beginning of a code freeze. No new pull requests or issues will be accepted here after that date.
- New Contribution Workflow: After the migration, all contributions should be directed to the new individual component repositories.
- Updated Documentation: To support this transition, we are updating our documentation and
cloudposse-component
updater. - Future Archiving: In approximately six months, we plan to archive this repository and transfer it to the
cloudposse-archives
organization.
Frequently Asked Questions
- Does this affect Terraform modules? No, only the
terraform-aws-components
repository is affected. Our Terraform modules will remain where they are.
We are committed to making this transition as seamless as possible. If you have any questions or concerns, please feel free to post them in this issue. Your feedback is important to us, and we appreciate your support as we embark on this new chapter!
Thank you,
The Cloud Posse Team
Will there be any guidance on how to update our reference architectures to use this new setup?
@mtb-xt just to clarify what @goruha said, we've updated the component-updater
GitHub Action to automatically rewrite the sources in the vendor and component manifest files when it opens the PRs. This should make the upgrade transparent and painless.
Very cool. Looking forward to seeing all the components tested.
-
Will all the same components be available after the migration?
-
Will components still be open source?
-
What will the new organization be named?
Looked through the source code of the component updater and saw this https://github.com/cloudposse-terraform-components
-
Will the component updater be updated to allow overriding the above org to use different sources if needed?
-
Would you folks consider opening up the codeowners for components once they are all in their own repositories like you folks do with terraform modules ?
Thanks!
@nitrocode thanks for raising these questions.
- Will all the same components be available after the migration?
- Yes, we're migrating the components as is, bit-for-bit, to facilitate a switch. However, we anticipate promptly doing major releases on many of the components after that point, to introduce new functionality and improve brownfield infra (a large driver for the initiative). Those breaking changes will likely require local changes in your configurations. That won't happen immediately, but is the reason we're doing all this.
- Will components still be open source?
Yes, we have no plans to change license.
- What will the new organization be named?
Looked through the source code of the component updater and saw this https://github.com/cloudposse-terraform-components
Correct, you found it!
https://github.com/cloudposse-terraform-components
As part of our transition to GitHub Enterprise (GHE), we are reorganizing our open-source projects into more purpose-built organizations. This allows us to better manage repository rulesets, GitHub Apps, and other configurations specific to each organization's purpose. This approach enhances our security posture and improves discoverability. Additionally, keeping our components separate from less opinionated child modules avoids confusion and ensures clearer organization.
- Will the component updater be updated to allow overriding the above org to use different sources if needed?
The component updater uses the sources as define in the vendor and component manifests. Thus, that's supported today.
One thing we've added to the component updater to make this switch less painful, is the ability for it to rewrite the sources to their new homes. So if it see's references to components in cloudposse/terraform-aws-components
it will rewrite those to the new locations.
- Would you folks consider opening up the codeowners for components once they are all in their own repositories like you folks do with terraform modules ?
Yes, so we'll be able to accept more contributions of components and delegate ownership of components with this move. Note, CODEOWNERS
only works with paid GitHub seats, so I think we'll continue to look for solutions that work better for non-org members, such as "allow lists" that we've implemented elsewhere.
We’re excited to announce that the migration of components to individual repositories under the new GitHub organization is now complete! 🎉
cloudposse/terraform-aws-components
repository has been set to read-only mode.
All future updates, contributions, and issues should be directed to the respective component repositories in the new organization.
@osterman @goruha One thing I noticed is that the git history for each component was lost. It's probably too late now to see if that can be retained, but I wanted to point it out in case others were looking for older history, then it would be good to archive terraform-aws-components repo for posterity.
Edit: oh right just reviewed the post again and saw this
Future Archiving: In approximately six months, we plan to archive this repository and transfer it to the cloudposse-archives organization
@nitrocode I re-run the migration script and copied the git history.
It was impossible to preserve commit sha, but we got history, references to PRs, and commit authorship .
You can check this repo as an example https://github.com/cloudposse-terraform-components/aws-bastion/commits/main/
Awesome, I see the history now. Thank you!
Last nitpick, I see the references in the readme for each component often link back to this repo which is soon to be archived.
E.g. https://github.com/cloudposse-terraform-components/aws-iam-role?tab=readme-ov-file#references