From 992a5ca9a82613f244180e98d3c1749430f6e3c2 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Thu, 10 Jan 2019 16:28:03 -0500 Subject: [PATCH 01/11] added http interface to hc run --- cmd/src/cli/run.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index 9f8e188b4a..9f85ae6d40 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -50,9 +50,18 @@ pub fn run(package: bool, port: u16, persist: bool, networked: bool) -> DefaultR storage, }; + let interface_type = env::var("HC_INTERFACE").ok().unwrap_or_else(|| String::from("websocket")); + let driver = if interface_type == String::from("websocket") { + InterfaceDriver::Websocket { port } + } else if interface_type == String::from("http") { + InterfaceDriver::Http { port } + } else { + return Err(format_err!("unknown interface type: {}",interface_type)); + }; + let interface_config = InterfaceConfiguration { id: INTERFACE_CONFIG_ID.into(), - driver: InterfaceDriver::Websocket { port }, + driver, admin: true, instances: vec![InstanceReferenceConfiguration { id: INSTANCE_CONFIG_ID.into(), @@ -113,7 +122,8 @@ pub fn run(package: bool, port: u16, persist: bool, networked: bool) -> DefaultR container.start_all_instances()?; println!( - "Holochain development container started. Running websocket server on port {}", + "Holochain development container started. Running {} server on port {}", + interface_type, port ); println!("Type 'exit' to stop the container and exit the program"); From 5f324fcf0f2d52a5bde0ad90fe7eb49a9f3df07c Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Thu, 10 Jan 2019 16:36:42 -0500 Subject: [PATCH 02/11] added flag for interface type --- CHANGELOG.md | 1 + cmd/src/cli/run.rs | 4 ++-- cmd/src/main.rs | 10 +++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab90438c41..bb0eeae18f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed ### Added +- `hc run` now looks for the --interface flag or `HC_INTERFACE` env var if you want to specify the `http` interface. ### Removed ## [0.0.3] - 2019-01-09 diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index 9f85ae6d40..8333ece3ec 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -13,7 +13,7 @@ const INSTANCE_CONFIG_ID: &str = "test-instance"; const INTERFACE_CONFIG_ID: &str = "websocket-interface"; /// Starts a small container with the current application running -pub fn run(package: bool, port: u16, persist: bool, networked: bool) -> DefaultResult<()> { +pub fn run(package: bool, port: u16, persist: bool, networked: bool, interface: String) -> DefaultResult<()> { if package { cli::package(true, Some(package::DEFAULT_BUNDLE_FILE_NAME.into()))?; } @@ -50,7 +50,7 @@ pub fn run(package: bool, port: u16, persist: bool, networked: bool) -> DefaultR storage, }; - let interface_type = env::var("HC_INTERFACE").ok().unwrap_or_else(|| String::from("websocket")); + let interface_type = env::var("HC_INTERFACE").ok().unwrap_or_else(|| interface); let driver = if interface_type == String::from("websocket") { InterfaceDriver::Websocket { port } } else if interface_type == String::from("http") { diff --git a/cmd/src/main.rs b/cmd/src/main.rs index ee194709ae..5509766f06 100644 --- a/cmd/src/main.rs +++ b/cmd/src/main.rs @@ -111,6 +111,13 @@ enum Cli { persist: bool, #[structopt(long, help = "Use real networking")] networked: bool, + #[structopt( + long, + short, + help = "Specify interface type to use: websocket/http", + default_value = "websocket", + )] + interface: String, }, #[structopt( name = "test", @@ -163,7 +170,8 @@ fn run() -> HolochainResult<()> { port, persist, networked, - } => cli::run(package, port, persist, networked).map_err(HolochainError::Default)?, + interface, + } => cli::run(package, port, persist, networked, interface).map_err(HolochainError::Default)?, Cli::Test { dir, testfile, From 354a6e0e35badf7c10290e57a39f1635346a7011 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Thu, 10 Jan 2019 16:40:38 -0500 Subject: [PATCH 03/11] fmt --- cmd/src/cli/run.rs | 13 +++++++++---- cmd/src/main.rs | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index 8333ece3ec..3944bf0e3e 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -13,7 +13,13 @@ const INSTANCE_CONFIG_ID: &str = "test-instance"; const INTERFACE_CONFIG_ID: &str = "websocket-interface"; /// Starts a small container with the current application running -pub fn run(package: bool, port: u16, persist: bool, networked: bool, interface: String) -> DefaultResult<()> { +pub fn run( + package: bool, + port: u16, + persist: bool, + networked: bool, + interface: String, +) -> DefaultResult<()> { if package { cli::package(true, Some(package::DEFAULT_BUNDLE_FILE_NAME.into()))?; } @@ -56,7 +62,7 @@ pub fn run(package: bool, port: u16, persist: bool, networked: bool, interface: } else if interface_type == String::from("http") { InterfaceDriver::Http { port } } else { - return Err(format_err!("unknown interface type: {}",interface_type)); + return Err(format_err!("unknown interface type: {}", interface_type)); }; let interface_config = InterfaceConfiguration { @@ -123,8 +129,7 @@ pub fn run(package: bool, port: u16, persist: bool, networked: bool, interface: println!( "Holochain development container started. Running {} server on port {}", - interface_type, - port + interface_type, port ); println!("Type 'exit' to stop the container and exit the program"); diff --git a/cmd/src/main.rs b/cmd/src/main.rs index 5509766f06..ca5c18e06d 100644 --- a/cmd/src/main.rs +++ b/cmd/src/main.rs @@ -115,7 +115,7 @@ enum Cli { long, short, help = "Specify interface type to use: websocket/http", - default_value = "websocket", + default_value = "websocket" )] interface: String, }, @@ -171,7 +171,8 @@ fn run() -> HolochainResult<()> { persist, networked, interface, - } => cli::run(package, port, persist, networked, interface).map_err(HolochainError::Default)?, + } => cli::run(package, port, persist, networked, interface) + .map_err(HolochainError::Default)?, Cli::Test { dir, testfile, From d77f68c4fb369e326e597512352f916cfa9bb70b Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Fri, 11 Jan 2019 13:53:05 -0500 Subject: [PATCH 04/11] wip on tests for hc --- cmd/src/cli/init.rs | 4 ++-- cmd/src/cli/package.rs | 11 +---------- cmd/src/cli/run.rs | 34 ++++++++++++++++++++++++++++++++++ cmd/src/cli/test.rs | 17 +---------------- cmd/src/main.rs | 2 +- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/cmd/src/cli/init.rs b/cmd/src/cli/init.rs index a19f9570a5..9d4967d0d6 100644 --- a/cmd/src/cli/init.rs +++ b/cmd/src/cli/init.rs @@ -100,9 +100,9 @@ pub mod tests { use super::*; use tempfile::{Builder, TempDir}; - const HOLOCHAIN_TEST_PREFIX: &str = "org.holochain.test"; + const HOLOCHAIN_TEST_PREFIX: &str = "org_holochain_test"; - fn gen_dir() -> TempDir { + pub fn gen_dir() -> TempDir { Builder::new() .prefix(HOLOCHAIN_TEST_PREFIX) .tempdir() diff --git a/cmd/src/cli/package.rs b/cmd/src/cli/package.rs index 248083882b..a5a896f7d1 100644 --- a/cmd/src/cli/package.rs +++ b/cmd/src/cli/package.rs @@ -294,16 +294,7 @@ fn unpack_recurse(mut obj: Object, to: &PathBuf) -> DefaultResult<()> { mod tests { use assert_cmd::prelude::*; use std::process::Command; - use tempfile::{Builder, TempDir}; - - const HOLOCHAIN_TEST_PREFIX: &str = "org.holochain.test"; - - fn gen_dir() -> TempDir { - Builder::new() - .prefix(HOLOCHAIN_TEST_PREFIX) - .tempdir() - .unwrap() - } + use crate::cli::init::tests::gen_dir; #[test] fn package_and_unpack_isolated() { diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index 3944bf0e3e..bec925c400 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -150,3 +150,37 @@ pub fn run( Ok(()) } + +#[cfg(test)] +// flagged as broken for: +// 1. taking 60+ seconds +//#[cfg(feature = "broken-tests")] +mod tests { + use assert_cmd::prelude::*; + use std::process::Command; + use crate::cli::init::tests::gen_dir; + use std::env; + + #[test] + fn test_run() { + let temp_dir = gen_dir(); + let temp_dir_path = temp_dir.path(); + let _temp_dir_path_buf = temp_dir_path.to_path_buf(); + + assert!(env::set_current_dir(&temp_dir_path).is_ok()); + + Command::main_binary() + .unwrap() + .args(&["init", "my_dna"]) + .assert() + .success(); + + assert!(env::set_current_dir(&temp_dir_path.join("my_dna")).is_ok()); + + Command::main_binary() + .unwrap() + .args(&["run", "--package"]) + .assert() + .success(); + } +} diff --git a/cmd/src/cli/test.rs b/cmd/src/cli/test.rs index e920c0a7fb..bcfd7b836e 100644 --- a/cmd/src/cli/test.rs +++ b/cmd/src/cli/test.rs @@ -64,22 +64,7 @@ pub fn test( #[cfg(test)] #[cfg(feature = "broken-tests")] pub mod tests { - use super::*; - use crate::cli::package; - use assert_cmd::prelude::*; - use std::{env, process::Command}; - use tempfile::{Builder, TempDir}; - - #[cfg(feature = "broken-tests")] - const HOLOCHAIN_TEST_PREFIX: &str = "org_holochain_test"; - - #[cfg(feature = "broken-tests")] - pub fn gen_dir() -> TempDir { - Builder::new() - .prefix(HOLOCHAIN_TEST_PREFIX) - .tempdir() - .unwrap() - } + use crate::cli::init::tests::gen_dir; #[test] // flagged as broken for: diff --git a/cmd/src/main.rs b/cmd/src/main.rs index ca5c18e06d..616c068e3d 100644 --- a/cmd/src/main.rs +++ b/cmd/src/main.rs @@ -91,7 +91,7 @@ enum Cli { #[structopt( name = "run", alias = "r", - about = "Starts a development container with an open websocket" + about = "Starts a development container with a websocket or http interface" )] Run { #[structopt( From 2dc8ae51ebeff998a0cc3c1ac99d517a02309f36 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Thu, 10 Jan 2019 22:19:44 -0500 Subject: [PATCH 05/11] fix version replacement in cargo template --- cmd/src/cli/scaffold/rust.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/src/cli/scaffold/rust.rs b/cmd/src/cli/scaffold/rust.rs index d175c51dd7..ef3ed00554 100644 --- a/cmd/src/cli/scaffold/rust.rs +++ b/cmd/src/cli/scaffold/rust.rs @@ -27,7 +27,7 @@ fn generate_cargo_toml(name: &str, contents: &str) -> DefaultResult { let authors_default = Value::from("[\"TODO\"]"); let edition_default = Value::from("\"TODO\""); - let version_default = Value::from("tag = 0.0.3"); + let version_default = String::from("tag = \"v0.0.3\""); let maybe_package = config.get("package"); let name = Value::from(name); @@ -38,7 +38,7 @@ fn generate_cargo_toml(name: &str, contents: &str) -> DefaultResult { .and_then(|p| p.get("edition")) .unwrap_or(&edition_default); - interpolate_cargo_template(&name, authors, edition, &version_default) + interpolate_cargo_template(&name, authors, edition, version_default) } /// Use the Cargo.toml.template file and interpolate values into the placeholders @@ -47,14 +47,14 @@ fn interpolate_cargo_template( name: &Value, authors: &Value, edition: &Value, - version: &Value, + version: String, ) -> DefaultResult { let template = include_str!("rust/Cargo.template.toml"); Ok(template .replace("<>", toml::to_string(name)?.as_str()) .replace("<>", toml::to_string(authors)?.as_str()) .replace("<>", toml::to_string(edition)?.as_str()) - .replace("<>", toml::to_string(version)?.as_str())) + .replace("<>", &version)) } impl RustScaffold { From 4b8a57b1cf4a2497d44d90fedd7855f55e3ba2d9 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Fri, 11 Jan 2019 19:17:59 -0500 Subject: [PATCH 06/11] refactored and fixed tests --- cmd/src/cli/package.rs | 2 +- cmd/src/cli/run.rs | 32 +++++++++++----------- cmd/src/cli/scaffold/rust.rs | 2 +- cmd/src/cli/test.rs | 51 +++++++++++++++--------------------- 4 files changed, 40 insertions(+), 47 deletions(-) diff --git a/cmd/src/cli/package.rs b/cmd/src/cli/package.rs index a5a896f7d1..06195d9a9e 100644 --- a/cmd/src/cli/package.rs +++ b/cmd/src/cli/package.rs @@ -292,9 +292,9 @@ fn unpack_recurse(mut obj: Object, to: &PathBuf) -> DefaultResult<()> { // too slow! #[cfg(feature = "broken-tests")] mod tests { + use crate::cli::init::tests::gen_dir; use assert_cmd::prelude::*; use std::process::Command; - use crate::cli::init::tests::gen_dir; #[test] fn package_and_unpack_isolated() { diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index bec925c400..11a7966ccb 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -156,31 +156,33 @@ pub fn run( // 1. taking 60+ seconds //#[cfg(feature = "broken-tests")] mod tests { + use crate::cli::init::{init, tests::gen_dir}; use assert_cmd::prelude::*; - use std::process::Command; - use crate::cli::init::tests::gen_dir; - use std::env; + use std::{env, process::Command}; #[test] fn test_run() { let temp_dir = gen_dir(); let temp_dir_path = temp_dir.path(); - let _temp_dir_path_buf = temp_dir_path.to_path_buf(); + let temp_dir_path_buf = temp_dir_path.to_path_buf(); - assert!(env::set_current_dir(&temp_dir_path).is_ok()); + let mut run_cmd = Command::main_binary().unwrap(); + let mut run2_cmd = Command::main_binary().unwrap(); - Command::main_binary() - .unwrap() - .args(&["init", "my_dna"]) - .assert() - .success(); + let _ = init(&temp_dir_path_buf); - assert!(env::set_current_dir(&temp_dir_path.join("my_dna")).is_ok()); + assert!(env::set_current_dir(&temp_dir_path).is_ok()); - Command::main_binary() - .unwrap() + let output = run_cmd .args(&["run", "--package"]) - .assert() - .success(); + .output() + .expect("should run"); + assert_eq!(format!("{:?}",output),"Output { status: ExitStatus(ExitStatus(256)), stdout: \"\\u{1b}[1;32mCreated\\u{1b}[0m bundle file at \\\"bundle.json\\\"\\nStarting instance \\\"test-instance\\\"...\\nHolochain development container started. Running websocket server on port 8888\\nType \\\'exit\\\' to stop the container and exit the program\\n\", stderr: \"Error: EOF\\n\" }"); + + let output = run2_cmd + .args(&["run", "--interface", "http"]) + .output() + .expect("should run"); + assert_eq!(format!("{:?}",output),"Output { status: ExitStatus(ExitStatus(256)), stdout: \"Starting instance \\\"test-instance\\\"...\\nHolochain development container started. Running http server on port 8888\\nType \\\'exit\\\' to stop the container and exit the program\\n\", stderr: \"Error: EOF\\n\" }"); } } diff --git a/cmd/src/cli/scaffold/rust.rs b/cmd/src/cli/scaffold/rust.rs index ef3ed00554..971cf888bf 100644 --- a/cmd/src/cli/scaffold/rust.rs +++ b/cmd/src/cli/scaffold/rust.rs @@ -27,7 +27,7 @@ fn generate_cargo_toml(name: &str, contents: &str) -> DefaultResult { let authors_default = Value::from("[\"TODO\"]"); let edition_default = Value::from("\"TODO\""); - let version_default = String::from("tag = \"v0.0.3\""); + let version_default = String::from("branch = \"develop\""); let maybe_package = config.get("package"); let name = Value::from(name); diff --git a/cmd/src/cli/test.rs b/cmd/src/cli/test.rs index bcfd7b836e..d24ca926c8 100644 --- a/cmd/src/cli/test.rs +++ b/cmd/src/cli/test.rs @@ -62,38 +62,36 @@ pub fn test( } #[cfg(test)] -#[cfg(feature = "broken-tests")] pub mod tests { - use crate::cli::init::tests::gen_dir; + use super::*; + use crate::cli::{ + init::{init, tests::gen_dir}, + package, + }; + use assert_cmd::prelude::*; + use std::{env, process::Command}; #[test] // flagged as broken for: // 1. taking 60+ seconds // 2. because `generate_cargo_toml` in cmd/src/scaffold/rust.rs sets the - // branch to master rather than develop and currently there's no way to + // branch to a fixed value rather than develop and currently there's no way to // adjust that on the fly. - // 3. the call to generate my_zome function doesn't quite work + // 3. because holochain-nodejs version doesn't exist yet #[cfg(feature = "broken-tests")] fn test_command_basic_test() { - let temp_space = gen_dir(); - let temp_dir_path = temp_space.path(); - let temp_dir_path_buf = temp_space.path().to_path_buf(); + let temp_dir = gen_dir(); + let temp_dir_path = temp_dir.path(); + let temp_dir_path_buf = temp_dir_path.to_path_buf(); - // do init first, so there's a project - Command::main_binary() - .unwrap() - .args(&["init", temp_dir_path.to_str().unwrap()]) - .assert() - .success(); + let mut gen_cmd = Command::main_binary().unwrap(); + + let _ = init(&temp_dir_path_buf); assert!(env::set_current_dir(&temp_dir_path).is_ok()); // do gen my_zome first, so there's a zome - Command::main_binary() - .unwrap() - .args(&["generate", "my_zome"]) - .assert() - .success(); + gen_cmd.args(&["generate", "zomes/my_zome"]).assert().success(); test(&temp_dir_path_buf, &TEST_DIR_NAME, "test/index.js", false) .unwrap_or_else(|e| panic!("test call failed: {}", e)); @@ -112,19 +110,12 @@ pub mod tests { } #[test] - // flagged broken for taking 60+ seconds to run - #[cfg(feature = "broken-tests")] fn test_command_no_test_folder() { - let temp_space = gen_dir(); - let temp_dir_path = temp_space.path(); - let temp_dir_path_buf = temp_space.path().to_path_buf(); - - // do init first, so there's a project - Command::main_binary() - .unwrap() - .args(&["init", temp_dir_path.to_str().unwrap()]) - .assert() - .success(); + let temp_dir = gen_dir(); + let temp_dir_path = temp_dir.path(); + let temp_dir_path_buf = temp_dir_path.to_path_buf(); + + let _ = init(&temp_dir_path_buf); let result = test(&temp_dir_path_buf, "west", "test/index.js", false); From 28f41c2075dcd8e9c26fedf5c7f066e084522f83 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Fri, 11 Jan 2019 21:54:38 -0500 Subject: [PATCH 07/11] fmt --- cmd/src/cli/test.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/src/cli/test.rs b/cmd/src/cli/test.rs index d24ca926c8..68a7aa77a8 100644 --- a/cmd/src/cli/test.rs +++ b/cmd/src/cli/test.rs @@ -91,7 +91,10 @@ pub mod tests { assert!(env::set_current_dir(&temp_dir_path).is_ok()); // do gen my_zome first, so there's a zome - gen_cmd.args(&["generate", "zomes/my_zome"]).assert().success(); + gen_cmd + .args(&["generate", "zomes/my_zome"]) + .assert() + .success(); test(&temp_dir_path_buf, &TEST_DIR_NAME, "test/index.js", false) .unwrap_or_else(|e| panic!("test call failed: {}", e)); From 60e18d4e1f200f09cb05bb1cb85fbfd436062afb Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Fri, 11 Jan 2019 22:11:42 -0500 Subject: [PATCH 08/11] lint --- cmd/src/cli/test.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/src/cli/test.rs b/cmd/src/cli/test.rs index 68a7aa77a8..70bf9e34f9 100644 --- a/cmd/src/cli/test.rs +++ b/cmd/src/cli/test.rs @@ -66,10 +66,10 @@ pub mod tests { use super::*; use crate::cli::{ init::{init, tests::gen_dir}, - package, +// package, }; - use assert_cmd::prelude::*; - use std::{env, process::Command}; +// use assert_cmd::prelude::*; +// use std::{env, process::Command}; #[test] // flagged as broken for: From 549ea993c113bbcc562cbc10fd4bb0160871334e Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Fri, 11 Jan 2019 23:21:05 -0500 Subject: [PATCH 09/11] fmt --- cmd/src/cli/test.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/cmd/src/cli/test.rs b/cmd/src/cli/test.rs index 70bf9e34f9..ebd6b5f64d 100644 --- a/cmd/src/cli/test.rs +++ b/cmd/src/cli/test.rs @@ -64,12 +64,9 @@ pub fn test( #[cfg(test)] pub mod tests { use super::*; - use crate::cli::{ - init::{init, tests::gen_dir}, -// package, - }; -// use assert_cmd::prelude::*; -// use std::{env, process::Command}; + use crate::cli::init::{init, tests::gen_dir}; + // use assert_cmd::prelude::*; + // use std::{env, process::Command}; #[test] // flagged as broken for: From 6b2ef9bfb3fe3a943d5a6f3944944b59343945ec Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Sun, 13 Jan 2019 11:55:44 -0500 Subject: [PATCH 10/11] turn off cli run test (takes too long) --- cmd/src/cli/run.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/src/cli/run.rs b/cmd/src/cli/run.rs index 11a7966ccb..848aa574eb 100644 --- a/cmd/src/cli/run.rs +++ b/cmd/src/cli/run.rs @@ -154,7 +154,7 @@ pub fn run( #[cfg(test)] // flagged as broken for: // 1. taking 60+ seconds -//#[cfg(feature = "broken-tests")] +#[cfg(feature = "broken-tests")] mod tests { use crate::cli::init::{init, tests::gen_dir}; use assert_cmd::prelude::*; From 81c81b014f6bb1ebf14234cfb5b856aaef4c54d3 Mon Sep 17 00:00:00 2001 From: Eric Harris-Braun Date: Sun, 13 Jan 2019 11:59:09 -0500 Subject: [PATCH 11/11] added pr to http-hc change log entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb0eeae18f..275ddfdebb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed ### Added -- `hc run` now looks for the --interface flag or `HC_INTERFACE` env var if you want to specify the `http` interface. +- `hc run` now looks for the --interface flag or `HC_INTERFACE` env var if you want to specify the `http` interface [#846]((https://github.com/holochain/holochain-rust/pull/779) ### Removed ## [0.0.3] - 2019-01-09