Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
44057e2
feat(ui): replace Roboto with Geist Sans variable font
LavX Mar 27, 2026
e5da18f
feat(ui): add grain texture, ambient glow, and reduced motion support
LavX Mar 27, 2026
e819673
feat(ui): add design tokens, text hierarchy, radius scale, and light …
LavX Mar 27, 2026
54c7179
feat(ui): update header with ghost-style buttons and refined borders
LavX Mar 27, 2026
1c911f6
feat(ui): redesign sidebar with grouped sections and atmospheric styling
LavX Mar 27, 2026
712dd96
feat(ui): redesign episode table rows with borderless hover treatment
LavX Mar 27, 2026
5a51f93
fix(ui): fix audio badges, progress bars, sidebar badges, and toolbar…
LavX Mar 27, 2026
a828f29
merge: cherry-pick v2-release-prep branding, resolve conflicts keepin…
LavX Mar 27, 2026
dd03f5d
feat(ui): global token adoption - body bg, inputs, buttons, cards, ta…
LavX Mar 27, 2026
60d9100
feat(ui): sweep - modals, dimmed text, badge variants, Mantine variab…
LavX Mar 27, 2026
bf6fd6d
feat(ui): global dropdown/menu/combobox atmospheric dark styling
LavX Mar 27, 2026
511367d
fix(ui): tokenize badge radius/transitions, fix brand color consistency
LavX Mar 27, 2026
33160ae
fix(ui): make grain/glow actually visible (z-index + opacity fix), re…
LavX Mar 27, 2026
24a978c
fix(ui): skeptic fixes - sidebar surface, active indicator, icon size…
LavX Mar 27, 2026
3e4d850
fix(ui): improve spacing - sidebar padding, nav gaps, group margins, …
LavX Mar 27, 2026
8cb6455
fix(ui): remove cyan highlight from movie/history badges, use ghost d…
LavX Mar 27, 2026
69d65ed
feat(ui): override all Mantine colors, add fanart bleed effect with g…
LavX Mar 27, 2026
24a82de
fix(ui): fanart bleeds OUT into page, not in - gradient fades outward…
LavX Mar 27, 2026
620e129
fix(ui): fanart fade is now a separate strip below image, not overlap…
LavX Mar 27, 2026
84e2d37
fix(ui): make progress bar labels readable - size xl with proper labe…
LavX Mar 27, 2026
b82b055
fix(ui): floating save button, Jobs Manager ring sizing, Settings pag…
LavX Mar 27, 2026
b8b2e03
fix(ui): remove all cyan - replace with green in badge highlights, Th…
LavX Mar 28, 2026
5de603c
fix(ui): subtitle badge menu opens on click, not hover
LavX Mar 28, 2026
eb84c91
fix(ui): light mode polish, layout fixes, lint cleanup, batch API cam…
LavX Mar 28, 2026
9c6509a
fix(ui): remaining unstaged changes from atmospheric dark redesign
LavX Mar 28, 2026
2e62aa6
style: run prettier on all frontend files
LavX Mar 28, 2026
bdfa491
fix(test): add MSW mock for /api/subtitles/upgradable endpoint
LavX Mar 29, 2026
42181e4
fix: PR review fixes - remove superpowers, fix bugs, improve consistency
LavX Mar 29, 2026
506562b
style: run prettier on 4 files
LavX Mar 29, 2026
1fdcdc9
fix(lint): suppress camelcase warnings for backend action identifiers
LavX Mar 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 0 additions & 20 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
# Auto-detect text files and perform LF normalization
* text=auto

# Fork-specific files - always keep ours during merge conflicts
# These files contain customizations that should not be overwritten by upstream merges
README.md merge=ours
package_info merge=ours
bazarr/app/check_update.py merge=ours
custom_libs/subliminal_patch/providers/opensubtitles_scraper.py merge=ours
Dockerfile merge=ours
docker-compose.yml merge=ours
docker/entrypoint.sh merge=ours
.dockerignore merge=ours
.gitattributes merge=ours
docs/FORK_MAINTENANCE.md merge=ours

