The CI pipeline (`./check.sh`) was failing because of test errors, which was caused by the instrumentation framework complaining that no subscribers/listeners were registered. Instead of setting up all tests to run with a dummy subscriber, move the implementation of the instrumentation behind a feature flag so that it runs only for tests. There's a catch though: the `#[cfg(test)]` directive works only when directly testing the crate. If a crate `A` depends on another crate `B`, `B` will be compiled as usual (aka not in test mode) which will not trigger the `test` flag. So we need to introduce our own `testing` feature flag for `harmony` core and import it with that flag (only during dev/test). More info: https://github.com/rust-lang/rust/issues/59168 Co-authored-by: Ian Letourneau <letourneau.ian@gmail.com> Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/102
		
			
				
	
	
		
			28 lines
		
	
	
		
			630 B
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			630 B
		
	
	
	
		
			TOML
		
	
	
	
	
	
| [package]
 | |
| name = "harmony_cli"
 | |
| edition = "2024"
 | |
| version.workspace = true
 | |
| readme.workspace = true
 | |
| license.workspace = true
 | |
| 
 | |
| [features]
 | |
| default = ["tui"]
 | |
| tui = ["dep:harmony_tui"]
 | |
| 
 | |
| [dependencies]
 | |
| assert_cmd = "2.0.17"
 | |
| clap = { version = "4.5.35", features = ["derive"] }
 | |
| harmony = { path = "../harmony" }
 | |
| harmony_tui = { path = "../harmony_tui", optional = true }
 | |
| inquire.workspace = true
 | |
| tokio.workspace = true
 | |
| env_logger.workspace = true
 | |
| console = "0.16.0"
 | |
| indicatif = "0.18.0"
 | |
| lazy_static = "1.5.0"
 | |
| log.workspace = true
 | |
| indicatif-log-bridge = "0.2.3"
 | |
| 
 | |
| [dev-dependencies]
 | |
| harmony = { path = "../harmony", features = ["testing"] }
 |