foch
Foch analyzes an ordered Europa Universalis IV playset and writes a separate,
deterministic merged mod. It keeps the compatible contributions of each mod
and reports genuine conflicts for review instead of silently picking a winner.
Source mods and the game installation are only read. The foch-cli crate
builds the foch program, including the foch lsp language server; the foch
crate is the library behind it. foch-annotation, foch-lsp, foch-runner
and foch-test are internal libraries of the program, published because
crates.io builds foch-cli from published crates only; their Rust APIs carry
no semver promise.
Foch supports Europa Universalis IV only and is alpha software: merging is not yet reliable across arbitrary modlists, and Foch does not launch the game, so check a merged mod in game. Read the current boundary before relying on merge output.
Install
foch is built for Linux x64, macOS arm64 and Windows x64. The
install section of the project README
lists the channels a release has been installed and verified from.
foch --version prints foch-cli <version> and the cwt-schema id of the
rules embedded in that release.
The crates.io package foch 0.1.0 is an older, unrelated product. If you
installed it, run cargo uninstall foch before installing foch-cli; both
provide a foch executable.
First run
An installed program is not yet ready to merge. Foch first needs an EU4 base-data snapshot built from your own game installation:
Build and try it walks through that setup and a first merge. Installation says nothing about merge quality, which the project measures separately; see the project status and the documentation.
Source and licensing
Foch's own code is AGPL-3.0-only. The program also contains an adaptation of
Mergiraf (GPL-3.0-only) and embeds a rule pack compiled from the CWTools EU4
config (MIT), so the foch library and every foch program are distributed
as AGPL-3.0-only AND GPL-3.0-only AND MIT; the source of the other five
crates is AGPL-3.0-only. Each program also statically links Rust crates under
their own licenses. See
NOTICE.md and
THIRD-PARTY-LICENSES.txt.
The source of each release is tag v<version> of
https://github.com/Acture/foch with its two build submodules,
src/packages/tree-sitter-paradox and
src/packages/foch/vendor/cwtools-eu4-config. It is published as
foch-<version>-source.tar.gz on that tag's
GitHub release; GitHub's automatic
source downloads leave out the submodules.