Skip to content

Conversation

@michalrus
Copy link
Member

@michalrus michalrus commented Oct 16, 2025

Context

Offline compilation

  • You reference a JSON file with the ACROPOLIS_OFFLINE_MIRROR environment variable.
  • Each key is an URL that the build.rs scripts would normally download.
  • Each value is its local path on disk.
  • If the variable or keys are not set, it downloads as usual. But people compiling without Internet access, can still do so by providing their own pre-downloaded overrides.

Specifying --config <FILE>

  • You can now pass the executables a --config <FILE> argument, and that file will be used.
  • If you set ACROPOLIS_OMNIBUS_DEFAULT_CONFIG during compilation, this value will be used as the default, allowing build systems to override the default default of omnibus.toml.
  • Same for replayer.toml and ACROPOLIS_REPLAYER_DEFAULT_CONFIG.
❯ acropolis_process_omnibus --help
Usage: acropolis_process_omnibus [OPTIONS]

Options:
      --config <PATH>  [default: /nix/store/3jnims9fplpmbjl4lacq2bny0xqxfdwm-omnibus.toml]
  -h, --help           Print help
❯ acropolis_process_replayer --help
Usage: acropolis_process_replayer [OPTIONS] <--governance-collect|--governance-replay|--alonzo-governance-collect>

Options:
      --config <PATH>              [default: /nix/store/ck6wnix10y6v5n6hr24b1qq18y4lnxjj-replayer.toml]
      --governance-collect
      --governance-replay
      --alonzo-governance-collect
  -h, --help                       Print help

You reference a JSON file with the `ACROPOLIS_OFFLINE_MIRROR` environment
variable. Each key is an URL that the `build.rs` scripts would normally
download. Each value is its contents. If the variable or keys are not
set, it downloads as usual. But people compiling without Internet
access, can still do so by providing their own pre-downloaded overrides.
…e time

If you set `ACROPOLIS_OMNIBUS_DEFAULT_CONFIG` during compilation, this
value will be used as the default, allowing build systems to override
the default default of `omnibus.toml`.
@michalrus michalrus force-pushed the chore/offline-compilation branch from 19cbf24 to 180e10f Compare October 17, 2025 14:26
@michalrus michalrus changed the title Allow offline compilation with build.rs overrides Allow offline compilation and --config <PATH> Oct 17, 2025

#[derive(Debug, clap::Parser)]
#[command(
name = "acropolis_process_omnibus",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Wrong process name?

Copy link
Member Author

Choose a reason for hiding this comment

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

Oops, sorry – fixed in 1962198.

@sandtreader
Copy link
Collaborator

This is unexpected but most welcome, thanks @michalrus!

Very useful - we can use this for dev configs and prevent ourselves from accidentally committing modified versions, too!

@michalrus
Copy link
Member Author

@sandtreader thanks! I thought that maybe it'd make more sense for the $ACROPOLIS_OFFLINE_MIRROR JSON file to reference file paths, and not their contents as JSON strings? This would be more flexible, also for binary files. I can make that change.

@michalrus
Copy link
Member Author

JSON file to reference file paths, and not their contents as JSON strings?

Done in 976793e.

@sandtreader sandtreader merged commit 449b0de into input-output-hk:main Oct 22, 2025
2 checks passed
@michalrus michalrus deleted the chore/offline-compilation branch October 22, 2025 10:38
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