Files
streamyfin/.github/CONTRIBUTING.md
Chris 1e9fba6f85 docs: updating CONTRIBUTING.md
Added AI assistance disclosure clause
2025-10-24 09:55:07 +02:00

6.5 KiB
Raw Blame History

Contributing to Streamyfin

Thank you for your interest in contributing to the Streamyfin project. This document outlines the guidelines for effective collaboration across the Streamyfin codebase and aims to ensure a smooth, productive experience for all contributors.


Table of Contents


AI Assistance Disclosure

Important

If any AI tool was used while contributing to Seerr, it must be disclosed in the pull request.

Note in your PR whether AI assistance was used and to what extent (for example, docs only or code generation).
If AI-generated text was used in PR responses, disclose that as well.
Simple tab-completion or short keyword suggestions do not require disclosure.

Examples

This PR was written primarily by Claude Code.
I used Cursor to understand parts of the codebase, but the implementation is fully manual.

Failing to disclose AI usage wastes maintainers time and makes it harder to judge review effort.
We welcome AI-assisted work, but contributors must understand and take full responsibility for the code they submit.

Be respectful to maintainers and always disclose AI involvement.

Reporting Issues

Streamyfin uses GitHub issues to track bugs and improvements. Before opening a new issue:

  • Search existing issues for duplicates.
  • Provide clear, reproducible steps to demonstrate bugs.
  • Include device info, OS version, Streamyfin version, and any relevant logs.
  • Apply the bug label to the issue for easier triage; no title prefix needed.

If you're unsure about how to report an issue or need help, reach out to the community via our chat links.

Reporting Security Vulnerabilities

Please do not file public GitHub issues for security vulnerabilities.

Report security concerns via GitHub Security Advisories (Repository → Security → Report a vulnerability). Provide steps to reproduce, affected versions, and mitigation ideas if available. Well acknowledge receipt and coordinate a fix before public disclosure.

If Security Advisories are unavailable for you, contact the maintainers via the email listed in SECURITY.md.---

Requesting Features & Enhancements

Please submit feature and enhancement requests as GitHub issues labeled enhancement.

When creating a new feature request:

  • Check if the idea or similar request exists.
  • Use reactions like 👍 to support existing requests.
  • Clearly describe the use case and potential benefits.
  • Include screenshots when relevant.

Developing Streamyfin

Codebase Overview

Streamyfin is built primarily using Expo and React Native to support both iOS and Android platforms within a single repository. The app communicates directly with Jellyfin backend servers for media streaming.

Setting Up Your Development Environment

  1. Fork the Streamyfin repository on GitHub. If prompted with “Copy the main branch only,” uncheck it so all branches are copied.
  2. Clone your fork:

git clone git@github.com:yourusername/streamyfin.git
# or
git clone https://github.com/yourusername/streamyfin.git
cd streamyfin

  1. Initialize submodules and install dependencies:
bun run submodule-reload
bun install
  1. Start the development server locally (with Expo):
bun ios / bun android

Optionally, to run directly on a device or emulator:

# For iOS (requires macOS and Xcode):
bun run ios
# For Android (requires Android Studio or Android Debug Bridge (ADB) tool, plus an emulator or physical device):
bun run android 
  1. Use the Expo app on your mobile device or emulator to run and debug Streamyfin.

Making Changes

  1. Stay up to date by syncing with upstream:
# Add the upstream remote only once (skip if already added)
git remote add upstream https://github.com/streamyfin/streamyfin.git
# Fetch latest changes from upstream
git fetch upstream
# Rebase your current branch onto the upstream default branch (replace 'develop' if you are working from another upstream branch)
git rebase upstream/develop
  1. Create a descriptive feature or bugfix branch:

git checkout -b feat/feature-name

  1. Commit changes with clear, concise messages using imperative mood.
  2. Push changes to your fork:

git push --set-upstream origin feat/feature-name


Pull Request Guidelines

When opening a PR:

  • Title should clearly summarize the change.
  • Reference any related issue(s) using keywords like closes #123.
  • Follow our Conventional Commits style, e.g., feat: add new playback controls.
  • Provide a detailed description in the PR body, explaining what, why, and any impacts.
  • Include screenshots or recordings if UI changes are involved.
  • Ensure CI checks are green (lint, type-check, build).
  • Confirm that the branch is up to date with main before submission.
  • Mention if AI-generated code or content was used (see AI Assistance Disclosure).
  • Do not include secrets, tokens, or production credentials. Redact sensitive data in logs and screenshots.
  • Keep PRs focused; avoid bundling unrelated changes together.

PRs require review and approval by maintainers before merging.---

Release Process

  • Streamyfin follows semantic versioning (MAJOR.MINOR.PATCH).
  • Releases are made periodically after testing and QA cycles.
  • Tag each release and publish a GitHub Release with a changelog.
  • Consider automating versioning and changelogs (e.g., Changesets or semantic-release).
  • Release announcements are posted on our repository and community channels.
  • Contributions accepted through PRs will be included in upcoming releases according to readiness.

Getting Help and Community

  • Join our community chat channels on Discord for questions and support.
  • Use GitHub discussions or open issues to get assistance or report problems.

Thank you for contributing to make Streamyfin better for everyone!