Skip to content

Commit a668014

Browse files
Copilotmkaput
andauthored
Remove experimental oracles flag - oracles are now stable (#3791)
Remove --experimental-oracles CLI flag and experimental warnings from oracles feature ✅ **All changes completed and verified:** - [x] Remove `--experimental-oracles` CLI flag from TestArgs in `crates/forge/src/lib.rs` - [x] Remove experimental warnings from documentation in `docs/src/snforge-advanced-features/oracles.md` - [x] Remove CLI flag documentation section in `docs/src/appendix/snforge/test.md` - [x] Remove experimental check in runtime extension in `crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs` - [x] Remove `experimental_oracles` field from ForgeExtension struct and make oracles always enabled - [x] Remove `experimental_oracles` field from TestRunnerConfig in `crates/forge-runner/src/forge_config.rs` - [x] Remove `experimental_oracles` field from RuntimeConfig in `crates/forge-runner/src/forge_config.rs` - [x] Update `combine_configs` function in `crates/forge/src/combine_configs.rs` - [x] Update test code that sets `experimental_oracles: false` to remove the field - [x] Add entry to CHANGELOG.md Unreleased section only (without modifying any released versions) - [x] Build and test changes to ensure nothing breaks **Verification Results:** - ✅ All modified crates compile successfully - ✅ Unit tests pass (combine_configs, forge_runner, cheatnet) - ✅ Binary builds successfully - ✅ CLI help output confirmed flag is removed - ✅ No remaining references to experimental oracle flags - ✅ CHANGELOG properly updated: new entry in Unreleased section, released versions unchanged **Summary:** The oracle feature is now stable and always enabled. Users no longer need to pass `--experimental-oracles` flag or set `SNFORGE_EXPERIMENTAL_ORACLES` environment variable. All experimental warnings have been removed from documentation. <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > Oracles are becoming stable. Remove --experimental-oracle CLI flag everywhere (including documentation) and any mentions telling that oracles are experimental. </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click [here](https://survey3.medallia.com/?EAHeSx-AP01bZqG0Ld9QLQ) to start the survey. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: mkaput <[email protected]>
1 parent 74a8856 commit a668014

File tree

11 files changed

+1
-41
lines changed

11 files changed

+1
-41
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
#### Changed
1313

1414
- Updated the error message returned when calling a nonexistent method on a contract to better align with the format used by the network
15+
- Oracle support in `snforge` is now stable and no longer requires the `--experimental-oracles` CLI flag
1516

1617
### Cast
1718

crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ pub struct ForgeExtension<'a> {
6060
pub environment_variables: &'a HashMap<String, String>,
6161
pub contracts_data: &'a ContractsData,
6262
pub fuzzer_rng: Option<Arc<Mutex<StdRng>>>,
63-
/// Whether `--experimental-oracles` flag has been enabled.
64-
pub experimental_oracles_enabled: bool,
6563
pub oracle_hint_service: OracleHintService,
6664
}
6765

@@ -80,14 +78,6 @@ impl<'a> ExtensionLogic for ForgeExtension<'a> {
8078
.oracle_hint_service
8179
.accept_cheatcode(selector.as_bytes())
8280
{
83-
if !self.experimental_oracles_enabled {
84-
return Err(anyhow!(
85-
"Oracles are an experimental feature. \
86-
To enable them, pass `--experimental-oracles` CLI flag."
87-
)
88-
.into());
89-
}
90-
9181
let output = self
9282
.oracle_hint_service
9383
.execute_cheatcode(oracle_selector, input_reader.into_remaining());

crates/forge-runner/src/forge_config.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ pub struct TestRunnerConfig {
2626
pub contracts_data: ContractsData,
2727
pub environment_variables: HashMap<String, String>,
2828
pub tracked_resource: ForgeTrackedResource,
29-
pub experimental_oracles: bool,
3029
}
3130

3231
#[derive(Debug, PartialEq)]
@@ -90,7 +89,6 @@ pub struct RuntimeConfig<'a> {
9089
pub contracts_data: &'a ContractsData,
9190
pub environment_variables: &'a HashMap<String, String>,
9291
pub tracked_resource: &'a ForgeTrackedResource,
93-
pub experimental_oracles: bool,
9492
}
9593

9694
impl<'a> RuntimeConfig<'a> {
@@ -103,7 +101,6 @@ impl<'a> RuntimeConfig<'a> {
103101
contracts_data: &value.contracts_data,
104102
environment_variables: &value.environment_variables,
105103
tracked_resource: &value.tracked_resource,
106-
experimental_oracles: value.experimental_oracles,
107104
}
108105
}
109106
}

crates/forge-runner/src/running.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ pub fn run_test_case(
230230
environment_variables: runtime_config.environment_variables,
231231
contracts_data: runtime_config.contracts_data,
232232
fuzzer_rng,
233-
experimental_oracles_enabled: runtime_config.experimental_oracles,
234233
oracle_hint_service: OracleHintService::new(Some(versioned_program_path.as_std_path())),
235234
};
236235

crates/forge/src/combine_configs.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ pub fn combine_configs(
2828
forge_config_from_scarb: &ForgeConfigFromScarb,
2929
additional_args: &[OsString],
3030
trace_args: TraceArgs,
31-
experimental_oracles: bool,
3231
) -> ForgeConfig {
3332
let execution_data_to_save = ExecutionDataToSave::from_flags(
3433
save_trace_data || forge_config_from_scarb.save_trace_data,
@@ -52,7 +51,6 @@ pub fn combine_configs(
5251
contracts_data,
5352
tracked_resource,
5453
environment_variables: env::vars().collect(),
55-
experimental_oracles,
5654
}),
5755
output_config: Arc::new(OutputConfig {
5856
trace_args,
@@ -83,7 +81,6 @@ mod tests {
8381
&ForgeConfigFromScarb::default(),
8482
&[],
8583
TraceArgs::default(),
86-
false,
8784
);
8885
let config2 = combine_configs(
8986
false,
@@ -100,7 +97,6 @@ mod tests {
10097
&ForgeConfigFromScarb::default(),
10198
&[],
10299
TraceArgs::default(),
103-
false,
104100
);
105101

106102
assert_ne!(config.test_runner_config.fuzzer_seed, 0);
@@ -128,7 +124,6 @@ mod tests {
128124
&ForgeConfigFromScarb::default(),
129125
&[],
130126
TraceArgs::default(),
131-
false,
132127
);
133128
assert_eq!(
134129
config,
@@ -143,7 +138,6 @@ mod tests {
143138
cache_dir: Utf8PathBuf::default(),
144139
contracts_data: ContractsData::default(),
145140
environment_variables: config.test_runner_config.environment_variables.clone(),
146-
experimental_oracles: false,
147141
}),
148142
output_config: Arc::new(OutputConfig {
149143
detailed_resources: false,
@@ -184,7 +178,6 @@ mod tests {
184178
&config_from_scarb,
185179
&[],
186180
TraceArgs::default(),
187-
false,
188181
);
189182
assert_eq!(
190183
config,
@@ -199,7 +192,6 @@ mod tests {
199192
cache_dir: Utf8PathBuf::default(),
200193
contracts_data: ContractsData::default(),
201194
environment_variables: config.test_runner_config.environment_variables.clone(),
202-
experimental_oracles: false,
203195
}),
204196
output_config: Arc::new(OutputConfig {
205197
detailed_resources: true,
@@ -244,7 +236,6 @@ mod tests {
244236
&config_from_scarb,
245237
&[],
246238
TraceArgs::default(),
247-
false,
248239
);
249240

250241
assert_eq!(
@@ -260,7 +251,6 @@ mod tests {
260251
cache_dir: Utf8PathBuf::default(),
261252
contracts_data: ContractsData::default(),
262253
environment_variables: config.test_runner_config.environment_variables.clone(),
263-
experimental_oracles: false,
264254
}),
265255
output_config: Arc::new(OutputConfig {
266256
detailed_resources: true,

crates/forge/src/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,6 @@ pub struct TestArgs {
207207
#[arg(last = true)]
208208
additional_args: Vec<OsString>,
209209

210-
/// Enable experimental oracles support.
211-
#[arg(long, default_value_t = false, env = "SNFORGE_EXPERIMENTAL_ORACLES")]
212-
experimental_oracles: bool,
213-
214210
#[command(flatten)]
215211
scarb_args: ScarbArgs,
216212
}

crates/forge/src/run_tests/package.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ impl RunForPackageArgs {
108108
&forge_config_from_scarb,
109109
&args.additional_args,
110110
args.trace_args.clone(),
111-
args.experimental_oracles,
112111
));
113112

114113
let test_filter = TestsFilter::from_flags(

crates/forge/test_utils/src/running_tests.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ pub fn run_test_case(
7878
contracts_data: ContractsData::try_from(test.contracts(&ui).unwrap()).unwrap(),
7979
tracked_resource,
8080
environment_variables: test.env().clone(),
81-
experimental_oracles: false,
8281
}),
8382
output_config: Arc::new(OutputConfig {
8483
detailed_resources: false,

crates/forge/tests/integration/setup_fork.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ fn fork_aliased_decorator() {
160160
.unwrap(),
161161
tracked_resource: ForgeTrackedResource::CairoSteps,
162162
environment_variables: test.env().clone(),
163-
experimental_oracles: false,
164163
}),
165164
output_config: Arc::new(OutputConfig {
166165
detailed_resources: false,
@@ -253,7 +252,6 @@ fn fork_aliased_decorator_overrding() {
253252
.unwrap(),
254253
tracked_resource: ForgeTrackedResource::CairoSteps,
255254
environment_variables: test.env().clone(),
256-
experimental_oracles: false,
257255
}),
258256
output_config: Arc::new(OutputConfig {
259257
detailed_resources: false,

docs/src/appendix/snforge/test.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,6 @@ Use Scarb release profile.
131131
## `--dev`
132132
Use Scarb dev profile.
133133

134-
## `--experimental-oracles`
135-
136-
Enable experimental [oracles](../../snforge-advanced-features/oracles.md) support.
137-
138134
## `-h`, `--help`
139135

140136
Print help.

0 commit comments

Comments
 (0)