Thanks for your interest in improving ProgressUI! This document covers the essentials for contributing.
- Fork the repository and create a feature branch off
develop:git checkout -b feature/my-feature develop
- Make your change.
- Build and test:
swift build swift test - For UI changes, run the sample app in
Example/Example.xcodeproj(iOS, macOS, and watchOS targets are available) to verify behavior interactively.
Sources/ProgressUI/— the library. Public API surface isProgressUI,Options,Progressable,Shape,GrowDirection, andProgressSize.Tests/ProgressUITests/— XCTest unit tests.Example/— multi-platform sample app.
- Platform availability. The package supports iOS 14+, macOS 11+, macCatalyst 14+, watchOS 7+, tvOS 15+, and visionOS 1+. Any new API must be available on all of these.
- Configuration flows through
Options. Prefer adding a field toOptions(and a matchingset…modifier) over adding new initializers toProgressUI. - Public API is semver-relevant. Treat changes to the public types above as breaking unless they are purely additive.
- Document public API with
///or/** */doc comments, and update the DocC landing page (Sources/ProgressUI/ProgressUI.docc/ProgressUI.md) when adding new public symbols. - Add tests for new logic where practical.
- Update
CHANGELOG.mdunder[Unreleased].
Open pull requests against develop. CI builds and tests across all supported
platforms; please make sure it is green before requesting review.