Skip to content

3. Acting on every project ​

exec runs a command in every project, in release order, and sums up:

console
$ fobis ecosystem exec -- git log --oneline -1

==> core: git log --oneline -1
c3b0b47 feat(core): add halve()

==> mathx: git log --oneline -1
fae4cf3 docs: explain quadruple()

==> app: git log --oneline -1
48ded4b feat(app): first release

Project  Result        Time  Detail
core     passed        0.0s
mathx    passed        0.0s
app      passed        0.0s

3 passed, 0 failed

--only core,mathx restricts it, --from mathx resumes after a failure, --fail-fast stops at the first one. Any command works, FoBiS's included:

console
$ fobis ecosystem exec -- fobis build --quiet

==> core: fobis build --quiet

Building src/test_core.f90
Compiling src/core_m.f90 serially
Compiling src/test_core.f90 serially
Linking build/test_core
Target src/test_core.f90 has been successfully built

==> mathx: fobis build --quiet

Building src/test_mathx.f90
Compiling third_party/core/src/core_m.f90 serially
Compiling src/mathx_m.f90 serially
Compiling src/test_mathx.f90 serially
Linking build/test_mathx
Target src/test_mathx.f90 has been successfully built

==> app: fobis build --quiet

Building src/app.f90
Compiling third_party/core/src/core_m.f90 serially
Compiling third_party/mathx/src/mathx_m.f90 serially
Compiling src/app.f90 serially
Linking build/app
Target src/app.f90 has been successfully built

Project  Result        Time  Detail
core     passed        0.2s
mathx    passed        0.2s
app      passed        0.2s

3 passed, 0 failed

Following the dependencies ​

fetch runs fobis fetch --update in every project with dependencies, in release order, so a project is updated after what it uses:

console
$ fobis ecosystem fetch

==> mathx: fobis fetch --update
Updating core
Saved deps config to third_party/.deps_config.ini
Saved lock file to third_party/fobos.lock

==> app: fobis fetch --update
Updating mathx
Updating core
Saved deps config to third_party/.deps_config.ini
Saved lock file to third_party/fobos.lock

Project  Result        Time  Detail
core     skipped             no dependencies
mathx    passed        0.2s
app      passed        0.2s

2 passed, 0 failed

What you learned

fobis ecosystem exec -- COMMAND with --only, --from, --fail-fast; fobis ecosystem fetch.

Next: 4. Before releasing.