freezing-pharmacist-34446
02/22/2024, 2:49 PMorange-ability-1812
02/26/2024, 5:55 PMorange-ability-1812
02/26/2024, 6:00 PMbright-policeman-43626
02/28/2024, 4:03 AMservice_3_frontend
I need to consume both 1_api and 2_api
Garden enables us to do this seamessly with remoteSources.
Also we have a bunch of shared modules for databases, for example we have some modules for Redis
, MongoDB
, Postgres
that are shared across different projects and we use them only when needed.
So far Garden has worked pretty nicely for this use case.
Now answering the questions:
- How often in a week do you need to write a feature or fix a bug across multiple repositories?
Every day we do this kind of changes across multiple repositories, however microservices are managed by different teams so sometimes we fix the dependencies version to a version we know it works and pretty much maintain that for a long time until we need to bump it for local development purposes.
- How does the process look? How complicated or painful it is?
We are not using Garden for the release process itself as we are using other deployment mechanism that are a bit more robust.
- How do you test that your changes do not impact other repos and work well together?
Unit testing & E2E testing as Garden Tasks, we test the whole workflow in CI as well.
- How do you release changes to multiple repos?
PR's to different repos and get them merged.
- Does Garden help with any of the above or does it stand in your way?
It's definitely a valuable tool to manage the multi-dependencies processfreezing-pharmacist-34446
02/29/2024, 2:18 PMorange-ability-1812
02/29/2024, 6:13 PMgarden publish
did not work very well or at all for this purpose.orange-ability-1812
02/29/2024, 6:14 PMorange-ability-1812
02/29/2024, 6:18 PMorange-ability-1812
02/29/2024, 6:27 PMproject.garden.yaml
, services.garden.yaml
, db.garden.yaml
, app.garden.yaml
, tests.garden.yaml
, etc... These form natural "modules". Currently for defining constant valued variables (not CLI or varfiles) they either all go at the top-level project.garden.yaml
or in the individual action (or in a static varfile, which is very unintuitive and cannot interact with the top-level variables well then). In a lot of cases I have variables that are useful for a couple of actions but not all of them. So I either hardcode them in a few actions, which can make refactoring pretty painful and time consuming. E.g. you change the name of volume and need to propagate that across a few actions. Or I put them in the top-level variables which becomes super bloated (hundreds of lines long) and the names become super long (or worse ambiguous) since you basically have to write in your own fully-qualified module names e.g. test_data_storage_size
.orange-ability-1812
02/29/2024, 6:31 PMgarden test integration-test
I don't worry which file it is in like, garden test tests.integration-test
which you might have to add if actions were given modules.