This file contains general guidelines but is subject to change and evolve over time.
Before contributing, it is encouraged to post an Issue to discuss a bug or new feature prior to implementing it. Once implemented on your fork, PRs are welcome for features that benefit the core functionality of the project.
Code owners/maintainers reserve the right to revise or reject contributions if they are not deemed fit.
Code formatting is not strictly enforced but is a courtesy we would like contributors to employ.
SwiftFormat is used to format *.swift files.
cd <path-to-repo-root>
swiftformat . --swift-version 6.2Unit testing is encouraged but not strictly required if making code contributions. However, all existing unit tests must pass before a code contribution will be accepted.
Unit tests can be run on the command-line or in Xcode using the MarkersExtractor-Package scheme.
GitHub CI is also set up to run the unit tests server-side.
Publishing releases and tags should be left to code owners/maintainers.
For code owners/maintainers, the following release spec is used:
- Unit tests must pass
- Ensure package dependencies are set to version numbers and not branch names where possible.
- Perform the following file modifications:
- Update the version number string literal in
Sources/MarkersExtractor/Version.swift - Update root
CHANGELOG.md- with a condensed bullet-point list of changes/fixes/improvements according to its established format
- where possible, reference the Issue/PR number(s) or commit(s) where each change was made
- Update root
README.mdwith any pertinent revisions:- Update all literal instances of the package version to the latest package version
- New help block output of the CLI tool
- Update the version number string literal in
- Commit the changes made in Step 3 using the new version number (ie:
0.3.0) as the commit message, and push to main. - Run the
release_githubworkflow, and enteryesfor theRelease after buildparameter. - After the workflow run successfully completes, publish GitHub Release:
- Find the newly created draft release in https://github.com/TheAcharya/MarkersExtractor/releases
- Paste the
CHANGELOG.mdblock for this release version into the release notes field - Publish the release