- Regenerated documentation using Gleam v1.13.0, which improves type display in generated HTML documentation
- Profile-based configuration - Manage environment-specific configs with automatic merging
- Load configuration directories with base + profile overrides
- Activate profiles via
YODEL_PROFILESenvironment variable or programmatically withyodel.with_profiles() - Example:
export YODEL_PROFILES=prod,debugto layer multiple configs
- Directory loading -
load("./config")now automatically discovers and merges profile configs - New configuration options:
with_profiles(profiles)- Set active configuration profileswith_config_base_name(name)- Customize base config filename (default: "config")with_profile_env_var(name)- Customize profile environment variable name (default: "YODEL_PROFILES")
- Internal modules moved and restricted - Modules previously at
yodel/parser,yodel/resolver, etc. are now underyodel/internal/or marked@internal- These were never intended to be part of the public API
- If your code imported these directly, it will no longer compile
- The public API (via
import yodel) remains fully backward compatible - Action required: Replace internal imports with the public
yodelmodule API - If you have a use case requiring internal module access, please open an issue on GitHub
- Comprehensive documentation for profile-based configuration
- Enhanced README with common patterns and use cases
No changes needed! The public API is fully backward compatible.
Replace internal imports with the public API:
// ❌ No longer works:
import yodel/parser
import yodel/resolver
import yodel/properties
// ✅ Use instead:
import yodel
let assert Ok(config) = yodel.load("config.yaml")
let assert Ok(value) = yodel.get_string(config, "key")If you were using internal modules for functionality not available in the public API, please open an issue describing your use case.
// Before (still works):
let assert Ok(config) = yodel.load("config.yaml")
// After (new capability):
let assert Ok(config) = yodel.load("./config") // Loads base + active profiles- Replace deprecated Gleam standard library calls
- Update dependencies
- Improve Github Actions Workflows
- Prettier + Markdownlint npm configuration for repo hygiene
- RenovateBot config tweaks
- Fix internal imports to resolve Gleam build tool warnings
Initial stable release