Contents

devkitorganization/devfoundation

DevFoundation is a Swift 6 package that provides useful types and protocols for building libraries

Development Requirements

DevFoundation requires a Swift 6.2+ toolchain to build. We only test on Apple platforms. We follow the [Swift API Design Guidelines][SwiftAPIDesignGuidelines]. We take pride in the fact that our public interfaces are fully documented and tested. We aim for overall test coverage over 99%.

[SwiftAPIDesignGuidelines]: https://swift.org/documentation/api-design-guidelines/

Development Setup

To set up the development environment:

1. Run Scripts/install-git-hooks to install git hooks that automatically check code formatting on commits and run comprehensive tests before pushing. 2. Use Scripts/lint to manually check code formatting at any time. 3. Use Scripts/test-all-platforms to run tests on all supported platforms locally.

Continuous Integration

DevFoundation uses GitHub Actions for continuous integration. The CI pipeline:

- Linting: Automatically checks code formatting on all pull requests using swift format - Testing: Runs tests on macOS (iOS, tvOS, and watchOS testing disabled in CI due to stability issues) - Coverage: Generates code coverage reports using xccovPretty

For comprehensive cross-platform testing, developers should run Scripts/test-all-platforms locally or rely on the pre-push git hook which automatically runs all platform tests before pushing changes.

Bugs and Feature Requests

Find a bug? Want a new feature? Create a GitHub issue and we’ll take a look.

License

All code is licensed under the MIT license. Do with it as you will.

Package Metadata

Repository: devkitorganization/devfoundation

Default branch: main

README: README.md