Skip to content

remove --mod option#36

Merged
asteurer merged 4 commits intobytecodealliance:mainfrom
dicej:remove-mod-option
Apr 1, 2026
Merged

remove --mod option#36
asteurer merged 4 commits intobytecodealliance:mainfrom
dicej:remove-mod-option

Conversation

@dicej
Copy link
Copy Markdown
Contributor

@dicej dicej commented Mar 27, 2026

This was only used for the build subcommand, but all subcommands potentially
need to know where the go module is e.g. to locate componentize-go.toml files,
so we should either promote it to be a subcommand-independent option or drop it
and require that componentize-go be run in the directory containing the module
of interest. I chose the latter in this case, but we could certainly revisit
that.

Note that this builds on #35 and shouldn't be merged until that one is merged.

This adds two new features:

- Multiple `--world` options are accepted, in which case the worlds will be
  merged into a single world for building, testing, or bindings generation.

- In addition to any worlds and/or WIT paths specified explicitly via CLI
  options, `componentize-go` will use `go list` to scan the current module and
  its dependencies, looking for files named `componentize-go.toml` in their
  source trees.  For each such file found, any worlds and/or WIT paths
  referenced therein will be added to the respective lists.  This behavior can
  be disabled using the `--ignore-toml-files` option if desired.

In combination, these options make it easier to use multiple SDKs or other
libraries which contain `wit-bindgen-go`-generated code.

Note that I've also removed the `wat` dependency because `go build` always
generates a binary Wasm file, so no need to check for or parse WAT.

Fixes bytecodealliance#28
@dicej dicej force-pushed the remove-mod-option branch from aaba6fe to 303f6f3 Compare March 30, 2026 20:04
dicej added 3 commits March 31, 2026 08:12
…via CLI

Previously, we'd union all the worlds specified via the CLI _and_ via
`componentize-go.toml` files, but that can get very confusing for the user.  Now
we'll only use the toml file ones as a default if none are specified via the
CLI.
This also adds a test for the case, updates the WASIp3 WIT files to
0.3.0-rc-2026-03-15, and updates the Wasmtime used in CI to 43.0.0.
This was only used for the build subcommand, but all subcommands potentially
need to know where the go module is e.g. to locate `componentize-go.toml` files,
so we should either promote it to be a subcommand-independent option or drop it
and require that `componentize-go` be run in the directory containing the module
of interest.  I chose the latter in this case, but we could certainly revisit
that.
@dicej dicej force-pushed the remove-mod-option branch from 303f6f3 to 9c501aa Compare April 1, 2026 14:18
Copy link
Copy Markdown
Contributor

@asteurer asteurer left a comment

Choose a reason for hiding this comment

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

Yeah, I think it's the right approach to require the user to be in the same directory as the go.mod file

@asteurer asteurer merged commit f476894 into bytecodealliance:main Apr 1, 2026
2 of 5 checks passed
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.

2 participants