# GitHub workflows - keep our fork's versions
.github/workflows/* merge=ours

# Git submodule - keep our reference
.gitmodules merge=ours
opensubtitles-scraper merge=ours

# Binary files
*.png binary
*.jpg binary
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**Software (please complete the following information):**
- Bazarr: [e.g. v 0.6.1]
- Bazarr+: [e.g. v2.0.0]
- Radarr version [e.g. v 0.2.0.0001]
- Sonarr version [e.g. v 2.0.0.0001]
- OS: [e.g. Windows 10]
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ contact_links:
about: The Bazarr wiki should help guide you through installation and setup as well as help resolve common problems and answer frequently asked questions.
- name: 🚀 Feature suggestions
url: https://github.com/LavX/bazarr/issues
about: Share your suggestions or ideas to make Bazarr better!
about: Share your suggestions or ideas to make Bazarr+ better!
2 changes: 1 addition & 1 deletion .github/scripts/build_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sleep 30

if kill -s 0 $PID
then
echo "Bazarr is still running. We'll test if UI is working..."
echo "Bazarr+ is still running. We'll test if UI is working..."
else
exit 1
fi
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/build-docker-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ on:
options:
- master
- development
- feature/audio-display-with-filter
- python_3_14
- ai_translate
- no_telemetry
default: 'master'

build_type:
Expand All @@ -33,7 +29,7 @@ on:
default: 'dev'

version_tag:
description: 'Version tag (e.g., v1.5.3) - used for release builds'
description: 'Version tag (e.g., v2.0.0) - used for release builds'
required: false
default: ''
type: string
Expand Down Expand Up @@ -77,7 +73,7 @@ jobs:
ref: ${{ inputs.branch }}

- name: Setup NodeJS
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: "${{ env.UI_DIRECTORY }}/.nvmrc"
cache: 'npm'
Expand Down Expand Up @@ -161,7 +157,7 @@ jobs:
VERSION=$(git describe --tags --always 2>/dev/null || echo "0.0.0")
fi
VERSION="${VERSION#v}" # Remove 'v' prefix
FORK_VERSION="${VERSION}+$(date -u +%y%m%d)"
FORK_VERSION="${VERSION}"

TAGS="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${FORK_VERSION}"
TAGS="${TAGS},${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:v${VERSION}"
Expand Down
27 changes: 8 additions & 19 deletions .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ name: Build Docker Image
on:
push:
branches:
- main
- master
paths-ignore:
- '*.md'
Expand All @@ -12,14 +11,7 @@ on:
workflow_dispatch:
inputs:
version_tag:
description: 'Version tag for the image (e.g., v1.5.3)'
required: false
default: ''
type: string
workflow_call:
inputs:
version_tag:
description: 'Version tag for the image'
description: 'Version tag for the image (e.g., v2.0.0)'
required: false
default: ''
type: string
Expand All @@ -39,7 +31,7 @@ jobs:
uses: actions/checkout@v5

- name: Setup NodeJS
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: "${{ env.UI_DIRECTORY }}/.nvmrc"
cache: 'npm'
Expand Down Expand Up @@ -116,19 +108,17 @@ jobs:
# Remove 'v' prefix for semver
SEMVER="${VERSION#v}"

# Create Bazarr+ version
# Bazarr+ version is the semver tag directly
SHORT_SHA=$(git rev-parse --short HEAD)
BUILD_DATE=$(date -u +%y%m%d)
FORK_VERSION="${SEMVER}+${BUILD_DATE}"

FORK_VERSION="${SEMVER}"

echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "semver=$SEMVER" >> $GITHUB_OUTPUT
echo "fork_version=$FORK_VERSION" >> $GITHUB_OUTPUT
echo "short_sha=$SHORT_SHA" >> $GITHUB_OUTPUT

echo "## Version Info" >> $GITHUB_STEP_SUMMARY
echo "- **Base Version:** $VERSION" >> $GITHUB_STEP_SUMMARY
echo "- **Fork Version:** $FORK_VERSION" >> $GITHUB_STEP_SUMMARY
echo "- **Version:** $FORK_VERSION" >> $GITHUB_STEP_SUMMARY
echo "- **Short SHA:** $SHORT_SHA" >> $GITHUB_STEP_SUMMARY

- name: Extract Docker Metadata
Expand All @@ -139,7 +129,7 @@ jobs:
tags: |
# Latest tag on main/master branch
type=raw,value=latest,enable={{is_default_branch}}
# Version tag (e.g., v1.5.7+250324)
# Version tag (e.g., v2.0.0)
type=raw,value=${{ steps.version.outputs.fork_version }}
# Short SHA tag
type=raw,value=sha-${{ steps.version.outputs.short_sha }}
Expand Down Expand Up @@ -221,6 +211,5 @@ jobs:

This release is based on upstream Bazarr with the following custom modifications:
- OpenSubtitles.org web scraper provider (no VIP API needed)
- Manual sync with upstream on major releases

See the auto-generated release notes below for detailed changes.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: CI

on:
push:
branches: [main]
branches: [master, development]
paths:
- frontend/**
- bazarr/**
Expand All @@ -14,7 +14,7 @@ on:
- dev-requirements.txt
- .github/workflows/ci.yml
pull_request:
branches: [main]
branches: [master, development]

env:
ROOT_DIRECTORY: .
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14' ]
python-version: [ '3.12', '3.13', '3.14' ]
name: Python ${{ matrix.python-version }} backend

steps:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,6 @@ VERSION
!*.dll

.claude/
.superpowers/
docs/superpowers/
.coverage
19 changes: 6 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,19 @@

### Branch model

- `master` contains stable releases, tagged with `v{upstream}+{YYMMDD}` versions
- `master` contains stable releases, tagged with semver versions (e.g., `v2.0.0`, `v2.1.0`)
- `development` is the integration branch where upstream merges and new features land
- Feature branches are created from `development` and merged back via PR

### Rules

- `master` is not merged back to `development`
- All feature branches are branched from `development`
- Upstream sync merges go into `development` first, never directly to `master`
- Cherry-picked upstream fixes go into `development` first, never directly to `master`

## Upstream sync
## Upstream relationship

Bazarr+ syncs with [upstream Bazarr](https://github.com/morpheus65535/bazarr) manually after major releases. Upstream merges are always done with `--no-commit --no-ff` and reviewed before committing, to avoid reintroducing removed telemetry, overwriting branding, or conflicting with fork-specific features.

Files that are always kept as the Bazarr+ version during upstream merges:
- `package_info`
- `Dockerfile`, `docker-compose.yml`
- `README.md`
- Logo and branding assets
- Any telemetry/analytics code (removed in Bazarr+)
Bazarr+ is a hard fork of [upstream Bazarr](https://github.com/morpheus65535/bazarr). There is no automatic synchronization. Bug fixes from upstream may be cherry-picked selectively when relevant, but upstream releases are not merged wholesale.

## Contribution workflow

Expand Down Expand Up @@ -65,7 +58,7 @@ Fix all errors before submitting. Warnings should be addressed when practical.
PRs should include tests when the change is testable. We use:

- **Backend:** pytest for Python tests
- **Frontend:** Jest for React component and page tests
- **Frontend:** Vitest for React component and page tests

```bash
# Run backend tests
Expand All @@ -76,7 +69,7 @@ cd frontend
npm test

# Run a specific test file
npm test -- --testPathPattern=Translator
npm test -- Translator
```

When to include tests:
Expand Down
Loading
Loading