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 .
Unit 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.md
with 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_github
workflow, and enteryes
for theRelease after build
parameter. - 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.md
block for this release version into the release notes field - Publish the release