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

feat(compose)!: implement compose v2 with improved typing #426

Merged
merged 16 commits into from
Mar 6, 2024

Conversation

alexanderankin
Copy link
Collaborator

relates to #306, #358

@totallyzen totallyzen changed the title Yet Another Compose Implementation (yacl) feat(compose)!: implement compose v2 with improved typing Feb 28, 2024
@alexanderankin
Copy link
Collaborator Author

alexanderankin commented Mar 1, 2024 via email

@alexanderankin
Copy link
Collaborator Author

ok, so, oops - i can pass the tests locally on macos and ubuntu 22.04 - but not on ci. ipv4 / ipv6 advice totally welcome. maybe i take the previous approach of just returning the first possible answer, given that is passes my test of actually giving the right port for the right service or something?

@jankatins
Copy link
Contributor

It's taken from https://developer.hashicorp.com/terraform/language/functions/one -
what about "get_first_element_or_raise"?

get_only_element_or_raise? But my personal style would be to inline it :-)

@carlosemart
Copy link

@alexanderankin, does it make sense to add a wait_for_healthy method that waits for the container status to be correct?

@alexanderankin
Copy link
Collaborator Author

@alexanderankin, does it make sense to add a wait_for_healthy method that waits for the container status to be correct?

im not sure, the wait method is kept from before - just the standard http wait but parametrized, from the previous api of this module

@alexanderankin
Copy link
Collaborator Author

removed fmt:off guards and it is definitely tougher on the eyes (and the with urlopen(url) as r: r.read() is no longer one concise thought expressed as one statement but rather a bloated 2 lines and an indent) - but at least it is linted the same way as the rest of the code is now.

if there are no better ideas about how to merge this, its probably better to just merge?

@totallyzen
Copy link
Collaborator

but rather a bloated 2 lines and an indent

I agree, but that's standard Python for you.

On the array formatting (rip pretty code) I am happy for you to try to reduce the line length to 100 and see if that helps (on another PR).

Thanks for accommodating my comments though! 🙏 💚

Copy link
Collaborator

@totallyzen totallyzen left a comment

Choose a reason for hiding this comment

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

LGTM for a first pass. The only thing I can see is to add more tests/examples, but there is no point in delaying this PR from being merged.

You did a great job! 💚

@alexanderankin alexanderankin merged commit 5356caf into testcontainers:main Mar 6, 2024
7 checks passed
totallyzen pushed a commit that referenced this pull request Mar 6, 2024
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](testcontainers-v3.7.1...testcontainers-v4.0.0)
(2024-03-06)

### Release Notes

The breaking changes are the ones we were able to easily track. If you
spot any new issues between `3.7.1` and `4.0.0`, please do report it and
we'll do our best to fix everything. The release is now

Some kudos from @totallyzen to folks who helped a great deal in starting
things again:
- kudos to @alexanderankin for his contribution on #426 
- kudos to @jankatins for feedback on various PRs including 
- kudos to @max-pfeiffer and @bearrito for their contributions as well


### ⚠ BREAKING CHANGES

* **compose:** implement compose v2 with improved typing
([#426](#426))
* **core:** add support for `tc.host` and de-prioritise `docker:dind`
([#388](#388))

### Features

* **build:** use poetry and organise modules
([#408](#408))
([6c69583](6c69583))
* **compose:** allow running specific services in compose
([f61dcda](f61dcda))
* **compose:** implement compose v2 with improved typing
([#426](#426))
([5356caf](5356caf))
* **core:** add support for `tc.host` and de-prioritise `docker:dind`
([#388](#388))
([2db8e6d](2db8e6d))
* **redis:** support AsyncRedisContainer
([#442](#442))
([cc4cb37](cc4cb37))
* **release:** automate release via release-please
([#429](#429))
([30f859e](30f859e))


### Bug Fixes

* Added URLError to exceptions to wait for in elasticsearch
([0f9ad24](0f9ad24))
* **build:** add `pre-commit` as a dev dependency to simplify local dev
and CI
([#438](#438))
([1223583](1223583))
* **build:** early exit strategy for modules
([#437](#437))
([7358b49](7358b49))
* changed files breaks on main
([#422](#422))
([3271357](3271357))
* flaky garbage collection resulting in testing errors
([#423](#423))
([b535ea2](b535ea2))
* rabbitmq readiness probe
([#375](#375))
([71cb75b](71cb75b))
* **release:** prove that the release process updates the version
([#444](#444))
([87b5873](87b5873))
* test linting issue
([427c9b8](427c9b8))


### Documentation

* Sphinx - Add title to each doc page
([#443](#443))
([750e12a](750e12a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants