-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
138 lines (114 loc) · 4.12 KB
/
Copy pathCargo.toml
File metadata and controls
138 lines (114 loc) · 4.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[package]
name = "echidnabot"
version = "0.1.0"
edition = "2021"
license = "MPL-2.0"
description = "Proof-aware CI bot that orchestrates ECHIDNA for theorem proof verification"
repository = "https://github.com/hyperpolymath/echidnabot"
keywords = ["theorem-prover", "formal-verification", "ci", "bot", "echidna"]
categories = ["development-tools", "science"]
authors = ["Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk>"]
readme = "README.adoc"
[lib]
name = "echidnabot"
path = "src/lib.rs"
[[bin]]
name = "echidnabot"
path = "src/main.rs"
# Note: the previous `echidnabot-mcp` standalone bin was retired
# 2026-04-25 when the BoJ-only-MCP exception was sunset (BoJ revived,
# cartridge `consultant_qa` activated). MCP traffic now routes through
# `boj-server/cartridges/echidna-llm-mcp`; see echidnabot Phase 6
# (commit 4a7871c) for the BoJ-routed call path.
[dependencies]
# Fleet coordination
gitbot-shared-context = { path = "../../shared-context" }
# Async runtime
tokio = { version = "1", features = ["full"] }
# HTTP framework
axum = { version = "0.8", features = ["macros"] }
tower = "0.4"
tower-http = { version = "0.6", features = ["cors", "trace", "request-id"] }
# GraphQL
async-graphql = { version = "7", features = ["uuid", "chrono"] }
async-graphql-axum = "7"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
# Database
# NOTE: `default-features = false` + explicit re-add of `macros`/`migrate`
# mirrors echidnabot#46 (chore(deps): trim sqlx default-features) —
# preserve forward-compat so a #46/#OTel merge doesn't churn this line.
sqlx = { version = "0.8.1", default-features = false, features = ["runtime-tokio-rustls", "sqlite", "postgres", "uuid", "chrono", "macros", "migrate"] }
# GitHub API
octocrab = "0.49"
# HTTP client (for ECHIDNA communication)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
# Utilities
async-trait = "0.1"
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# OpenTelemetry distributed tracing — exports span data via OTLP/gRPC
# to any OTel-compatible collector (Jaeger, Tempo, Honeycomb, etc.).
# Enable by setting `OTEL_EXPORTER_OTLP_ENDPOINT` or [observability]
# `otlp_endpoint` in echidnabot.toml. When unset, only the fmt layer
# is installed, so logs continue to work without a collector.
opentelemetry = { version = "0.27", features = ["trace"] }
opentelemetry-otlp = { version = "0.27", features = ["grpc-tonic", "trace"] }
opentelemetry_sdk = { version = "0.27", features = ["rt-tokio", "trace"] }
tracing-opentelemetry = "0.28"
rand = "0.8"
# Crypto for webhook verification
hmac = "0.12"
sha2 = "0.10"
hex = "0.4"
# CLI
clap = { version = "4", features = ["derive", "env"] }
# Config
config = "0.15"
# Filesystem utilities
tempfile = "3"
# URL encoding for GitLab/Bitbucket APIs
urlencoding = "2"
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
tokio-test = "0.4"
axum-test = "18"
mockall = "0.14"
tempfile = "3"
wiremock = "0.6"
proptest = "1"
[profile.release]
lto = true
codegen-units = 1
strip = true
# Packaging metadata for cargo-deb
[package.metadata.deb]
maintainer = "hyperpolymath <packages@hyperpolymath.dev>"
copyright = "2025, hyperpolymath"
license-PMPL--1.0 = ["LICENSE", "0"]
extended-description = """
ECHIDNABOT is a proof-aware CI bot that orchestrates ECHIDNA for theorem
proof verification. It integrates with GitHub to automatically verify
formal proofs in pull requests.
"""
depends = "$auto, openssl"
section = "devel"
priority = "optional"
assets = [
["target/release/echidnabot", "usr/bin/", "755"],
["README.adoc", "usr/share/doc/echidnabot/README.adoc", "644"],
]
# Packaging metadata for cargo-generate-rpm
[package.metadata.generate-rpm]
assets = [
{ source = "target/release/echidnabot", dest = "/usr/bin/echidnabot", mode = "755" },
{ source = "README.adoc", dest = "/usr/share/doc/echidnabot/README.adoc", mode = "644" },
]
[package.metadata.generate-rpm.requires]
openssl = "*"