diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..95066d81 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## 0.3.0-alpha.1 - 2020-04-08 + +### Added + +- Vault and OpenSSL support are enabled in Mac binaries by default. + +### Changed + +- The code has been updated to reasonably idiomatic Rust 2018. +- We have replaced our `boondock` Docker client with `dockworker`, which is a better-maintained fork of `boondock`. Many thanks to the `dockworker` maintainers! +- We have upgraded all of our immediate dependencies to something reasonably modern, and replaced a few of them. +- `compose_yml` has been upgraded to a similarly modernized version. + +### Fixed + +- `docker-compose.yml` validation has been re-enabled, thanks to the `compose_yml` update. diff --git a/Cargo.lock b/Cargo.lock index d55d2995..1ea44be0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -154,7 +154,7 @@ dependencies = [ [[package]] name = "cage" -version = "0.2.7" +version = "0.3.0-alpha.1" dependencies = [ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", "cli_test_dir 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 2ef3f398..0410622e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cage" -version = "0.2.7" +version = "0.3.0-alpha.1" authors = ["Eric Kidd ", "Derek Kastner "] edition = "2018" diff --git a/README.md b/README.md index 2f5665b7..196ac7ab 100644 --- a/README.md +++ b/README.md @@ -72,29 +72,29 @@ it's still not yet officially supported. Create a new application using `cage`: ```sh -$ cage new myapp -$ cd myapp +cage new myapp +cd myapp ``` Pull the pre-built Docker images associated with this application and start up the database pod: ```sh -$ cage pull -$ cage up db +cage pull +cage up db ``` Run the `rake` image to initialize your database: ```sh -$ cage run rake db:create -$ cage run rake db:migrate +cage run rake db:create +cage run rake db:migrate ``` And bring up the rest of the app: ```sh -$ cage up +cage up ``` Let's take a look at the pods and services defined by this application: @@ -115,7 +115,7 @@ at [http://localhost:3000](http://localhost:3000). But let's make a change! First, list the available source code for the services in this app: -``` +```sh $ cage source ls rails_hello https://github.com/faradayio/rails_hello.git ``` @@ -151,7 +151,7 @@ We can also run container-specific unit tests, which are specified by the container, so that you can invoke any unit test framework of your choice: ```sh -$ cage test web +cage test web ``` And we can access individual containers using a configurable shell: @@ -199,7 +199,7 @@ so via a load balancer. See `examples/hello` for a complete example. -``` +```txt hello └── pods ├── common.env @@ -287,73 +287,37 @@ When working on this code, we recommend installing the following support tools: ```sh -cargo install rustfmt +rustup component add rustfmt +rustup component add clippy cargo install cargo-watch ``` -We also recommend installing nightly Rust, which produces better error -messages and supports extra warnings using [Clippy][]: - -```sh -rustup update nightly -rustup override set nightly -``` - -If `nightly` produces build errors, you may need to update your compiler -and libraries to the latest versions: - -```sh -rustup update nightly -cargo update -``` - -If that still doesn't work, try using `stable` Rust instead: - -```sh -rustup override set stable -``` - -If you're using `nightly`, run the following in a terminal as you edit: - -```sh -cargo watch "test --features clippy" -``` - -If you're using `stable`, leave out `--features clippy`: +Run the following in a terminal as you edit: ```sh -cargo watch test +cargo watch -x test ``` Before committing your code, run: ```sh +cargo clippy cargo fmt ``` -This will automatically reformat your code according to the project's +This will automatically check for warnings, and reformat your code according to the project's conventions. We use Travis CI to verify that `cargo fmt` has been run and that the project builds with no warnings. If it fails, no worries—just go ahead and fix your pull request, or ask us for help. -[Clippy]: https://github.com/Manishearth/rust-clippy +### On MacOS -### On macOS +The openssl crate needs a compatible version of the `openssl` libraries. You may be able to install them as follows: -The openssl crate needs a compatible version of the openssl libraries. macOS -ships with a version using an old API. The best solution is to install latest -openssl with homebrew and link to it: - -``` +```sh brew install openssl -export OPENSSL_INCLUDE_DIR=$(brew --prefix openssl)/include -export OPENSSL_LIB_DIR=$(brew --prefix openssl)/lib -cargo clean # you need to do this if your macOS-versioned openssl build failed -cargo build ``` -[More info]: https://stackoverflow.com/questions/34612395/openssl-crate-fails-compilation-on-mac-os-x-10-11 - ### Official releases To make an official release, you need to be a maintainer, and you need to @@ -375,7 +339,7 @@ v: Then run: -``` +```sh cargo publish git tag v$VERSION git push; git push --tags