Thanks for your interest in contributing! This document outlines the process for contributing to NextMeeting.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/next-meeting-menu-bar.git - Open in Xcode:
open NextMeeting/NextMeeting.xcodeproj - Create a branch:
git checkout -b feat/your-feature
- macOS 13.0+
- Xcode 15+
- Swift 5.9+
# Open project
open NextMeeting/NextMeeting.xcodeproj
# Build (in Xcode)
⌘B
# Run
⌘RWe use SwiftLint for code quality. Install it via Homebrew:
brew install swiftlintRun before committing:
swiftlint lint NextMeeting/feat/description— New featuresfix/description— Bug fixesdocs/description— Documentationrefactor/description— Code refactoring
Follow Conventional Commits:
feat: add support for Slack huddles
fix: prevent memory leak in alert service
docs: update installation instructions
- Update documentation if needed
- Add tests for new functionality
- Ensure SwiftLint passes
- Reference any related issues
- Provide a clear description of changes
CalendarService— EventKit integration, meeting fetchingPreferencesService— UserDefaults-backed settingsKeyboardShortcutService— Global hotkey handlingLaunchAtLoginService— SMAppService integration
MenuContentView— Main dropdown menuSettingsView— Preferences panelMeetingAlertWindow— Full-screen alerts
Meeting— Core meeting data model with computed properties
To add a new meeting platform:
- Open
CalendarService.swift - Find the
extractMeetingURLfunction - Add a regex pattern to the
patternsarray:
#"https?://your-platform\.com/[\w/-]+"#- Add a test in
URLExtractionTests.swift - Update the README
Test files are in NextMeeting/NextMeetingTests/:
MeetingTests.swift— Meeting model testsURLExtractionTests.swift— URL pattern tests
To add tests to the Xcode project:
- File → New → Target → Unit Testing Bundle
- Add test files to the target
Open an issue or reach out to the maintainers.
Thank you for contributing! 🎉