Skip to content
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

Update madmin-go to version 3 #514

Merged
merged 1 commit into from
Sep 7, 2023

Conversation

acolombier
Copy link
Contributor

Upgrade madmin-go to version 3

This PR upgrade madmin-go to version 3. This required in order to allow the provider supporting more feature that Minio provide.

Reference

Copy link
Collaborator

@felladrin felladrin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for updating it!

@felladrin felladrin merged commit 2e3520c into aminueza:master Sep 7, 2023
2 checks passed
@acolombier acolombier deleted the chore/upgrade-madmin branch September 7, 2023 11:59
@BuJo
Copy link
Collaborator

BuJo commented Sep 22, 2023

Note @acolombier and @felladrin :

Our current Licenses via go-licenses:

      1 AGPL-3.0
     18 Apache-2.0
      3 BSD-2-Clause
     14 BSD-3-Clause
     20 MIT
     14 MPL-2.0

@acolombier
Copy link
Contributor Author

Hi @BuJo, I understand this causes issue as the project doesn't support AGPL just yet. Do you think this something we can work with or do you reckon we will need to downgrade this package?
Just curiosity, since I have started the implementation of replication relying on top of features added by madmin v3

@BuJo
Copy link
Collaborator

BuJo commented Sep 22, 2023

Hey @acolombier , I think it's problematic only on distributing the combined work. Right now the state of the source code is "ok" I think.
I'm not a lawyer, however I think that we could run afoul the AGPL license and the current copyright holder (MinIO, Inc.) if we were to distribute the result as before.

https://min.io/compliance contains a little bit of guidance:

If you distribute, host or create derivative works of the MinIO software over the network, the GNU AGPL v3 license requires that you also distribute the complete, corresponding source code of the combined work under the same GNU AGPL v3 license.

Which means, on the next release to the terraform registry, we need to handle that somehow.
Reading up a little, the LICENSE file in the repository seems to be used for that somehow?

@felladrin
Copy link
Collaborator

My fault, @BuJo. I wasn't paying attention to license compatibility.

Based on what you said here and in the other comment, I'd say it's ok for us to change the repo's LICENSE to some other allowed license, if it will give us a chance to use the new features from madmin-go and would solve the licensing conflicts.

Alternatively, we could downgrade madmin-go, look for a package that could replace it, publish a new provider version and unpublish (if possible) the erroneous versions from MinIO registry.

@felladrin
Copy link
Collaborator

unpublish (if possible) the erroneous versions from MinIO registry

Actually, now I'm thinking nothing is published to MinIO registry. The registry just lists the releases from the repositories releases.

@BuJo
Copy link
Collaborator

BuJo commented Sep 22, 2023

Yeah @felladrin , like I said, I think it "should" be ok. Re-licensing software is... hard without a CLA as we would need to get an agreement from all previous committers. But I hope we don't really need to re-license the current body of code, only the combined work for distribution. My brain... 🤯

How about doing it like https://softwareengineering.stackexchange.com/a/371435:

  • Putting LICENSE: Apache-2.0 OR AGPL-3.0
  • Adding two files: LICENSE.Apache-2.0 and LICENSE.AGPL-3.0 containing the licenses
  • Adding notes to the README.md:
## License

This work is dual-licensed under Apache 2.0 and AGPL 3.0.
The source contained within this repository is Apache 2.0 licensed, however due to `mdadm` being AGPL 3.0, the combined work must be distributed as AGPL 3.0.

`SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later`

I have no idea if that satisfies all the requirements...

@felladrin
Copy link
Collaborator

felladrin commented Sep 22, 2023

Good point! And that solution is brilliant!
Could you open a PR with this change? Then, the discussion will be open to others' opinions.

Meanwhile, I'll publish v1.18.1, which contains the fix for empty service account policy but doesn't contain the update of madmin-go. It will be a branch of tag v1.18.0 instead of main branch.

