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

fix: always absolute paths when tarring files to a Docker container #814

Merged
merged 20 commits into from
Feb 15, 2023

Conversation

mdelapenya
Copy link
Member

@mdelapenya mdelapenya commented Feb 10, 2023

  • chore: extract to variable to avoid double calculation
  • chore: add tests including absolute paths
  • chore: merge tests using a test table
  • fix: keep parent directory as the root of the TAR file

What does this PR do?

It modifies how the TAR code creates the TAR file structure, updating the header on each file to remove the absolute path from the tar header. Therefore:

/home/myname/migrations
  - a.txr
  - b.txt
  - dir
      - d.txt

will generate a tar file from migrations, not keeping the full path before migrations.

Also, as a prevention, we are always converting the source to its absolute representation, which will cover us from wrong interpretations of the Docker libraries when dealing with path on Windows or Linux.

We are adding tests that demonstrates the TAR code behaves as expected in both cases: with absolute paths and with relative ones.

Why is it important?

Although working at the test level, the users expect that copying files should work as docker run -v $(pwd):/tmp, where only contents of the last directory get into the container.

This makes sense to be changed.

Related issues

@mdelapenya mdelapenya requested a review from a team as a code owner February 10, 2023 12:21
@mdelapenya mdelapenya added the bug An issue with the library label Feb 10, 2023
@mdelapenya mdelapenya self-assigned this Feb 10, 2023
@netlify
Copy link

netlify bot commented Feb 10, 2023

Deploy Preview for testcontainers-go ready!

Name Link
🔨 Latest commit 9d53673
🔍 Latest deploy log https://app.netlify.com/sites/testcontainers-go/deploys/63ecca977153890008c40ef6
😎 Deploy Preview https://deploy-preview-814--testcontainers-go.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 settings.

