Development Release Instructions - HoneyHazard/PixelMatchSwitcher GitHub Wiki

Pixel Match Switcher merge and tag

Merge a feature branch into master, tag the PixelMatchSwitcher for release, delete the feature branch

```
cd PixelMatchSwitcher
git checkout master
git merge feature_branch

git tag 0.xx.x-alpha
git push
git push --tags

git branch -D feature_branch
git push origin :feature_branch
```

Merge OBS updates into forks

Pull a stable version of OBS into obs-studio-atomic-effects fork:

```
cd obs-studio-atomic-effects
git checkout master
git pull obs master --tags
git push --tags
git push

git checkout results_latest
git merge master
git push --tags
git push

git checkout results_stable
git merge 2x.x.x
git push --tags
git push

```

Merge the latest into obs-studio-pixel-match-switcher fork for building:

```
cd obs-studio-pixel-match-switcher
git checkout master
git pull
git pull atomic results_stable
```

Update OBS build dependencies

Update local build dependencies when needed

Update CEF when needed

PixelMatchSwitcher and other in-tree modules

Make the latest of PixelMatchSwitcher included in the tree:

```
cd obs-studio-pixel-match-switcher
git add UI/frontend-plugins/PixelMatchSwitcher
```

Update OBS submodules (official in-tree submodules)

```
cd obs-studio-pixel-match-switcher
git submodule update --recursive
```

Update SceneSwitcher (in-tree uncomitted)

Check releases at https://github.com/WarmUpTill/SceneSwitcher/releases

cd UI/frontend-plugins/SceneSwitcher
git fetch
git checkout 1.xx.x
git submodule update --init --recursive

Update obs-streamFX (in-tree uncomitted)

Check releases at https://github.com/Xaymar/obs-StreamFX/releases

cd UI/frontend-plugins/obs-streamFX
git fetch
git checkout 0.xx.0
git submodule update --init --recursive

Update obs-move-transitions (in-tree uncomitted)

Check releases at https://github.com/exeldro/obs-move-transition/releases

```
cd plugins/obs-move-transition
git fetch
git checkout x.x.x
cd ..
git add obs-move-transition
```

Update the windows installer version to 2x.x and PM version to 0.xx

```
cd obs-studio-pixel-match-switcher
nano UI/installer/mp-installer.nsi
```

Change `APPVERSION` and `SHORTVERSION` to 2x.x

Change `PMVERSION` to new Pixel Match Switcher release version.

`git add UI/installer/mp-installer.nsi`

Commit and tag obs-studio-pixel-match-switcher fork and push

```
cd obs-studio-pixel-match-switcher
git commit -m "release 0.xx.x-alpha"
git tag 0.xx.x-alpha
git push --tags
git push
```

Gather the assets

Monitor build actions of the obs-studio-pixel-match-switcher:

https://github.com/PixelMatchSwitcher/obs-studio-pixel-match-switcher/actions?query=workflow%3A%22CI+Multiplatform+Build%22

Click on the latest build. Wait for successful builds and download artifacts.

Download, rename Win64 zip

obs-studio-with-pixel-match-switcher-0.xx.x-win64.zip

Windows build of obs-studio-pixel-match-switcher:

  1. Set TWITCH_CLIENT, TWITCH_HASH, RESTREAM_CLIENTID, RESTREAM_HASH, VIRTUALCAM_GUID, CEF_ROOT_DIR, CEFWRAPPER_LIBRARY_DEBUG, YOUTUBE_CLIENTID, YOUTUBE_SECRET, YOUTUBE_CLIENTID_HASH, YOUTUBE_SECRET_HASH

  2. Build Release!

  3. Ensure Websockets, Spectralizer, Shaderfilter are in C:\Users\admin\Documents\Releases\extra; NOTE versions in the release!

 - [obs-move-transition](https://github.com/exeldro/obs-move-transition/releases)
 - [obs-backgroundremoval](https://github.com/royshil/obs-backgroundremoval/releases)
 - [obs-shadefilter](https://github.com/Oncorporation/obs-shaderfilter/releases)
  1. Run prepare_installers.bat under UI/installer

  2. Obtain and rename obs-studio-with-pixel-match-switcher-0.xx.x-bundle-x64.exe and obs-studio-with-pixel-match-switcher-0.xx.x-bundle-live-x64.exe in C:\Users\admin\Documents\Releases

Download, unpack, rename OSX build

obs-studio-with-pixel-match-switcher-0.xx.x-untested-OSX.dmg

Download, unpack, rename Ubuntu 18 build

obs-studio-with-pixel-match-switcher-ubuntu18-0.xx.x-amd64.deb

Download, unpack, rename flatpak

obs-studio-with-pixel-match-switcher-0.xx.0.flatpak

Build on Debian 10 (optional)

```
cd obs-studio-pixel-match-switcher
git pull
git submodule update --recursive
cd ..
mkdir build-obs-studio-pixel-match-switcher
cd build-obs-studio-pixel-match-switcher
cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ../obs-studio-pixel-match-switcher
sudo checkinstall --install=no --backup=no --fstrans=no --deldoc=yes --pkgname=obs-studio --pkgversion="0.xx.x-pixelmatchswitcher" --pkggroup="Applications/Multimedia"
sudo chown 1000:1000 obs-studio_0.xx.x-pixelmatchswitcher-1_amd64.deb
```

Rename to `obs-studio-with-pixel-match-switcher-debian10-0.xx.x-amd64.deb`

Draft and publish the release with attached binaries

Go to https://github.com/HoneyHazard/PixelMatchSwitcher/releases

Press "Draft a new release" (or "Edit" to attach new files)

- tag: 0.xx.x-alpha
- name: 0.xx.x-alpha
- description: include OBS version tag or a 7-digit hash of the latest OBS commit used in compilation
- attach binaries:
  - `obs-studio-with-pixel-match-switcher-0.xx.x-win64.zip`
  - `obs-studio-with-pixel-match-switcher-0.xx.x-bundle-x64.exe`
  - `obs-studio-with-pixel-match-switcher-0.xx.x-bundle-live-x64.exe`
  - `obs-studio-with-pixel-match-switcher-0.xx.x-untested-OSX.dmg`
  - `obs-studio-with-pixel-match-switcher-ubuntu18-0.xx.x-amd64.deb`
  - `obs-studio-with-pixel-match-switcher-debian10-0.xx.x-amd64.deb`
  - `obs-studio-with-pixel-match-switcher-0.xx.x.flatpak`

Update plugin info with the on OBS forums

Update the user manual etc

https://github.com/HoneyHazard/PixelMatchSwitcher/wiki/User-Manual