-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge tfmigrate-storage implementation into the tfmigrate repository #147
Merged
Conversation
This file contains 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
https://github.com/minamijoyo/tfmigrate/tree/49ea331bbf97b9effe3344428db52d0f29719800/storage It's natural that tfmigrate users will expect to be authenticated cloud providers with the same options and precedences as terraform backend. This was not a problem in the s3 storage (I think) because the authentication logic for AWS is implemented in an external library hashicorp/aws-sdk-go-base. However, except for AWS, to expand support for other history storage types, we need to reuse the upstream code. The problem is that the license of hashicorp/terraform is the MPL2, but the tfmigrate is currently distributed under the terms of MIT. Before expanding support for other storage types, I'll split the storage implementations into a new separate repository, which will be distributed as the MPL2.
To extend support for other history storage types, relicense the storage package from MIT to MPL 2.0 so that we can reuse the upstream hashicorp/terraform implementations without license conflict.
Setup CI with GitHub Actions
The golangci/golangci-lint-action@v2 implicitly installs Go and its version was recently upgraded to Go 1.18. It causes an issue for old golangci-lint. To fix the problem either upgrading golangci-lint-action@v3 and setup Go 1.17.x explicitly or updating golangci-lint to the latest v1.45.2. I fixed both and also upgrading some actions to the latest.
Update golangci-lint to v1.45.2 and actions to latest
Signed-off-by: Kengo TODA <skypencil+github@gmail.com>
Signed-off-by: Kengo TODA <skypencil+github@gmail.com>
Signed-off-by: Kengo TODA <skypencil+github@gmail.com>
Signed-off-by: Kengo TODA <skypencil+github@gmail.com>
Add a simple GCS storage impl
I originally wrote the local and s3 storage implementation for tfmigrate as the MIT license. Next, someone sent me a patch for gcs storage implementation #23, copied from the upstream terraform backend implementation. I was concerned it would violate the MPL2 license because the tfmigrate' license is MIT, and terraform's is MPL2. So I split the storage implementations #80 into a separate https://github.com/minamijoyo/tfmigrate-storage repository and relicensed it as MPL2 so that someone could easily copy snippets from the upstream. However, we could not contact that patch's author and the initial patch was not merged finally. Time passed, KengoTODA sent me another patch minamijoyo/tfmigrate-storage#3 for gcs support which contained minimal functionality and was not copied from upstream. This patch has finally been accepted and merged. That is, I've changed the license of the storage implementation with the intention that it will contain a derivative work of terraform that can be easily copied from terraform's backend implementation to extend various storage types, but this has yet to happen. It's clearly far from the terraform's implementation at the time of writing. Recently, HashiCorp announced that it would change the license of its products, including Terraform, from MPL2 to BSL1.1. https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license If, as I originally intended, we allow contributors to copy code from upstream terraform, the tfmigrate-storage repository must also be changed to BSL. This means that the tfmigrate source can continue to be distributed as MIT, but the tfmigrate's binary will be bounded by BSL. Even though HashiCorp's BSL is a reasonably permissive license with no restrictions other than HashiCorp's competitors, it is no longer open-source by OSI definition. I want to continue to keep tfmigrate as an open-source project. Technically, it is possible to keep the tfmigrate-storage repository as MPL2. Still, I no longer have a solid reason to do so; it is just inconvenient to have a separate repository. Fortunately, KengoTODA and I are still the only contributors to the tfmigrate-storage repository, and I got permission from KengoTODA to re-license his patch as MIT in #146. So, I'm going to change the license of the tfmigrate-storage repository to MIT and will merge it into the tfmigrate repository.
Change tfmigrate-storage license from MPL2 to MIT
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.
Closes #146
We have changed the license of the tfmigrate-storage repository to MIT in minamijoyo/tfmigrate-storage#4, so there is no longer a strong reason to keep the repository separate. Merge the repository for ease of development.
Merge it under storage/ directory using
git subtree add
to keep git history, adjust references, and fix lint issues etc.https://github.com/minamijoyo/tfmigrate-storage/tree/197930a00017e79ae1bc5d23140c102f9a7fcb6b