file.go Show resolved Hide resolved
docker_test.go Outdated Show resolved Hide resolved
file.go Outdated Show resolved Hide resolved
mdelapenya and others added 13 commits February 10, 2023 17:56
…estcontainers#819)

Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.17.2 to 4.18.0.
- [Release notes](https://github.com/jackc/pgx/releases)
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](jackc/pgx@v4.17.2...v4.18.0)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…s#816)

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](golang/sys@v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rs#818)

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….17 (testcontainers#817)

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.16 to 1.6.17.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](containerd/containerd@v1.6.16...v1.6.17)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…amples (testcontainers#827)

* chore(deps): bump google.golang.org/grpc in /examples/pubsub

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/spanner

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/bigtable

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/datastore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/firestore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: add localstack basic example

Run "go run . --name localstack --image "localstack/localstack:0.11.2" --title LocalStack"

* chore: add wait for log

* chore: add Docker socket binding

* chore: support defining legacy mode

* chore: support passing services and configuring them

* chore: simplify the creation of a localstack container request

It will allow users not to pass the legacy mode everywhere. Instead,
it's defined in the initial request, and consumed downstream

* chore: support configuring the AWS region

* chore: expose localstack container

* chore: support for retrieving the endpoint of a given service

* chore: store enabled services in the localstack container

* chore: store the region in the localstack container

* chore: apply default region when needed

* chore: support passing version and legacyMode as functional options

* chore: support for overriding the container request with a functional option

* chore: remove useless method for retrieving the internal endpoint of a service

* chore: simplify unit tests

* chore: create aws session using v1

* chore: add S3 tests

* chore: rename start localstack function

* chore: define default functions as vars

* chore: add tests for legacy mode

* chore: move the Session code to the tests

We want to et the user define how to get the Session

* docs: use S3 in the docs

* fix: read the expected daemon host from the provider

* chore: move v1 tests to its own test package

* feat: add example test for S3 using v2

* chore: store localstack credentials in a struct

* feat: create a functional opt for passing the AWS credentials

* chore: define defaults for the AWS credentials

* chore: include a test for overriding the image

* chore: remove withCredentials

Set them up using the override, as it's as simple as adding the right env vars

* chore: remove withRegion

Set it up using the override, as it's as simple as adding the right env var

* chore: remove withVersion

Set them up using the override, as it's as simple as setting the req.Image

* chore: rename configure method

* chore: reorder container configuration

1. merge the override request
2. set up the functional opts
3. configure Docker host

* chore: move to types

* chor: export structs

* docs: document exported functions

* docs: document how to create localstack container

* docs: reorder

* docs: document containerRequest override

* docs: document the container functional opts

* chore: be more explicit in comment

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore: convert into real module

* chore: remove support for legacy mode

* chore: move tests

* fix: update module paths

* fix: update tests after moving an example to modules

* chore: bump default version to 1.3.1

* chore: remove Port from the Service struct

If the user wants to use the legacy mode, then they should build the
environment accordingly (e.g. SERVICES env var)

* fix: wrong relative path to the docs

* chore: remove any code to Services

We'll delegate it to the user, using the localstack env vars

* chore: adjust unit tests

* docs: include tests

* chore: use waitFor HTTP health

* chore: bump to latest version

* chore: go mod examples

* chore: rename GH action workflow file

---------

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>
…estcontainers#831)

Bumps [go.mongodb.org/mongo-driver](https://github.com/mongodb/mongo-go-driver) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/mongodb/mongo-go-driver/releases)
- [Commits](mongodb/mongo-go-driver@v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: go.mongodb.org/mongo-driver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…xamples (testcontainers#836)

* chore(deps): bump google.golang.org/api in /examples/bigtable

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/spanner

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/pubsub

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/firestore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/datastore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…s#826)

* chore: create a separate module for the generator

* chore: get the root directory in the new layout

* feat: support for creating modules or examples

* fix: update dependabot and mkdocs

* chore: extract example parent dir calculation to a function

* chore: define entrypoint and container name methods

* chore: rename setupTech to startContainer

* chore: rename setup function in example modules

* chor: include modulegen in dependabot

* chore: add build script for modulegen

* chore: include modulegen tests in CI

* fix: update tests

* docs: add missing dependabot entry

* chore: update GH workflow example type

* fix: do not depend on hardcoded lengths

* chore: generate modules in its own directory in docs

* chore: add build script for modules

* docs: reuse
* main:
  feat: support generating Go modules or example modules (testcontainers#826)
  chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (testcontainers#836)
  chore(deps): bump go.mongodb.org/mongo-driver in /examples/mongodb (testcontainers#831)
  feat: add localstack module (testcontainers#800)
  chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 in /examples (testcontainers#827)
  chore(deps): bump github.com/containerd/containerd from 1.6.16 to 1.6.17 (testcontainers#817)
  chore(deps): bump golang.org/x/text from 0.6.0 to 0.7.0 (testcontainers#818)
  chore(deps): bump golang.org/x/sys from 0.4.0 to 0.5.0 (testcontainers#816)
  chore(deps): bump github.com/jackc/pgx/v4 in /examples/cockroachdb (testcontainers#819)
@mdelapenya mdelapenya changed the title fix: do not preserve full paths when copying files to a container using absolute paths fix: always absolute paths when tarring files to a Docker container Feb 15, 2023
@mdelapenya mdelapenya merged commit 73750c5 into testcontainers:main Feb 15, 2023
@mdelapenya mdelapenya deleted the full-path-copy-to-container branch February 15, 2023 16:46
mdelapenya added a commit to mdelapenya/testcontainers-go that referenced this pull request Feb 16, 2023
…estcontainers#814)

* chore: extract to variable to avoid double calculation

* chore: add tests including absolute paths

* chore: merge tests using a test table

* fix: keep parent directory as the root of the TAR file

* docs: document the change

* chore: make the path OS-agnostic

* chore: simplify

* fix: use filepath to be OS-independent

* chore(deps): bump github.com/jackc/pgx/v4 in /examples/cockroachdb (testcontainers#819)

Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.17.2 to 4.18.0.
- [Release notes](https://github.com/jackc/pgx/releases)
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](jackc/pgx@v4.17.2...v4.18.0)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump golang.org/x/sys from 0.4.0 to 0.5.0 (testcontainers#816)

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](golang/sys@v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump golang.org/x/text from 0.6.0 to 0.7.0 (testcontainers#818)

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump github.com/containerd/containerd from 1.6.16 to 1.6.17 (testcontainers#817)

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.16 to 1.6.17.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](containerd/containerd@v1.6.16...v1.6.17)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 in /examples (testcontainers#827)

* chore(deps): bump google.golang.org/grpc in /examples/pubsub

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/spanner

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/bigtable

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/datastore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/firestore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add localstack module (testcontainers#800)

* chore: add localstack basic example

Run "go run . --name localstack --image "localstack/localstack:0.11.2" --title LocalStack"

* chore: add wait for log

* chore: add Docker socket binding

* chore: support defining legacy mode

* chore: support passing services and configuring them

* chore: simplify the creation of a localstack container request

It will allow users not to pass the legacy mode everywhere. Instead,
it's defined in the initial request, and consumed downstream

* chore: support configuring the AWS region

* chore: expose localstack container

* chore: support for retrieving the endpoint of a given service

* chore: store enabled services in the localstack container

* chore: store the region in the localstack container

* chore: apply default region when needed

* chore: support passing version and legacyMode as functional options

* chore: support for overriding the container request with a functional option

* chore: remove useless method for retrieving the internal endpoint of a service

* chore: simplify unit tests

* chore: create aws session using v1

* chore: add S3 tests

* chore: rename start localstack function

* chore: define default functions as vars

* chore: add tests for legacy mode

* chore: move the Session code to the tests

We want to et the user define how to get the Session

* docs: use S3 in the docs

* fix: read the expected daemon host from the provider

* chore: move v1 tests to its own test package

* feat: add example test for S3 using v2

* chore: store localstack credentials in a struct

* feat: create a functional opt for passing the AWS credentials

* chore: define defaults for the AWS credentials

* chore: include a test for overriding the image

* chore: remove withCredentials

Set them up using the override, as it's as simple as adding the right env vars

* chore: remove withRegion

Set it up using the override, as it's as simple as adding the right env var

* chore: remove withVersion

Set them up using the override, as it's as simple as setting the req.Image

* chore: rename configure method

* chore: reorder container configuration

1. merge the override request
2. set up the functional opts
3. configure Docker host

* chore: move to types

* chor: export structs

* docs: document exported functions

* docs: document how to create localstack container

* docs: reorder

* docs: document containerRequest override

* docs: document the container functional opts

* chore: be more explicit in comment

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore: convert into real module

* chore: remove support for legacy mode

* chore: move tests

* fix: update module paths

* fix: update tests after moving an example to modules

* chore: bump default version to 1.3.1

* chore: remove Port from the Service struct

If the user wants to use the legacy mode, then they should build the
environment accordingly (e.g. SERVICES env var)

* fix: wrong relative path to the docs

* chore: remove any code to Services

We'll delegate it to the user, using the localstack env vars

* chore: adjust unit tests

* docs: include tests

* chore: use waitFor HTTP health

* chore: bump to latest version

* chore: go mod examples

* chore: rename GH action workflow file

---------

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore(deps): bump go.mongodb.org/mongo-driver in /examples/mongodb (testcontainers#831)

Bumps [go.mongodb.org/mongo-driver](https://github.com/mongodb/mongo-go-driver) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/mongodb/mongo-go-driver/releases)
- [Commits](mongodb/mongo-go-driver@v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: go.mongodb.org/mongo-driver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (testcontainers#836)

* chore(deps): bump google.golang.org/api in /examples/bigtable

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/spanner

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/pubsub

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/firestore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/datastore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: support generating Go modules or example modules (testcontainers#826)

* chore: create a separate module for the generator

* chore: get the root directory in the new layout

* feat: support for creating modules or examples

* fix: update dependabot and mkdocs

* chore: extract example parent dir calculation to a function

* chore: define entrypoint and container name methods

* chore: rename setupTech to startContainer

* chore: rename setup function in example modules

* chor: include modulegen in dependabot

* chore: add build script for modulegen

* chore: include modulegen tests in CI

* fix: update tests

* docs: add missing dependabot entry

* chore: update GH workflow example type

* fix: do not depend on hardcoded lengths

* chore: generate modules in its own directory in docs

* chore: add build script for modules

* docs: reuse

* fix: always pass the absolute path to the tar code

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eddú Meléndez Gonzales <[email protected]>
mdelapenya added a commit to mdelapenya/testcontainers-go that referenced this pull request Feb 16, 2023
* main:
  chore(deps): bump github.com/docker/compose/v2 from 2.15.1 to 2.16.0 in /modules/compose (testcontainers#824)
  fix: always absolute paths when tarring files to a Docker container (testcontainers#814)
  chore(deps): bump github.com/aws/aws-sdk-go in /modules/localstack (testcontainers#835)
  chore(deps): bump github.com/imdario/mergo in /modules/localstack (testcontainers#828)
  feat: support generating Go modules or example modules (testcontainers#826)
  chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (testcontainers#836)
  chore(deps): bump go.mongodb.org/mongo-driver in /examples/mongodb (testcontainers#831)
  feat: add localstack module (testcontainers#800)
mdelapenya added a commit that referenced this pull request Feb 16, 2023
* chore: automate the creation of tags for all modules

* chore: release the entire library with the same script

* chore: support pushing the new module versions to pkg.go.dev

* chore: consistency in variable names

* chore: extract tagging to a function

* chore: extract curl to a function

* chore: extract git push to a function

* chore: extract to main function

* chore: support running the script in DRY_RUN mode

* fix: loop through all modules

* fix: remove extra slash in URL

* docs: document the script

* chore: extract version from version file

* docs: link to pkg.go.dev for info

* docs: document the release script

* fix: do not POST

* feat: add localstack module (#800)

* chore: add localstack basic example

Run "go run . --name localstack --image "localstack/localstack:0.11.2" --title LocalStack"

* chore: add wait for log

* chore: add Docker socket binding

* chore: support defining legacy mode

* chore: support passing services and configuring them

* chore: simplify the creation of a localstack container request

It will allow users not to pass the legacy mode everywhere. Instead,
it's defined in the initial request, and consumed downstream

* chore: support configuring the AWS region

* chore: expose localstack container

* chore: support for retrieving the endpoint of a given service

* chore: store enabled services in the localstack container

* chore: store the region in the localstack container

* chore: apply default region when needed

* chore: support passing version and legacyMode as functional options

* chore: support for overriding the container request with a functional option

* chore: remove useless method for retrieving the internal endpoint of a service

* chore: simplify unit tests

* chore: create aws session using v1

* chore: add S3 tests

* chore: rename start localstack function

* chore: define default functions as vars

* chore: add tests for legacy mode

* chore: move the Session code to the tests

We want to et the user define how to get the Session

* docs: use S3 in the docs

* fix: read the expected daemon host from the provider

* chore: move v1 tests to its own test package

* feat: add example test for S3 using v2

* chore: store localstack credentials in a struct

* feat: create a functional opt for passing the AWS credentials

* chore: define defaults for the AWS credentials

* chore: include a test for overriding the image

* chore: remove withCredentials

Set them up using the override, as it's as simple as adding the right env vars

* chore: remove withRegion

Set it up using the override, as it's as simple as adding the right env var

* chore: remove withVersion

Set them up using the override, as it's as simple as setting the req.Image

* chore: rename configure method

* chore: reorder container configuration

1. merge the override request
2. set up the functional opts
3. configure Docker host

* chore: move to types

* chor: export structs

* docs: document exported functions

* docs: document how to create localstack container

* docs: reorder

* docs: document containerRequest override

* docs: document the container functional opts

* chore: be more explicit in comment

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore: convert into real module

* chore: remove support for legacy mode

* chore: move tests

* fix: update module paths

* fix: update tests after moving an example to modules

* chore: bump default version to 1.3.1

* chore: remove Port from the Service struct

If the user wants to use the legacy mode, then they should build the
environment accordingly (e.g. SERVICES env var)

* fix: wrong relative path to the docs

* chore: remove any code to Services

We'll delegate it to the user, using the localstack env vars

* chore: adjust unit tests

* docs: include tests

* chore: use waitFor HTTP health

* chore: bump to latest version

* chore: go mod examples

* chore: rename GH action workflow file

---------

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore(deps): bump go.mongodb.org/mongo-driver in /examples/mongodb (#831)

Bumps [go.mongodb.org/mongo-driver](https://github.com/mongodb/mongo-go-driver) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/mongodb/mongo-go-driver/releases)
- [Commits](mongodb/mongo-go-driver@v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: go.mongodb.org/mongo-driver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (#836)

* chore(deps): bump google.golang.org/api in /examples/bigtable

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/spanner

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/pubsub

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/firestore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/datastore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: support generating Go modules or example modules (#826)

* chore: create a separate module for the generator

* chore: get the root directory in the new layout

* feat: support for creating modules or examples

* fix: update dependabot and mkdocs

* chore: extract example parent dir calculation to a function

* chore: define entrypoint and container name methods

* chore: rename setupTech to startContainer

* chore: rename setup function in example modules

* chor: include modulegen in dependabot

* chore: add build script for modulegen

* chore: include modulegen tests in CI

* fix: update tests

* docs: add missing dependabot entry

* chore: update GH workflow example type

* fix: do not depend on hardcoded lengths

* chore: generate modules in its own directory in docs

* chore: add build script for modules

* docs: reuse

* chore(deps): bump github.com/imdario/mergo in /modules/localstack (#828)

Bumps [github.com/imdario/mergo](https://github.com/imdario/mergo) from 0.3.12 to 0.3.13.
- [Release notes](https://github.com/imdario/mergo/releases)
- [Commits](darccio/mergo@0.3.12...v0.3.13)

---
updated-dependencies:
- dependency-name: github.com/imdario/mergo
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump github.com/aws/aws-sdk-go in /modules/localstack (#835)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.192 to 1.44.200.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Commits](aws/aws-sdk-go@v1.44.192...v1.44.200)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: always absolute paths when tarring files to a Docker container (#814)

* chore: extract to variable to avoid double calculation

* chore: add tests including absolute paths

* chore: merge tests using a test table

* fix: keep parent directory as the root of the TAR file

* docs: document the change

* chore: make the path OS-agnostic

* chore: simplify

* fix: use filepath to be OS-independent

* chore(deps): bump github.com/jackc/pgx/v4 in /examples/cockroachdb (#819)

Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.17.2 to 4.18.0.
- [Release notes](https://github.com/jackc/pgx/releases)
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](jackc/pgx@v4.17.2...v4.18.0)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump golang.org/x/sys from 0.4.0 to 0.5.0 (#816)

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](golang/sys@v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump golang.org/x/text from 0.6.0 to 0.7.0 (#818)

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump github.com/containerd/containerd from 1.6.16 to 1.6.17 (#817)

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.16 to 1.6.17.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](containerd/containerd@v1.6.16...v1.6.17)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 in /examples (#827)

* chore(deps): bump google.golang.org/grpc in /examples/pubsub

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/spanner

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/bigtable

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/datastore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/grpc in /examples/firestore

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add localstack module (#800)

* chore: add localstack basic example

Run "go run . --name localstack --image "localstack/localstack:0.11.2" --title LocalStack"

* chore: add wait for log

* chore: add Docker socket binding

* chore: support defining legacy mode

* chore: support passing services and configuring them

* chore: simplify the creation of a localstack container request

It will allow users not to pass the legacy mode everywhere. Instead,
it's defined in the initial request, and consumed downstream

* chore: support configuring the AWS region

* chore: expose localstack container

* chore: support for retrieving the endpoint of a given service

* chore: store enabled services in the localstack container

* chore: store the region in the localstack container

* chore: apply default region when needed

* chore: support passing version and legacyMode as functional options

* chore: support for overriding the container request with a functional option

* chore: remove useless method for retrieving the internal endpoint of a service

* chore: simplify unit tests

* chore: create aws session using v1

* chore: add S3 tests

* chore: rename start localstack function

* chore: define default functions as vars

* chore: add tests for legacy mode

* chore: move the Session code to the tests

We want to et the user define how to get the Session

* docs: use S3 in the docs

* fix: read the expected daemon host from the provider

* chore: move v1 tests to its own test package

* feat: add example test for S3 using v2

* chore: store localstack credentials in a struct

* feat: create a functional opt for passing the AWS credentials

* chore: define defaults for the AWS credentials

* chore: include a test for overriding the image

* chore: remove withCredentials

Set them up using the override, as it's as simple as adding the right env vars

* chore: remove withRegion

Set it up using the override, as it's as simple as adding the right env var

* chore: remove withVersion

Set them up using the override, as it's as simple as setting the req.Image

* chore: rename configure method

* chore: reorder container configuration

1. merge the override request
2. set up the functional opts
3. configure Docker host

* chore: move to types

* chor: export structs

* docs: document exported functions

* docs: document how to create localstack container

* docs: reorder

* docs: document containerRequest override

* docs: document the container functional opts

* chore: be more explicit in comment

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore: convert into real module

* chore: remove support for legacy mode

* chore: move tests

* fix: update module paths

* fix: update tests after moving an example to modules

* chore: bump default version to 1.3.1

* chore: remove Port from the Service struct

If the user wants to use the legacy mode, then they should build the
environment accordingly (e.g. SERVICES env var)

* fix: wrong relative path to the docs

* chore: remove any code to Services

We'll delegate it to the user, using the localstack env vars

* chore: adjust unit tests

* docs: include tests

* chore: use waitFor HTTP health

* chore: bump to latest version

* chore: go mod examples

* chore: rename GH action workflow file

---------

Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore(deps): bump go.mongodb.org/mongo-driver in /examples/mongodb (#831)

Bumps [go.mongodb.org/mongo-driver](https://github.com/mongodb/mongo-go-driver) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/mongodb/mongo-go-driver/releases)
- [Commits](mongodb/mongo-go-driver@v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: go.mongodb.org/mongo-driver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (#836)

* chore(deps): bump google.golang.org/api in /examples/bigtable

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/spanner

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/pubsub

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/firestore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump google.golang.org/api in /examples/datastore

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: support generating Go modules or example modules (#826)

* chore: create a separate module for the generator

* chore: get the root directory in the new layout

* feat: support for creating modules or examples

* fix: update dependabot and mkdocs

* chore: extract example parent dir calculation to a function

* chore: define entrypoint and container name methods

* chore: rename setupTech to startContainer

* chore: rename setup function in example modules

* chor: include modulegen in dependabot

* chore: add build script for modulegen

* chore: include modulegen tests in CI

* fix: update tests

* docs: add missing dependabot entry

* chore: update GH workflow example type

* fix: do not depend on hardcoded lengths

* chore: generate modules in its own directory in docs

* chore: add build script for modules

* docs: reuse

* fix: always pass the absolute path to the tar code

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eddú Meléndez Gonzales <[email protected]>

* chore(deps): bump github.com/docker/compose/v2 from 2.15.1 to 2.16.0 in /modules/compose (#824)

* chore(deps): bump github.com/docker/compose/v2 in /modules/compose

Bumps [github.com/docker/compose/v2](https://github.com/docker/compose) from 2.15.1 to 2.16.0.
- [Release notes](https://github.com/docker/compose/releases)
- [Commits](docker/compose@v2.15.1...v2.16.0)

---
updated-dependencies:
- dependency-name: github.com/docker/compose/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: remove replace directives

* chore: bump Docker dependencies to v23.0.0+incompatible

* chore: use proper docker APIs

* chore: use proper docker APIs

* fix: use non-deprecated API

* chore: remove replace directives for Docker in the docs

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Manuel de la Peña <[email protected]>

* chore: run in dry-run mode by default

* chore: bump the version file to the next minor

* chore: support for setting the bump type (major, minor, patch)

* chore: update mkdocs.yml file

* chore: reduce post-script instructions

* chore: restore git state

* chore: extract git to a function

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Eddú Meléndez Gonzales <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug An issue with the library
Projects
None yet
3 participants