diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..1012b6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,59 @@ +name: Package bug report +description: Report something that is not working with NotificationManager. +title: "[Bug]: " +labels: + - bug +body: + - type: markdown + attributes: + value: Thanks for helping improve NotificationManager. + - type: textarea + id: summary + attributes: + label: Summary + description: What happened, and what did you expect instead? + placeholder: NotificationManager should... but it... + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + placeholder: | + 1. Add NotificationManager via Swift Package Manager + 2. Call NotificationManager... + 3. Observe ... + validations: + required: true + - type: textarea + id: code + attributes: + label: Minimal Code Example + description: Share the smallest Swift snippet that reproduces the issue. + render: swift + - type: input + id: version + attributes: + label: NotificationManager Version + placeholder: v1.2.0 + validations: + required: true + - type: input + id: swift + attributes: + label: Swift / Xcode Version + placeholder: Swift 5.9 / Xcode 15.x + validations: + required: true + - type: input + id: platform + attributes: + label: Platform Version + placeholder: iOS 17.x, macOS 15.x, or visionOS 1.x + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional Context + description: Add logs, authorization status, notification settings, or anything else that helps. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..d1537cd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,46 @@ +name: Feature request +description: Suggest an improvement for NotificationManager. +title: "[Feature]: " +labels: + - enhancement +body: + - type: markdown + attributes: + value: Thanks for helping improve NotificationManager. + - type: textarea + id: summary + attributes: + label: Summary + description: What should NotificationManager support or improve? + placeholder: NotificationManager should make it possible to... + validations: + required: true + - type: textarea + id: use-case + attributes: + label: Use Case + description: Describe the app scenario or notification workflow this would help with. + placeholder: In an iOS/macOS/visionOS app, I want to... + validations: + required: true + - type: textarea + id: api + attributes: + label: Proposed API + description: If you have an API shape in mind, share a small Swift example. + render: swift + - type: dropdown + id: platforms + attributes: + label: Platforms + description: Which platforms should this apply to? + multiple: true + options: + - iOS + - macOS + - visionOS + - type: textarea + id: context + attributes: + label: Additional Context + description: Add links, alternatives, or implementation notes if relevant. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..6679f10 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,14 @@ +## Summary + + + +## Testing + + + +## Checklist + +- [ ] The change is focused and easy to review. +- [ ] I ran `swift test` or explained why it is not applicable. +- [ ] I considered supported platforms and API availability. +- [ ] I added or updated documentation where needed. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9d5018c..1c9a1f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - development pull_request: jobs: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e252823..a4e9564 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - development pull_request: jobs: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d040b95 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing to NotificationManager + +Thanks for helping improve NotificationManager. + +NotificationManager is a Swift Package for managing local notifications with `UserNotifications`. + +## Getting Started + +Clone the repository and open the package in Xcode, or work from the command line: + +```sh +swift build +swift test +``` + +Requirements: + +- Xcode 15.0+ +- Swift 5.9+ +- macOS 10.15+, iOS 13.0+, or visionOS 1.0+ + +## Guidelines + +- Keep pull requests small and focused. +- Follow the existing Swift style and public API shape. +- Keep the package lightweight and avoid unnecessary dependencies. +- Preserve supported platform availability when adding APIs. +- Include tests for behavior that can be covered without requiring real notification delivery. +- Include clear manual test steps when behavior depends on notification authorization, scheduling, badges, or platform-specific behavior. + +## Issues + +Use GitHub Issues for bugs and feature requests. + +For bugs, please include: + +- NotificationManager version or commit +- Swift and Xcode version +- Platform and OS version +- Minimal Swift code example +- Steps to reproduce and expected behavior + +For feature requests, describe the notification workflow, affected platforms, and any proposed Swift API. + +For security issues, follow [SECURITY.md](SECURITY.md). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..a63d6a1 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,18 @@ +# Security Policy + +## Reporting a Vulnerability + +Please report security issues privately through GitHub's **Report a vulnerability** button on this repository. + +Do not open a public issue for suspected vulnerabilities. Include: + +- affected NotificationManager version or commit +- platform and OS version +- minimal reproduction details +- expected impact + +We will review the report and follow up through the private vulnerability report. + +## Scope + +Security reports should relate to NotificationManager's Swift Package code, public API, or notification-related behavior.