# Change Log
# v0.8.0
## Features
- **Interactive Profile Editing** (`edit` command) — easily modify a profile's environment variables, comments, and expiration dates interactively in your preferred text editor (defined via `$EDITOR`).
- **Key Rotation** (`rotate-key` command) — rotate encryption keys for existing profiles.
- **Checking Profile Envs** (`check` command) — check profile variables and identify which ones have expired.
- **Auto-Filtering of Expired Envs** — automatically filter out expired environment variables when loading profiles.
- **Replaced gpgme crate** — replaced the dependency with direct calls to the system `gpg` CLI, removing the need for the `gpgme` library and simplifying cross-platform installation. GPG encryption is automatically disabled if `gpg` is not installed on the system.
- **Multi-Format Export Support** — export profiles in multiple formats, including dotenv, JSON, YAML, and Shell script.
## Other
- **Uninstall Support** — added uninstall support to the install script.
- **Upgraded Dependencies** — bumped dependency versions.
- **Makefile** — added a `Makefile` to simplify common development commands.
# v0.7.0
> [!WARNING]
> This is a breaking release
## Features
- **CLI UX redesign** — the entire CLI experience has been redesigned
- **Terminal User Interface (TUI)** — brand-new interactive TUI for managing profiles
- **Profile metadata format** — the structure of profile metadata has been completely redesigned; existing profiles need to be recreated
- **Encryption key management** — manually add and remove encryption keys from the OS keyring (`add-key` / `remove-key`)
- **`ENVIO_KEY` environment variable** — non-interactive key input for passphrase and GPG cipher kinds
- **Zeroize** — sensitive key material is now zeroized after use
- **`none` cipher type** — a new cipher type that creates unencrypted profiles
- **`symmetric` cipher type** — a new cipher type that uses a symmetric key to encrypt and decrypt profiles
- **`completion` command** — display shell completions directly from the CLI
- **Diagnostic flag** (`--diagnostic`) — for troubleshooting
- **Postcard serialization** — profiles are serialized with `postcard` instead of `bincode`
- **`.envio` file extension** — profile files now use `.envio` instead of `.env`
- **`shell` command** — replaces `load`/`unload`; starts a new shell session with profile environment variables injected
## Other
- Minimum Rust version bumped to 1.93.0
- Updated to Rust 2024 edition
- Dockerfile support added
And much more.
# v0.6.1
## Features
* Users can now pass in the `-v` (or `--update-values`) argument to optionally update the values of their envs in the `update` command
## Bug Fixes
* Implement backward compatibility with older profile handling #67
* Fix issue where adding a comment or expiration date to a new or updated environment variable prompted input for all existing environment variables in the profile #70
# v0.6.0
## Features
* Launch command as positional argument by @Rubensei in https://github.com/envio-cli/envio/pull/41
* Stream output from launched command by @afh in https://github.com/envio-cli/envio/pull/40
* Add --envs option to export by @afh in https://github.com/envio-cli/envio/pull/42
* Allow selection with vi keys by @afh in https://github.com/envio-cli/envio/pull/46
* Add support for nix flakes by @afh in https://github.com/envio-cli/envio/pull/51
## Bug Fixes
* Fix non-truncated shellscript by @jerome-jutteau in https://github.com/envio-cli/envio/pull/49
## Others
* Bump clap_complete from 4.2.1 to 4.5.1 by @dependabot in https://github.com/envio-cli/envio/pull/37
* Bump inquire from 0.6.1 to 0.7.0 by @afh in https://github.com/envio-cli/envio/pull/47
## New Contributors
* @Rubensei made their first contribution in https://github.com/envio-cli/envio/pull/41
* @jerome-jutteau made their first contribution in https://github.com/envio-cli/envio/pull/49
# v0.5.1
## Improvements
* Improve `add`, `launch`, `update` and `remove` commands usage
* Allow environment variable value to have an equal sign #33
## Bug Fixes
* Fix encryption identification issue #36
* Use `CARGO_PKG_VERSION` when git is not installed by @afh in https://github.com/envio-cli/envio/pull/31
* Only list profiles ending with `.env` by @afh in https://github.com/envio-cli/envio/pull/32
* Prevent setenv.sh script from including entire stdout #27
## Other
* Bump chrono from 0.4.24 to 0.4.33 by @dependabot in https://github.com/envio-cli/envio/pull/30
* Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/envio-cli/envio/pull/28
# v0.5.0
## Features
* Add GPG encryption for user profiles, See [Usage](./docs/usage.md)
* Add flags for using the CLI, See [Usage](./docs/usage.md)
## Bug Fixes
* Fix issue #17 where envio assumed shell config file was in home directory and would panic if it was not found; envio now prompts users to pass in their shell config if it cannot find it
* Fix bug where envio would exit without doing its first time setup routine if it could not find the shell config; envio now checks for the config directory to determine if it is a fresh install or not
## Other
* Switched to `age` from `magic_crypt` for passphrase encryption method #13
This document records all notable changes to [envio](https://github.com/humblepenguinn/envio).
# v0.4.1
## Bug Fixes
* Fix slow startup times due to slow update fetching
# v0.4.0
## Features
* Add new argument `--no-pretty-print` to `envio list` command, See [Usage](./docs/usage.md)
* Add support for `fish` shell #9
*
## Bug Fixes
* Fix Security Vulnerability, See [Here](./docs/envio-profile-loading-update.md)
## Other
* Fix readme typo by @erjanmx in https://github.com/humblepenguinn/envio/pull/10
* docs: add erjanmx as a contributor for doc by @allcontributors in https://github.com/humblepenguinn/envio/pull/11
* Bump tokio from 1.26.0 to 1.27.0 by @dependabot in https://github.com/humblepenguinn/envio/pull/12
# v0.3.0
# Features
* Users can now create new profiles using files and also pass in environment variables #8
* Added support for the `fish` shell #9
# Bug Fixes
* Both the config and profiles directory are created at startup, if they do not exist #8
# Other
* docs: add Vojtch159 as a contributor for doc by @allcontributors in https://github.com/humblepenguinn/envio/pull/7
* Bump clap_complete from 4.1.5 to 4.2.0 by @dependabot in https://github.com/humblepenguinn/envio/pull/4
* Bump reqwest from 0.11.14 to 0.11.16 by @dependabot in https://github.com/humblepenguinn/envio/pull/5
# v0.2.0
## Features
* In addition to being able to load and unload profiles in current terminal sessions, users can now use the `envio launch` sub command to launch programs with specific profiles see [Usage](./docs/usage.md)
* envio now automatically looks for updates
## Bug Fixes
* Users do not need to type in their key twice when modifying environment variables in a profile
## Other
* Update [usage.md](./docs/usage.md) by @Vojtch159 in https://github.com/humblepenguinn/envio/pull/1
* Update [usage.md](./docs/usage.md) to include usage of `launch` sub command
* Update [CODEOWNERS](./CODEOWNERS)
* Update [README](./README.md) with new `gif` showing the new `launch` sub command
## New Contributors
* @Vojtch159 made their first contribution in https://github.com/humblepenguinn/envio/pull/1
# v0.1.0
- Inital Release