AI assistance disclosure
If you are using any kind of AI assistance to contribute, you must disclose this in your pull request, commit, or issue, including the extent to which AI assistance was used (e.g., docs only vs. code generation).Trivial tab-completion doesn’t need to be disclosed, as long as it is limited to single keywords or short phrases.
- Understand the code that is produced
- Be able to answer critical questions about it
- Ensure the code meets quality standards before submission
Pull request process
Before you start
Check for duplicates
Search existing issues and PRs to ensure no one is already working on the same feature or bug.
Indicate your work
Comment on relevant issues to indicate you’re working on them and avoid duplicate work.
Creating pull requests
Open a pull request to dev
When opening your PR, make sure to:
- Target the
devbranch, notmain - Provide a clear description of the changes
- Reference any related issues
- Include screenshots or videos for UI changes
- Disclose any AI assistance used
Code style and standards
Conventions
- Follow existing SwiftUI/AppKit patterns in the codebase
- Use the established file organization structure
- Prefer modern Swift/SwiftUI APIs when possible
Compatibility and OS versions
- Maintain backward compatibility: The current minimum deployment target is macOS 15.5
- New features requiring newer OS versions should use
@availableor#if availablechecks to preserve compatibility - Discuss before raising minimum version: If a feature would significantly benefit from raising the minimum OS version, open an issue to discuss the trade-offs before implementation
Issue reporting
Bug reports
Be descriptive and thorough when reporting bugs. Include:- macOS version
- Nook version
- Clear steps to reproduce the issue
- Expected vs actual behavior
- Screenshots if applicable
- Relevant console/error messages
Feature requests
Provide detailed context when requesting features. Include:- Clear description of the feature and its use case
- Explanation of how it fits with Nook’s goals (fast, secure, beautiful)
- Consideration of implementation complexity and user impact
- Verification that similar functionality doesn’t already exist
Community guidelines
Nook is built by volunteers who contribute their time and expertise out of passion for creating great software. We appreciate everyone who takes time to contribute to making Nook better.- Be respectful and constructive
- Help maintain a welcoming environment for all contributors
- Focus on the code and ideas, not individuals
- Show empathy toward other community members