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

refactor: replace dirs crate with etcetera #736

Merged

Conversation

joonas
Copy link
Contributor

@joonas joonas commented Sep 18, 2024

I recently learned that dirs depends on option-ext via dir-sys (as of dir-sys 0.4.1 that came in as part of dirs 5.0.1), which is MPL 2.0 licensed.

It does not appear that the author is interested reconsidering their stance on licensing, which unfortunately creates some complications for projects under the CNCF umbrella (as well as many corporate projects), and so I thought I would propose switching dirs out for etcetera since it is MIT or Apache 2.0 licensed.

As you can see from the linked thread, this is a fairly common limitation for adoption, so in the interest of enabling further adoption, I believe it would be in the best interest for testcontainers-rs to reconsider this dependency, especially considering how trivial it is to replace 🙂

FWIW, I have done testing on my end to ensure that the changes I'm proposing produce similar results under Mac OS and Linux, but since I don't have direct access to Windows I can't say with 100% certainty that they do though from reading through the code across both libraries, I feel fairly confident that they should.

Copy link

netlify bot commented Sep 18, 2024

Deploy Preview for testcontainers-rust ready!

Name Link
🔨 Latest commit 3e67b9a
🔍 Latest deploy log https://app.netlify.com/sites/testcontainers-rust/deploys/66ea1c8633a21e0008dbf98d
😎 Deploy Preview https://deploy-preview-736--testcontainers-rust.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Signed-off-by: Joonas Bergius <joonas@bergi.us>
@joonas joonas force-pushed the joonas/replace-dirs-with-etcetera branch from 4c138b3 to 3e67b9a Compare September 18, 2024 00:19
@joonas joonas changed the title Replace dirs dependency with etcetera refactor: replace dirs crate with etcetera Sep 18, 2024
Copy link
Collaborator

@DDtKey DDtKey left a comment

Choose a reason for hiding this comment

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

That's really a good catch!
Thank you 🚀

I find this reasonable and probably we should consider usage cargo-about in CI to prevent accidental usage

@DDtKey DDtKey enabled auto-merge (squash) September 19, 2024 00:09
@DDtKey DDtKey merged commit 6c7019b into testcontainers:main Sep 19, 2024
12 checks passed
@joonas joonas deleted the joonas/replace-dirs-with-etcetera branch September 19, 2024 00:51
@DDtKey DDtKey added this to the 0.23.0 milestone Sep 24, 2024
This was referenced Sep 25, 2024
DDtKey pushed a commit that referenced this pull request Sep 25, 2024
## 🤖 New release
* `testcontainers`: 0.22.0 -> 0.23.0 (⚠️ API breaking changes)

### ⚠️ `testcontainers` breaking changes

```
--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.35.0/src/lints/enum_variant_added.ron

Failed in:
  variant ClientError:UploadToContainerError in /tmp/.tmpnaUdoG/testcontainers-rs/testcontainers/src/core/client.rs:92
  variant ClientError:CopyToContainerError in /tmp/.tmpnaUdoG/testcontainers-rs/testcontainers/src/core/client.rs:94

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.35.0/src/lints/trait_method_added.ron

Failed in:
  trait method testcontainers::core::ImageExt::with_copy_to in file /tmp/.tmpnaUdoG/testcontainers-rs/testcontainers/src/core/image/image_ext.rs:62
  trait method testcontainers::ImageExt::with_copy_to in file /tmp/.tmpnaUdoG/testcontainers-rs/testcontainers/src/core/image/image_ext.rs:62
```

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.23.0] - 2024-09-25

### Details
#### Bug Fixes
- Expose public `copy` types
([#734](#734))
- Typo in an error variant
([#738](#738))

#### Features
- Support copy files to container
([#730](#730))
- Support copying directories to container
([#735](#735))

#### Miscellaneous Tasks
- Copy-to-container interface improvements
([#732](#732))

#### Refactor
- Replace dirs crate with etcetera
([#736](#736))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[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.

2 participants