Releases: apple/swift-configuration
1.0.0
Swift Configuration reaches 1.0! 🎉
This milestone allows integrating this package in API-stable libraries and applications, and building API-stable custom providers.
Many thanks to the folks who've provided feedback since the initial release, you made this possible 🙏 Do keep the feedback coming, while the API will not take breaking changes anymore, we will continue to evolve it in an API-additive way.
Which way will you integrate?
- Make it easy to configure your library by offering a method with a ConfigReader parameter (docs).
- Make it easy to integrate any configuration sources you need by instantiating a ConfigReader in your application (docs).
- Expand Swift Configuration's capabilities by implementing a custom configuration provider, for example to add support for another file format or by calling an external configuration system (docs).
What's Changed
⚠️ Breaking changes since 1.0.0-alpha.1
- Rename traits: drop the Support suffix by @czechboy0 in #101
- Removed deprecated code by @czechboy0 in #93
Full Changelog: 1.0.0-alpha.1...1.0.0
1.0.0-alpha.1
This is the first alpha release of Swift Configuration 1.0.0. There are no more planned API-breaking changes and unless issues come up, this is the API shape that will be stabilized as Swift Configuration 1.0.0 in a couple of weeks.
Please update your libraries and applications to use this alpha release and provide feedback 🙏
⚠️ API-breaking changes between 0.2.0 and 1.0.0-alpha.1
- Generic file providers (Implementation of SCO-0001) by @czechboy0 in #60
- Migration: Rename references from
JSONProvidertoFileProvider<JSONSnapshot>, same forYAMLProviderand their reloading variants.
- Migration: Rename references from
- Rename ConfigSnapshotProtocol -> ConfigSnapshot by @czechboy0 in #67
- Migration: Rename references from
ConfigSnapshotProtocoltoConfigSnapshot
- Migration: Rename references from
- Remove custom key decoders by @czechboy0 in #71
- Migration: Use the period-separated default key decoder.
- Rename ConfigReader.withSnapshot(_:) to ConfigReader.snapshot() by @czechboy0 in #79
- Migration: Rename references from
withSnapshottosnapshot.
- Migration: Rename references from
- Remove the ConfigKeyEncoder API by @czechboy0 in #86
- Migration: Use the built-in key encoders.
Other changes
SemVer Minor
- NonisolatedNonsendingByDefault and other concurrency fixes by @czechboy0 in #63
- Add an allowMissing parameter to file-based providers by @czechboy0 in #73
- Allow non-copyable Return types in with-style methods by @czechboy0 in #81
- Add missing availability annotations in public APIs by @czechboy0 in #85
SemVer Patch
- Label closure parameters in public APIs by @czechboy0 in #82
Other Changes
- [Proposal] SCO-0001: Generic file providers by @czechboy0 in #62
- [SCO-0002] Remove custom key decoders by @czechboy0 in #72
- Prep docs for alpha.1 by @czechboy0 in #87
Full Changelog: 0.2.0...1.0.0-alpha.1
0.2.0
What's Changed
⚠️ Breaking changes between 0.1.x and 0.2.0
- Rename bytes-from-string decoders in #57
- Rename ProviderCompatTest.run() -> ProviderCompatTest.runTest() in #56
SemVer Minor
- Default to enabled observability in #54
- Expose AbsoluteConfigKey prepending/appending by @finnvoor in #39
SemVer Patch
- [Refactor] Remove ConcreteAsyncSequence in #38
- Move from platform versions to symbol availability in #48
Other Changes
- [README] Fix 'Custom key syntax' link in #3
- [CI] Enable static SDK builds in #4
- Fix up a secrets example in #5
- [Docs] Remove obsolete example about catching ConfigError in #7
- Update Package.swift by @carlynorama in #9
- [Docs] Fix up docs around key mapping in #46
- Add linkage test in #53
- [CI] Test examples in #50
- chore: restrict GitHub workflow permissions - future-proof by @incertum in #59
- Update docs for the 0.2.0 release in #58
New Contributors
- @carlynorama made their first contribution in #9
- @finnvoor made their first contribution in #39
- @incertum made their first contribution in #59
Full Changelog: 0.1.1...0.2.0
0.1.1
What's Changed
Other Changes
- SPI needs the docc-plugin installed to build the docs - this fixes that scenario by @heckj in #1
- Use the general runner pool for PRs by @czechboy0 in #2
New Contributors
- @heckj made their first contribution in #1
- @czechboy0 made their first contribution in #2
Full Changelog: 0.1.0...0.1.1