kireque referenced this pull request in kireque/home-ops Mar 12, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [minio](https://registry.terraform.io/providers/aminueza/minio)
([source](https://togithub.com/aminueza/terraform-provider-minio)) |
required_provider | major | `1.20.1` -> `2.1.0` |

---

### Release Notes

<details>
<summary>aminueza/terraform-provider-minio (minio)</summary>

###
[`v2.1.0`](https://togithub.com/aminueza/terraform-provider-minio/releases/tag/v2.1.0)

[Compare
Source](https://togithub.com/aminueza/terraform-provider-minio/compare/v2.0.1...v2.1.0)

#### What's Changed

- Fixed group policy assign parameter typo by
[@&#8203;danielhass](https://togithub.com/danielhass) in
[https://github.com/aminueza/terraform-provider-minio/pull/553](https://togithub.com/aminueza/terraform-provider-minio/pull/553)
- Document `DeleteMarker` expiry in ilm policy by
[@&#8203;michaelruigrok](https://togithub.com/michaelruigrok) in
[https://github.com/aminueza/terraform-provider-minio/pull/558](https://togithub.com/aminueza/terraform-provider-minio/pull/558)
- Add resource_minio_s3\_object 'source' support by
[@&#8203;fhemberger](https://togithub.com/fhemberger) in
[https://github.com/aminueza/terraform-provider-minio/pull/555](https://togithub.com/aminueza/terraform-provider-minio/pull/555)

#### New Contributors

- [@&#8203;danielhass](https://togithub.com/danielhass) made their first
contribution in
[https://github.com/aminueza/terraform-provider-minio/pull/553](https://togithub.com/aminueza/terraform-provider-minio/pull/553)
- [@&#8203;michaelruigrok](https://togithub.com/michaelruigrok) made
their first contribution in
[https://github.com/aminueza/terraform-provider-minio/pull/558](https://togithub.com/aminueza/terraform-provider-minio/pull/558)
- [@&#8203;fhemberger](https://togithub.com/fhemberger) made their first
contribution in
[https://github.com/aminueza/terraform-provider-minio/pull/555](https://togithub.com/aminueza/terraform-provider-minio/pull/555)

**Full Changelog**:
aminueza/terraform-provider-minio@v2.0.1...v2.1.0

###
[`v2.0.1`](https://togithub.com/aminueza/terraform-provider-minio/releases/tag/v2.0.1)

[Compare
Source](https://togithub.com/aminueza/terraform-provider-minio/compare/v2.0.0...v2.0.1)

#### What's Changed

- Fix null expiration date handling by
[@&#8203;pjsier](https://togithub.com/pjsier) in
[https://github.com/aminueza/terraform-provider-minio/pull/545](https://togithub.com/aminueza/terraform-provider-minio/pull/545)
- Update terraform version to 1.5.7 in GitHub Action by
[@&#8203;felladrin](https://togithub.com/felladrin) in
[https://github.com/aminueza/terraform-provider-minio/pull/540](https://togithub.com/aminueza/terraform-provider-minio/pull/540)

**Full Changelog**:
aminueza/terraform-provider-minio@v2.0.0...v2.0.1

###
[`v2.0.0`](https://togithub.com/aminueza/terraform-provider-minio/releases/tag/v2.0.0)

[Compare
Source](https://togithub.com/aminueza/terraform-provider-minio/compare/v1.20.1...v2.0.0)

#### What's Changed

- Update madmin-go to version 3 by
[@&#8203;acolombier](https://togithub.com/acolombier) in
[https://github.com/aminueza/terraform-provider-minio/pull/514](https://togithub.com/aminueza/terraform-provider-minio/pull/514)
- Handle empty service account policy by
[@&#8203;ArataEM](https://togithub.com/ArataEM) in
[https://github.com/aminueza/terraform-provider-minio/pull/518](https://togithub.com/aminueza/terraform-provider-minio/pull/518)
- Go 1.20 by [@&#8203;BuJo](https://togithub.com/BuJo) in
[https://github.com/aminueza/terraform-provider-minio/pull/519](https://togithub.com/aminueza/terraform-provider-minio/pull/519)
- Destroy object versions on bucket force_destroy by
[@&#8203;pjsier](https://togithub.com/pjsier) in
[https://github.com/aminueza/terraform-provider-minio/pull/524](https://togithub.com/aminueza/terraform-provider-minio/pull/524)
- Update goreleaser-action to v5 and add permission for the workflow to
attach binaries to GitHub Releases by
[@&#8203;felladrin](https://togithub.com/felladrin) in
[https://github.com/aminueza/terraform-provider-minio/pull/521](https://togithub.com/aminueza/terraform-provider-minio/pull/521)
- Add Noncurrent Version expiration to ilm policy by
[@&#8203;ndejesus](https://togithub.com/ndejesus) in
[https://github.com/aminueza/terraform-provider-minio/pull/526](https://togithub.com/aminueza/terraform-provider-minio/pull/526)
- Add service account values to read and import by
[@&#8203;pjsier](https://togithub.com/pjsier) in
[https://github.com/aminueza/terraform-provider-minio/pull/525](https://togithub.com/aminueza/terraform-provider-minio/pull/525)
- feat: add minio_s3\_bucket_replication resource by
[@&#8203;acolombier](https://togithub.com/acolombier) in
[https://github.com/aminueza/terraform-provider-minio/pull/528](https://togithub.com/aminueza/terraform-provider-minio/pull/528)
- feat: recreate user if not found anymore by
[@&#8203;tobikris](https://togithub.com/tobikris) in
[https://github.com/aminueza/terraform-provider-minio/pull/534](https://togithub.com/aminueza/terraform-provider-minio/pull/534)
- Bump google.golang.org/grpc from 1.58.0 to 1.58.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/aminueza/terraform-provider-minio/pull/535](https://togithub.com/aminueza/terraform-provider-minio/pull/535)
- Change terraform-provider-minio license to AGPL-3.0 and append `/v2`
to the module name by [@&#8203;BuJo](https://togithub.com/BuJo) in
[https://github.com/aminueza/terraform-provider-minio/pull/522](https://togithub.com/aminueza/terraform-provider-minio/pull/522)

#### Breaking Change: About the major version update

We've updated `madmin-go` to `v3` so we can use the new features from
the SDK, like the [bucket
replication](https://togithub.com/aminueza/terraform-provider-minio/pull/528).
As a consequence of this, we had to change our License to AGPL-3.0 to
comply with `madmin-go`, [which has been using AGPL-3.0 since its v2
release](https://togithub.com/minio/madmin-go/pull/154).

For those who can't upgrade to **terraform-provider-minio v2** due to
license incompatibilities, we recommend you keep using the **v1** until
you feel you need some of the new features.

To don't let anyone behind, we've created a
[v1](https://togithub.com/aminueza/terraform-provider-minio/tree/v1)
branch, which is now protected and will live along with the
[main](https://togithub.com/aminueza/terraform-provider-minio/tree/main).
So if users of `v1` want to push features/fixes, they can create pull
requests targeting that branch, and as soon as it's merged, we release a
new update for the `v1.x`.

For those importing this package in their software and want to upgrade,
here's the command to upgrade:

```bash
go get github.com/aminueza/terraform-provider-minio/v2@&#8203;v2.0.0
```

**Full Changelog**:
aminueza/terraform-provider-minio@v1.18.0...v2.0.0

> **Note**
> [v1](https://togithub.com/aminueza/terraform-provider-minio/tree/v1)
branch diverged from
[main](https://togithub.com/aminueza/terraform-provider-minio/tree/main)
at after the [release
v1.18.0](https://togithub.com/aminueza/terraform-provider-minio/releases/tag/v1.18.0).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzUuNSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNS42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: kireque-bot[bot] <143391978+kireque-bot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants