Dev#13460
Closed
OgBops wants to merge 18 commits into
Closed
Conversation
- Rewrite README.rst to identify this as a fork of upstream OBS Studio, with attribution preserved and pointers to the upstream project for general OBS docs. - Add ROADMAP.md describing the three anchor features (multi-destination streaming, native multi-canvas UI, modern UI + AI plugin suite) and versioning targets. - Allow ROADMAP.md in the project's allowlist-style .gitignore.
Upstream's push workflow only triggers builds on master and release/**. Since this fork uses master to track upstream and dev as the integration branch, we extend the push trigger and the format check to run on dev and feature/** branches as well. This means every push to dev or a feature branch will exercise the full macOS, Ubuntu, and Windows build matrix on GitHub Actions, which is our substitute for a local cross-platform dev environment.
The obs-studio-plus fork has no upstream tags pushed to origin, so CI runs hit `git describe` returning a bare SHA, which versionconfig.cmake then fed into project()/regexes that expect M.m.p — failing the macOS build with "VERSION format invalid" before configure finished. Detect the no-tag case and fall back to _obs_default_version (0.0.1).
`.package.zsh` and `Package-Windows.ps1` both call `git describe --tags --long` which exits non-zero when no tag is reachable, breaking the macOS DMG name and Windows zip name on the obs-studio-plus fork (zero tags on origin). Detect the empty result and synthesize a `<version>-<distance>-g<sha>` string from the commit count + short HEAD hash so packaging proceeds.
Two follow-ups to the previous package script change: 1. The fallback in `.package.zsh` was bypassed: with `setopt ERR_RETURN`, a failing `git describe` inside `$(...)` triggered TRAPZERR, leaking the script callstack into `git_description`. Adding `|| true` keeps the substitution successful so the empty-string check actually runs. 2. `frontend/cmake/os-linux.cmake` populated `APPDATA_RELEASE_DATE` with `git log --tags -1`, which returns empty when no tag exists. Empty date fails flatpak-builder-lint with `release-time-missing date`. Fall back to the latest commit's date.
Previous README pitched features that don't exist yet ("native vertical +
horizontal canvases", "first-class multi-destination streaming") as if
they shipped. Replace with:
- Honest "current status" section listing each branch and what's on it
- A clear "today a build from dev looks like upstream" disclaimer
- Pointers to the Actions tab for prebuilt artifacts, with the macOS
quarantine-strip command since builds are ad-hoc signed
- A build-status badge for dev
paths-ignore already covered .md; extend to .rst (the README format), plus AUTHORS and COPYING which are touched periodically when syncing upstream. Saves a 30+ min cross-platform run for documentation edits.
The fork's purpose changes from "OBS with extra Qt features" to "headless plus-host engine for the Plus desktop app." Plus is a separate, future Rust + Tauri product that talks to libobs over IPC, the same way Streamlabs Desktop uses obs-studio-node. Running libobs out-of-process keeps the GPL boundary at the IPC pipe and allows the Plus app to be licensed independently. Concretely: - PLUS_PLAN.md: full plan, 9 phases, ~80 weeks. Phase 0 starts next. - CONTRIBUTING.md: prepended fork-specific rules. OBS core (libobs/, plugins/, frontend C++/Qt, deps/) is read-only. Smell test, escape hatch, branching policy. - README.rst: rewritten to describe the engine role. The previous "OBS with multi-canvas + multi-dest + AI plugins" pitch is retired. - ROADMAP.md: stub pointing at PLUS_PLAN.md. - .github/workflows/no-core-changes.yaml: CI guard that diffs against upstream/master and fails any push that modifies off-limits paths. - .gitignore: allowlist PLUS_PLAN.md and /engine for upcoming phase 0. The previous Qt feature branches (multi-output-foundation, multi-destination-dock, ai-captions-plugin) are deleted from origin in the same session. Their work isn't wasted — concepts move into the IPC protocol — but they don't move forward as Qt code.
The OBS Project requested we stop using "OBS" branding in this fork. Renaming everything that was forward-facing as "OBS Studio Plus" or "Plus" to "Mosaic". The repository on GitHub has been renamed to OgBops/mosaic in the same change; old OBS-branded CI artifacts have been deleted from the Actions tab. Concretely: - README.rst: rewritten under the Mosaic name with an explicit trademark notice section. No public binary releases until the Mosaic app exists with its own branding. - CONTRIBUTING.md (fork section): renamed; added a "Branding separation" subsection codifying that we don't redistribute upstream-branded binaries. - PLUS_PLAN.md → MOSAIC_PLAN.md: full plan updated; project history notes the rename. plus-host → mosaic-host throughout. New risk entry for trademark separation. - ROADMAP.md: stub now points at MOSAIC_PLAN.md. - .github/workflows/no-core-changes.yaml: error message references Mosaic. - .github/workflows/push.yaml: top comment updated. - .gitignore: PLUS_PLAN.md allowlist replaced with MOSAIC_PLAN.md. Local clone path stays as ~/Desktop/obs-studio because the directory is the upstream source we work in, not the product. The product name doesn't have to match the local directory name.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Motivation and Context
How Has This Been Tested?
Types of changes
Checklist: