mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-21 08:41:57 +00:00
added Issue and PR templates
This commit is contained in:
parent
b89c5b7b4f
commit
e0bc66c167
5 changed files with 426 additions and 0 deletions
217
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
217
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
|
|
@ -0,0 +1,217 @@
|
||||||
|
name: Bug report
|
||||||
|
description: Report a reproducible bug (one per issue).
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels:
|
||||||
|
- bug
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for reporting a bug.
|
||||||
|
|
||||||
|
If we can reproduce it, we can usually fix it. This form is just to get the basics in one place.
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
## Quick checks
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: checks
|
||||||
|
attributes:
|
||||||
|
label: Pre-flight checks
|
||||||
|
options:
|
||||||
|
- label: I searched existing issues and this is not a duplicate.
|
||||||
|
required: true
|
||||||
|
- label: I can reproduce this on the latest release or latest main build.
|
||||||
|
required: false
|
||||||
|
- label: This issue is limited to a single bug (not multiple unrelated problems).
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
## Version & device
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: app_version
|
||||||
|
attributes:
|
||||||
|
label: App version / OTA update ID
|
||||||
|
description: Release version, commit hash, or OTA update ID. You can find your OTA update ID in Settings > App updates > Current version (hold to copy).
|
||||||
|
placeholder: "e.g. 1.2.3, main@abc1234, or an OTA ID"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: install_method
|
||||||
|
attributes:
|
||||||
|
label: Install method
|
||||||
|
options:
|
||||||
|
- GitHub Release APK / IPA
|
||||||
|
- Expo Go
|
||||||
|
- Built from source
|
||||||
|
- Other (please describe below)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: platform
|
||||||
|
attributes:
|
||||||
|
label: Platform
|
||||||
|
options:
|
||||||
|
- Android phone/tablet
|
||||||
|
- iOS (iPhone/iPad)
|
||||||
|
- Android emulator
|
||||||
|
- iOS Simulator
|
||||||
|
- Other (please describe below)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: device_model
|
||||||
|
attributes:
|
||||||
|
label: Device model
|
||||||
|
description: "Example: iPhone 15 Pro, Pixel 8, Galaxy S23 Ultra, iPad Pro, etc."
|
||||||
|
placeholder: "e.g. iPhone 15 Pro"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: os_version
|
||||||
|
attributes:
|
||||||
|
label: OS version
|
||||||
|
placeholder: "e.g. Android 14, iOS 17.2"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: player_mode
|
||||||
|
attributes:
|
||||||
|
label: Player mode
|
||||||
|
description: If you are using an external player, most playback issues must be reported to that player instead.
|
||||||
|
options:
|
||||||
|
- Internal player (iOS: KSPlayer)
|
||||||
|
- Internal player (Android: ExoPlayer)
|
||||||
|
- Internal player (Android: MPV)
|
||||||
|
- External player
|
||||||
|
- Ask every time
|
||||||
|
- Not sure
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
## What happened?
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: area
|
||||||
|
attributes:
|
||||||
|
label: Area (tag)
|
||||||
|
description: Pick the closest match. It helps triage.
|
||||||
|
options:
|
||||||
|
- Playback (start/stop/buffering)
|
||||||
|
- Streams / Sources (selection, loading, errors)
|
||||||
|
- Next Episode / Auto-play
|
||||||
|
- Watch Progress (resume, watched state, history)
|
||||||
|
- Subtitles (styling, sync)
|
||||||
|
- Audio tracks
|
||||||
|
- UI / Layout / Animations
|
||||||
|
- Settings
|
||||||
|
- Sync (Trakt / SIMKL / remote)
|
||||||
|
- Downloads
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Exact steps. If it depends on specific content, describe it (movie/series, season/episode, source/addon name) without sharing private links.
|
||||||
|
placeholder: |
|
||||||
|
1. Open ...
|
||||||
|
2. Navigate to ...
|
||||||
|
3. Press ...
|
||||||
|
4. Observe ...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: expected
|
||||||
|
attributes:
|
||||||
|
label: Expected behavior
|
||||||
|
placeholder: "What you expected to happen."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: actual
|
||||||
|
attributes:
|
||||||
|
label: Actual behavior
|
||||||
|
placeholder: "What actually happened (include any on-screen error text/codes)."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: frequency
|
||||||
|
attributes:
|
||||||
|
label: Frequency
|
||||||
|
options:
|
||||||
|
- Always
|
||||||
|
- Often (more than 50%)
|
||||||
|
- Sometimes
|
||||||
|
- Rarely
|
||||||
|
- Once
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: regression
|
||||||
|
attributes:
|
||||||
|
label: Did this work before?
|
||||||
|
options:
|
||||||
|
- Not sure
|
||||||
|
- Yes, it used to work
|
||||||
|
- No, it never worked
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
## Extra context (optional)
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: media_details
|
||||||
|
attributes:
|
||||||
|
label: Media details (optional)
|
||||||
|
description: Only include what you can safely share.
|
||||||
|
placeholder: |
|
||||||
|
- Content type: series/movie
|
||||||
|
- Season/Episode: S1E2
|
||||||
|
- Stream/source: (addon name / source label)
|
||||||
|
- Video format: (if known)
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Logs (optional but helpful)
|
||||||
|
description: |
|
||||||
|
Not required, but super helpful for playback/crash issues.
|
||||||
|
If you can, include a short snippet from Metro bundler, Xcode, or `adb logcat`.
|
||||||
|
render: shell
|
||||||
|
placeholder: |
|
||||||
|
adb logcat -d | tail -n 300
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: extra
|
||||||
|
attributes:
|
||||||
|
label: Anything else? (optional)
|
||||||
|
description: Screenshots/recordings, related issues, workarounds, etc.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Downloads / Releases
|
||||||
|
url: https://github.com/tapframe/NuvioMobile/releases
|
||||||
|
about: Grab the latest GitHub Release APK/IPA here.
|
||||||
|
- name: Documentation
|
||||||
|
url: https://github.com/tapframe/NuvioMobile/blob/main/README.md
|
||||||
|
about: Read the README for setup and usage details.
|
||||||
78
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
78
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
name: Feature request
|
||||||
|
description: Suggest an improvement or new feature.
|
||||||
|
title: "[Feature]: "
|
||||||
|
labels:
|
||||||
|
- enhancement
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
One feature request per issue, please. The more real-world your use case is, the easier it is to evaluate.
|
||||||
|
|
||||||
|
Feature requests are reviewed as product proposals first.
|
||||||
|
Please do not open a pull request for a new feature, major UX change, or broad cosmetic update unless a maintainer has explicitly approved it first.
|
||||||
|
Unapproved feature PRs will usually be closed.
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: area
|
||||||
|
attributes:
|
||||||
|
label: Area (tag)
|
||||||
|
options:
|
||||||
|
- Playback
|
||||||
|
- Streams / Sources
|
||||||
|
- Next Episode / Auto-play
|
||||||
|
- Watch Progress
|
||||||
|
- Subtitles
|
||||||
|
- Audio
|
||||||
|
- UI / Layout / Animations
|
||||||
|
- Settings
|
||||||
|
- Sync (Trakt / SIMKL / remote)
|
||||||
|
- Downloads
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: Problem statement
|
||||||
|
description: What problem are you trying to solve?
|
||||||
|
placeholder: "I want to be able to..."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: proposed
|
||||||
|
attributes:
|
||||||
|
label: Proposed solution
|
||||||
|
description: What would you like the app to do?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: contribution_plan
|
||||||
|
attributes:
|
||||||
|
label: Are you planning to implement this yourself?
|
||||||
|
description: Major features are usually implemented in-house unless approved first.
|
||||||
|
options:
|
||||||
|
- No, this is only a proposal
|
||||||
|
- Maybe, but only if approved first
|
||||||
|
- Yes, but I understand implementation still needs maintainer approval
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Alternatives considered (optional)
|
||||||
|
description: Any workarounds or other approaches you considered.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: extra
|
||||||
|
attributes:
|
||||||
|
label: Additional context (optional)
|
||||||
|
description: Mockups, examples from other apps, etc.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
43
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
43
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
<!-- What changed in this PR? -->
|
||||||
|
|
||||||
|
## PR type
|
||||||
|
|
||||||
|
<!-- Pick one and delete the others -->
|
||||||
|
- Bug fix
|
||||||
|
- Small maintenance improvement
|
||||||
|
- Docs fix
|
||||||
|
- Approved larger change (link approval below)
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
<!-- Why this change is needed. Link bug/issue/context. -->
|
||||||
|
|
||||||
|
## Policy check
|
||||||
|
|
||||||
|
<!-- Confirm these before requesting review -->
|
||||||
|
- [ ] This PR is not cosmetic only.
|
||||||
|
- [ ] This PR does not add a new major feature without prior approval.
|
||||||
|
- [ ] This PR is small in scope and focused on one problem.
|
||||||
|
- [ ] If this is a larger or directional change, I linked the issue where it was approved.
|
||||||
|
|
||||||
|
<!-- PRs that do not match this policy will usually be closed without merge. -->
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
<!-- What you tested and how (manual + automated). -->
|
||||||
|
- [ ] iOS tested
|
||||||
|
- [ ] Android tested
|
||||||
|
|
||||||
|
## Screenshots / Video (UI changes only)
|
||||||
|
|
||||||
|
<!-- If UI changed, add before/after screenshots or a short clip. -->
|
||||||
|
|
||||||
|
## Breaking changes
|
||||||
|
|
||||||
|
<!-- Any breaking behavior/config/schema changes? If none, write: None -->
|
||||||
|
|
||||||
|
## Linked issues
|
||||||
|
|
||||||
|
<!-- Example: Fixes #123 -->
|
||||||
80
CONTRIBUTING.md
Normal file
80
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
Thanks for helping improve NuvioMobile.
|
||||||
|
|
||||||
|
## PR policy
|
||||||
|
|
||||||
|
Pull requests are currently intended for:
|
||||||
|
|
||||||
|
- Reproducible bug fixes
|
||||||
|
- Small stability improvements
|
||||||
|
- Minor maintenance work
|
||||||
|
- Small documentation fixes that improve accuracy
|
||||||
|
|
||||||
|
Pull requests are generally **not** accepted for:
|
||||||
|
|
||||||
|
- New major features
|
||||||
|
- Product direction changes
|
||||||
|
- Large UX / UI redesigns
|
||||||
|
- Cosmetic-only changes
|
||||||
|
- Refactors without a clear user-facing or maintenance benefit
|
||||||
|
|
||||||
|
For feature ideas and bigger changes, please open an issue first. Feature implementation is usually kept in-house unless it has been discussed and explicitly approved beforehand.
|
||||||
|
|
||||||
|
## Where to ask questions
|
||||||
|
|
||||||
|
- Use **Issues** for bugs, feature requests, setup help, and general support.
|
||||||
|
|
||||||
|
## Bug reports (rules)
|
||||||
|
|
||||||
|
To keep issues fixable, bug reports should include:
|
||||||
|
|
||||||
|
- App version or OTA update ID (Settings > App updates > Current version, hold to copy)
|
||||||
|
- Platform + device model + OS version (Android/iOS)
|
||||||
|
- Install method (release APK/IPA / Expo Go / built from source)
|
||||||
|
- Steps to reproduce (exact steps)
|
||||||
|
- Expected vs actual behavior
|
||||||
|
- Frequency (always/sometimes/once)
|
||||||
|
|
||||||
|
Logs are **optional**, but they help a lot for playback/crash issues.
|
||||||
|
|
||||||
|
### How to capture logs (optional)
|
||||||
|
|
||||||
|
If you can, reproduce the issue once, then attach a short log snippet from around the time it happened:
|
||||||
|
|
||||||
|
For Android:
|
||||||
|
```sh
|
||||||
|
adb logcat -d | tail -n 300
|
||||||
|
```
|
||||||
|
For iOS/Metro:
|
||||||
|
```sh
|
||||||
|
# Copy from your Metro bundler output or Xcode console
|
||||||
|
```
|
||||||
|
|
||||||
|
If the issue is a crash, also include any stack trace shown by Android Studio, Xcode, or `adb logcat`.
|
||||||
|
|
||||||
|
## Feature requests (rules)
|
||||||
|
|
||||||
|
Please include:
|
||||||
|
|
||||||
|
- The problem you are solving (use case)
|
||||||
|
- Your proposed solution
|
||||||
|
- Alternatives considered (if any)
|
||||||
|
|
||||||
|
Opening a feature request does **not** mean a pull request will be accepted for it. If the feature affects product scope, UX direction, or adds a significant new surface area, do not start implementation unless a maintainer explicitly approves it first.
|
||||||
|
|
||||||
|
## Before opening a PR
|
||||||
|
|
||||||
|
Please make sure your PR is all of the following:
|
||||||
|
|
||||||
|
- Small in scope
|
||||||
|
- Focused on one problem
|
||||||
|
- Clearly aligned with the current direction of the project
|
||||||
|
- Not cosmetic-only
|
||||||
|
- Not a new major feature unless it was discussed and approved first
|
||||||
|
|
||||||
|
PRs that do not fit this policy will usually be closed without merge so review time can stay focused on bugs, regressions, and small improvements.
|
||||||
|
|
||||||
|
## One issue per problem
|
||||||
|
|
||||||
|
Please open separate issues for separate bugs/features. It makes tracking, fixing, and closing issues much faster.
|
||||||
Loading…
Reference in a new issue