[workspace]

members = [
    "client/diem-dev",
    "client/faucet",
    "client/json-rpc",
    "client/swiss-knife",
    "client/transaction-builder",
    "common/bitvec",
    "common/bounded-executor",
    "common/channel",
    "common/channel/many-keys-stress-test",
    "common/crash-handler",
    "common/datatest-stable",
    "common/debug-interface",
    "common/diemdoc",
    "common/infallible",
    "common/logger",
    "common/logger/derive",
    "common/metrics",
    "common/metrics-core",
    "common/nibble",
    "common/num-variants",
    "common/proptest-helpers",
    "common/proxy",
    "common/retrier",
    "common/short-hex-str",
    "common/subscription-service",
    "common/temppath",
    "common/time-service",
    "common/trace",
    "common/workspace-hack",
    "config",
    "config/generate-key",
    "config/global-constants",
    "config/management",
    "config/management/genesis",
    "config/management/network-address-encryption",
    "config/management/operational",
    "config/seed-peer-generator",
    "consensus",
    "consensus/consensus-types",
    "consensus/safety-rules",
    "crypto/crypto",
    "crypto/crypto-derive",
    "devtools/x",
    "devtools/x-core",
    "devtools/x-lint",
    "diem-node",
    "execution/db-bootstrapper",
    "execution/execution-correctness",
    "execution/executor",
    "execution/executor-benchmark",
    "execution/executor-test-helpers",
    "execution/executor-types",
    "json-rpc",
    "json-rpc/types",
    "language/benchmarks",
    "language/borrow-graph",
    "language/bytecode-verifier",
    "language/bytecode-verifier/bytecode-verifier-tests",
    "language/bytecode-verifier/invalid-mutations",
    "language/compiler",
    "language/compiler/bytecode-source-map",
    "language/compiler/ir-to-bytecode",
    "language/compiler/ir-to-bytecode/syntax",
    "language/diem-tools/diem-events-fetcher",
    "language/diem-tools/diem-validator-interface",
    "language/diem-tools/transaction-replay",
    "language/diem-tools/writeset-transaction-generator",
    "language/diem-vm",
    "language/e2e-testsuite",
    "language/ir-testsuite",
    "language/move-core/types",
    "language/move-ir/types",
    "language/move-lang",
    "language/move-lang/functional-tests",
    "language/move-lang/ir-utils",
    "language/move-lang/test-utils",
    "language/move-model",
    "language/move-prover",
    "language/move-prover/abigen",
    "language/move-prover/bytecode",
    "language/move-prover/diagen",
    "language/move-prover/docgen",
    "language/move-prover/errmapgen",
    "language/move-prover/test-utils",
    "language/move-vm/integration-tests",
    "language/move-vm/natives",
    "language/move-vm/runtime",
    "language/move-vm/test-utils",
    "language/move-vm/types",
    "language/stdlib",
    "language/stdlib/compiled",
    "language/testing-infra/e2e-tests",
    "language/testing-infra/functional-tests",
    "language/testing-infra/module-generation",
    "language/testing-infra/test-generation",
    "language/tools/disassembler",
    "language/tools/genesis-viewer",
    "language/tools/move-cli",
    "language/tools/move-coverage",
    "language/tools/move-explain",
    "language/tools/resource-viewer",
    "language/tools/vm-genesis",
    "language/transaction-builder",
    "language/transaction-builder/generator",
    "language/vm",
    "language/vm/serializer-tests",
    "mempool",
    "network",
    "network/builder",
    "network/memsocket",
    "network/netcore",
    "network/network-address",
    "network/simple-onchain-discovery",
    "network/socket-bench-server",
    "secure/json-rpc",
    "secure/key-manager",
    "secure/net",
    "secure/push-metrics",
    "secure/storage",
    "secure/storage/github",
    "secure/storage/vault",
    "secure/time",
    "state-synchronizer",
    "storage/accumulator",
    "storage/backup/backup-cli",
    "storage/backup/backup-service",
    "storage/diemdb",
    "storage/diemsum",
    "storage/inspector",
    "storage/jellyfish-merkle",
    "storage/schemadb",
    "storage/scratchpad",
    "storage/state-view",
    "storage/storage-client",
    "storage/storage-interface",
    "storage/storage-service",
    "testsuite/cli",
    "testsuite/cli/diem-wallet",
    "testsuite/cluster-test",
    "testsuite/diem-fuzzer",
    "testsuite/diem-fuzzer/fuzz",
    "testsuite/diem-swarm",
    "testsuite/generate-format",
    "testsuite/smoke-test",
    "testsuite/smoke-test/attribute",
    "types",
    "vm-validator",
]

# NOTE: default-members is the complete list of binaries that form the "production Diem codebase". These members should
# never include crates that require fuzzing features or test features. These are the crates we want built with no extra
# test-only code included.
#
# For more, see the "Conditional compilation for tests" section in documentation/coding_guidelines.md.
default-members = [
    "common/trace",
    "config/generate-key",
    "config/management/genesis",
    "config/management/operational",
    "config/seed-peer-generator",
    "consensus/safety-rules",
    "client/faucet",
    "client/diem-dev",
    "client/swiss-knife",
    "execution/db-bootstrapper",
    "execution/execution-correctness",
    "language/compiler",
    "language/move-prover",
    "language/move-prover/diagen",
    "language/stdlib",
    "language/move-lang",
    "language/tools/disassembler",
    "language/tools/genesis-viewer",
    "language/tools/move-cli",
    "language/tools/move-coverage",
    "language/diem-tools/diem-events-fetcher",
    "language/diem-tools/writeset-transaction-generator",
    "language/tools/move-explain",
    "language/transaction-builder/generator",
    "diem-node",
    "secure/key-manager",
    "storage/backup/backup-cli",
    "storage/diemsum",
    "storage/inspector",
]

[profile.release]
debug = true

[profile.bench]
debug = true

# Build guppy in opt mode so that x commands are faster.
[profile.dev.package.guppy]
opt-level = 3