Skip to content

Commit

Permalink
Merge pull request #123 from allan2/v0.16
Browse files Browse the repository at this point in the history
v0.16 new API
  • Loading branch information
allan2 authored Sep 9, 2024
2 parents 4a6e703 + c2070b0 commit 17b438f
Show file tree
Hide file tree
Showing 68 changed files with 1,568 additions and 1,999 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
target/
Cargo.lock
.vscode/
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

### Changed
- update to 2021 edition
- update MSRV to 1.72.0
- **breaking**: dotenvy CLI uses `from_path` instead of `from_filename`
- update MSRV to 1.74.0

- **breaking**: `dotenvy::Error` now includes IO file path info and variable name info
- **breaking**: `dotenvy::var` no longer calls `load` internally
- **breaking**: `dotenvy::Result` is now private
- **breaking**: deprecate `dotenvy::var`, `dotenvy::from_filename*`
- `Error` is now `From<std::io::Error`

- **breaking**: dotenvy CLI uses `with_path` instead of `from_filename`
- **breaking**: dotenvy CLI defaults to *./.env*, no longer traversing parent directories.
- **breaking**: dotenvy CLI exits with code 2 instead of code 1 if the external command is omitted
- Fix doctests on windows not compiling ([PR #79](https://github.com/allan2/dotenvy/pull/79) by [vallentin](https://github.com/vallentin).
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[workspace]
members = ["dotenv", "dotenv_codegen"]
members = ["dotenvy", "dotenvy-macros", "dotenv_codegen", "examples/*"]
resolver = "2"
1 change: 0 additions & 1 deletion README.md

This file was deleted.

79 changes: 79 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# dotenvy

[![Crates.io](https://img.shields.io/crates/v/dotenvy.svg)](https://crates.io/crates/dotenvy)
[![msrv
1.74.0](https://img.shields.io/badge/msrv-1.74.0-dea584.svg?logo=rust)](https://github.com/rust-lang/rust/releases/tag/1.74.0)
[![ci](https://github.com/allan2/dotenvy/actions/workflows/ci.yml/badge.svg)](https://github.com/allan2/dotenvy/actions/workflows/ci.yml)
[![docs](https://img.shields.io/docsrs/dotenvy?logo=docs.rs)](https://docs.rs/dotenvy/)

A well-maintained fork of the [dotenv](https://github.com/dotenv-rs/dotenv) crate.

This crate is the suggested alternative for `dotenv` in security advisory [RUSTSEC-2021-0141](https://rustsec.org/advisories/RUSTSEC-2021-0141.html).

This library loads environment variables from a _.env_ file. This is convenient for dev environments.

## Components

1. [`dotenvy`](https://crates.io/crates/dotenvy) crate - A well-maintained fork of the `dotenv` crate.
2. [`dotenvy_macro`](https://crates.io/crates/dotenvy_macro) crate - A macro for compile time dotenv inspection. This is a fork of `dotenv_codegen`.
3. `dotenvy` CLI tool for running a command using the environment from a _.env_ file (currently Unix only)

## Usage

##

```rs
use dotenvy::EnvLoader;
use std::env;

fn main() {
let env_map = EnvLoader::with_path(".env").load()?;
for (key, value) in env_map {
println!("{key}: {value}");
}
}
```

### Loading at compile time

The `dotenv!` macro provided by `dotenvy_macro` crate can be used.

## Minimum supported Rust version

We aim to support the latest 8 rustc versions - approximately 1 year. Increasing
MSRV is _not_ considered a semver-breaking change.

## Why does this fork exist?

The original dotenv crate has not been updated since June 26, 2020. Attempts to reach the authors and present maintainer were not successful ([dotenv-rs/dotenv #74](https://github.com/dotenv-rs/dotenv/issues/74)).

This fork intends to serve as the development home for the dotenv implementation in Rust.

## What are the differences from the original?

This repo fixes:

- home directory works correctly (no longer using the deprecated `std::env::home_dir`)
- more helpful errors for `dotenv!` ([dotenv-rs/dotenv #57](https://github.com/dotenv-rs/dotenv/pull/57))

It also adds:

- multiline support for environment variable values
- `io::Read` support via [`from_read`](https://docs.rs/dotenvy/latest/dotenvy/fn.from_read.html) and [`from_read_iter`](https://docs.rs/dotenvy/latest/dotenvy/fn.from_read_iter.html)
- improved docs

For a full list of changes, refer to the [changelog](./CHANGELOG.md).

## Contributing

Thank you very much for considering to contribute to this project! See
[CONTRIBUTING.md](./CONTRIBUTING.md) for details.

**Note**: Before you take the time to open a pull request, please open an issue first.

## The legend

Legend has it that the Lost Maintainer will return, merging changes from `dotenvy` into `dotenv` with such thrust that all `Cargo.toml`s will lose one keystroke. Only then shall the Rust dotenv crateverse be united in true harmony.

Until then, this repo dutifully carries on the dotenv torch. It is actively maintained.
```
1 change: 0 additions & 1 deletion dotenv/LICENSE

This file was deleted.

82 changes: 0 additions & 82 deletions dotenv/README.md

This file was deleted.

76 changes: 0 additions & 76 deletions dotenv/src/bin/dotenvy.rs

This file was deleted.

117 changes: 0 additions & 117 deletions dotenv/src/errors.rs

This file was deleted.

Loading

0 comments on commit 17b438f

Please sign in to comment.