Skip to content

release: 1.6.2 - #218

Merged
jpfaria merged 22 commits into
mainfrom
release/v1.6.2
Oct 19, 2026
Merged

jpfaria merged 22 commits into
mainfrom
release/v1.6.2

Conversation

@jpfaria

@jpfaria jpfaria commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Release v1.6.2: #202–#209 (PRs #210–#217).

release: v1.6.1 back to develop
docs(gitflow): a release has a milestone with its issues (#198)
docs(gitflow): issue has assignee and next release milestone (#200)
Every publish wrote the whole event, payload included, at INFO: one line
per message in production, with data that must not reach the logs. Log
only that the message was published, at DEBUG, with the id and subject
fields, as the Pub/Sub driver does.
…-log

fix(publisher): NATS driver no longer logs the event payload (#209)
… level (#206)

fx's lines went through a printer at boost.factory.fx.log.level, DEBUG by
default, so 'Failed to start' was hidden too and a builder app with bad
config exited 1 with no message: a pod restarting with no reason.

NewApp now installs an fxevent logger that renders fx's console lines and
writes every event carrying an error (failed provide/invoke/hook, start,
stop, rollback) at ERROR, the rest at the fx level.
…evel

fix(fx): errors that stop the app are logged at ERROR whatever the fx level (#206)
Two @config Options in packages that share a name (one boost package per
publisher) collided: the type id was the package name plus the type, so
both looked like *boost.Options and the graph refused to build.

The id now qualifies every type with its import path, read from the
file's imports. A hand-built entry without imports still resolves a
qualifier when one package of the entries has that name, so callers that
build entries themselves keep working. Provider keeps matching by name and
is deprecated in favour of ProviderFor, which the builder now uses.
Run prepended boost.bootstrap.function.default only after checking the
args against a root command that had no subcommands yet, so with the key
empty a generated app (which wires the one adapter config chose) ran
cobra with no command and printed the usage. Run now picks the named
command, else the default key, else the only adapter, and fails with
NotValid when there is nothing to run or the choice is ambiguous, so the
boot exits non-zero instead of idling on a help text.
…dapter

fix(bootstrap/function): run the only adapter without arguments (#203)
The nats, cloudevents_nats and Pub/Sub v1 helpers subscribed with
context.Background() and blocked forever, so SIGTERM left the app
waiting the whole fx stop timeout and exiting 1, and a message in a
handler during a deploy was cut. Their commands now run Helper.Run with
cmd.Context(): when it is done they take no new message, let the handler
finish the one it holds with a context the stop does not cancel (NATS
drains its subscriptions), and return. A NATS subject that cannot be
subscribed fails Run instead of being logged, and Pub/Sub v1 gives a
failed message back instead of retrying it while stopping. Start stays,
deprecated.
…text

fix(bootstrap/function): adapters stop on the run context (#204)
No Pub/Sub path worked from a builder app. On v2 the command started one
goroutine per subscription and returned at once, so the function module took
it as finished and shut the app down with exit code 0; a subscription that
could not be received was only logged. On v1 the app did not boot: the
adapter module asked for the v1 client through the factory module, which
provides it only when boost.factory.gcp.pubsub.version is v1, and that key
defaults to v2.

Both helpers now Run on the command context like the NATS adapters: they
block until it is done, let the handler finish the message it holds with a
context the stop does not cancel, stop retrying, and return. A subscription
that cannot be received stops the others and fails Run with an error naming
it, so the boot fails instead of running without it. The v1 adapter module
provides the v1 client through ClientModule, whatever the factory version.
fix(bootstrap/function): Pub/Sub adapters run in a builder app (#205)
@Inject(index=N, drivers=[a, b]) on a *publisher.Publisher parameter limits
the generated publisher to the listed drivers plus noop. Consumers without
drivers keep all of them. The builder example worker uses nats and pubsub and
no longer links confluent-kafka-go.
feat(inject): generate only the publisher drivers the app uses (#207)
feat(inject): named publisher and named client for the @function adapter (#208)
@jpfaria jpfaria added this to the v1.6.2 milestone Oct 19, 2026
@jpfaria jpfaria self-assigned this Oct 19, 2026
@jpfaria
jpfaria merged commit c157ce7 into main Oct 19, 2026
2 of 3 checks passed
@jpfaria
jpfaria deleted the release/v1.6.2 branch October 19, 2026 15:48
@jpfaria jpfaria changed the title release: v1.6.2 release: 1.6.2 Oct 19, 2026
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.

1 participant