Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apple/swift-configuration
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.1.1
Choose a base ref
...
head repository: apple/swift-configuration
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.2.0
Choose a head ref
  • 16 commits
  • 112 files changed
  • 4 contributors

Commits on Sep 24, 2025

  1. [README] Fix 'Custom key syntax' link (#3)

    ### Motivation
    
    Wrong link in the README.
    
    ### Modifications
    
    Fixed the link.
    
    ### Result
    
    Link works, no 404.
    
    ### Test Plan
    
    Verified locally.
    czechboy0 authored Sep 24, 2025
    Configuration menu
    Copy the full SHA
    3fbe75b View commit details
    Browse the repository at this point in the history
  2. [CI] Enable static SDK builds (#4)

    ### Motivation
    
    Ensure the package builds against the static SDK.
    
    ### Modifications
    
    Enabled CI for static SDK builds.
    
    ### Result
    
    Additional CI.
    
    ### Test Plan
    
    Will check this PR's result.
    czechboy0 authored Sep 24, 2025
    Configuration menu
    Copy the full SHA
    8c8cb89 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e6f5e4f View commit details
    Browse the repository at this point in the history
  4. [Docs] Remove obsolete example about catching ConfigError (#7)

    ### Motivation
    
    Fixes #6.
    
    Because `ConfigError` isn't actually a public type, remove an example
    that showed how to catch and inspect it.
    
    ### Modifications
    
    Removed the example.
    
    ### Result
    
    Corrected docs.
    
    ### Test Plan
    
    N/A
    czechboy0 authored Sep 24, 2025
    Configuration menu
    Copy the full SHA
    4dbce5f View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2025

  1. Update Package.swift (#9)

    ### Motivation
    
    The example points to a local version of the repo, but it's now ready to
    point to github.
    
    ### Modifications
    
    Changed the `Package.swift` in the getting started example to point to
    this repo.
    
    ### Result
    
    Example code will no longer look for a local copy. 
    
    ### Test Plan
    
    I built and ran the package and it said hello!
    carlynorama authored Sep 25, 2025
    Configuration menu
    Copy the full SHA
    4a50528 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2025

  1. [Docs] Fix up docs around key mapping (#46)

    ### Motivation
    
    The docs had an incorrect name for `KeyMappingProvider`, plus they
    didn't really show how to use the convenience methods.
    
    ### Modifications
    
    Fixed the name and added examples of the convenience method.
    
    ### Result
    
    Improved docs.
    
    ### Test Plan
    
    Previewed locally.
    czechboy0 authored Oct 6, 2025
    Configuration menu
    Copy the full SHA
    c8af26e View commit details
    Browse the repository at this point in the history
  2. [Refactor] Remove ConcreteAsyncSequence (#38)

    ### Motivation
    
    We don't need ConcreteAsyncSequence anymore, it used to be necessary
    before ConfigUpdatesAsyncSequence existed, but not any more.
    
    ### Modifications
    
    Remove ConcreteAsyncSequence, internal type.
    
    ### Result
    
    Simplified code.
    
    ### Test Plan
    
    Verified tests pass on 6.2 and 6.1 locally.
    czechboy0 authored Oct 6, 2025
    Configuration menu
    Copy the full SHA
    1f7cd0d View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2025

  1. Move from platform versions to symbol availability (#48)

    ### Motivation
    
    Packages such as valkey-swift and async-http-client don't use platform
    versions in their Package.swift, so they can't depend on this package
    unless we drop it too.
    
    ### Modifications
    
    Switched from Package.swift platform versions to per-symbol
    availability.
    
    ### Result
    
    This does NOT actually make the code work on older versions than before,
    just changes how we express availability. It's still macOS 15.0+.
    
    ### Test Plan
    
    All tests passed locally.
    czechboy0 authored Oct 7, 2025
    Configuration menu
    Copy the full SHA
    618d19d View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2025

  1. Add linkage test (#53)

    ### Motivation
    
    Ensure that we don't accidentally link the full Foundation on Linux, as
    we generally only need FoundationEssentials.
    
    ### Modifications
    
    Adds a script ensuring that the Configuration module only links
    FoundationEssentials on Linux.
    
    ### Result
    
    Confidence that we don't accidentally start linking the full Foundation.
    
    ### Test Plan
    
    CI.
    czechboy0 authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    80df713 View commit details
    Browse the repository at this point in the history
  2. Default to enabled observability (#54)

    ### Motivation
    
    Swift Log/Swift Metrics integration should be enabled by default. And
    the operator can always pass in a no-op log/metrics backend if they want
    to discard it.
    
    This is important when Configuration is used as a transitive dependency,
    as there the operator wouldn't have a way to _enable_ observability from
    this library unless the direct dependency that pulled in Configuration
    was cooperative.
    
    ### Modifications
    
    Enabled logging/metrics by default by changing the default parameter
    values in the reloading providers.
    
    ### Result
    
    Logs/metrics emitted for reloading providers by default.
    
    ### Test Plan
    
    Adapted tests.
    czechboy0 authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    f078f10 View commit details
    Browse the repository at this point in the history
  3. Rename bytes-from-string decoders (#57)

    ### Motivation
    
    Fixes #14 - the
    naming was a bit inconsistent, as it's not decoding "hex bytes" from a
    "string", but instead "bytes" from a "hex string".
    
    ### Modifications
    
    Renamed types:
    - `Base64ByteFromStringDecoder` -> `ConfigBytesFromBase64StringDecoder`
    - `HexByteFromStringDecoder` -> `ConfigBytesFromHexStringDecoder`
    
    ### Result
    
    Better names.
    
    ### Test Plan
    
    Updated tests.
    czechboy0 authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    5932a13 View commit details
    Browse the repository at this point in the history
  4. Rename ProviderCompatTest.run() -> ProviderCompatTest.runTest() (#56)

    ### Motivation
    
    Fixes #35, which brought up a good point that `run()` wasn't a good name
    for a compat test method to actually run tests.
    
    ### Modifications
    
    Renamed to `runTest()`.
    
    ### Result
    
    A less confusing method name.
    
    ### Test Plan
    
    Ran tests locally.
    czechboy0 authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    d142b30 View commit details
    Browse the repository at this point in the history
  5. [CI] Test examples (#50)

    ### Motivation
    
    As we evolve the API and the examples, we want to make sure the examples
    continue to build successfully.
    
    ### Modifications
    
    Added CI setup for the Examples directory.
    
    ### Result
    
    Better test coverage of examples.
    
    ### Test Plan
    
    Ran the script locally, will check again on CI that it's green.
    czechboy0 authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    29823e4 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2025

  1. Expose AbsoluteConfigKey prepending/appending (#39)

    ### Motivation
    Docs mention:
    > ```swift
    > // Only remap the environment variables, not the JSON config
    > let keyMappedEnvProvider = KeyMappingProvider(upstream: envProvider) {
    key in
    >     key.prepending(["myapp", "prod"])
    > }
    > ```
    but `prepending(_:)`/`appending(_:)` were internal.
    
    ### Modifications
    
    Switched `internal` to `public`.
    
    ### Result
    
    `KeyMappingProvider` is easier to use :-)
    
    ### Test Plan
    
    n/a
    finnvoor authored Oct 16, 2025
    Configuration menu
    Copy the full SHA
    6a0e3dd View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2025

  1. chore: restrict GitHub workflow permissions - future-proof (#59)

    See swiftlang/github-workflows#167 for
    additional context
    
    This approach aligns with security best practices, as detailed in the
    following documentation:
    
    -
    https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions
    -
    https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#defining-access-for-the-github_token-scopes
    -
    https://openssf.org/blog/2024/08/12/mitigating-attack-vectors-in-github-workflows/
    
    
    The default GITHUB_TOKEN permissions are defined at the repository
    level. This PR modifies the workflow-level overrides to conform to
    OpenSSF best practices -> defense in depth.
    
    Allow me to quote OpenSSF:
    
    https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions
    
    > The highest score is awarded when the permissions definitions in each
    workflow's yaml file are set as read-only at the top level and the
    required write permissions are declared at the run-level.”
    
    > Remediation steps
    > - Set top-level permissions as read-all or contents: read as described
    in GitHub's documentation.
    > - Set any required write permissions at the job-level. Only set the
    permissions required for that job; do not set permissions: write-all at
    the job level.
    
    
    Compare to the LLVM project:
    
    Top-level: contents read, e.g.
    https://github.com/swiftlang/llvm-project/blob/next/.github/workflows/build-ci-container-windows.yml#L3-L4
    -> this makes it future-proof
    
    Job-level: Allow write permissions as needed, e.g.
    https://github.com/swiftlang/llvm-project/blob/next/.github/workflows/build-ci-container-windows.yml#L53-L58
    
    Signed-off-by: Melissa Kilby <[email protected]>
    incertum authored Oct 20, 2025
    Configuration menu
    Copy the full SHA
    ab27eef View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2025

  1. Update docs for the 0.2.0 release (#58)

    ### Motivation
    
    We made a few breaking changes, so let's get 0.2.0 out.
    
    ### Modifications
    
    Updated docs to refer to a 0.2.0 release instead of 0.1.0.
    
    ### Result
    
    Accurate docs.
    
    ### Test Plan
    
    N/A
    czechboy0 authored Oct 21, 2025
    Configuration menu
    Copy the full SHA
    9d5e407 View commit details
    Browse the repository at this point in the history
Loading