Skip to content

Commit

Permalink
chore: Allow contributions to the wiki (#194)
Browse files Browse the repository at this point in the history
  • Loading branch information
lulzsun committed Apr 22, 2024
1 parent c9c634b commit 3cc14ff
Show file tree
Hide file tree
Showing 5 changed files with 181 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/wiki/Development:-Getting-Started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Platforms

- [Windows Guide](./Development:-Windows.md)
- [Linux Guide](./Development:-Linux.md)
26 changes: 26 additions & 0 deletions .github/wiki/Development:-Linux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Work-in-progress

# Install

This guide will be written for Arch based Linux distros. Feel free to add sections for other specific Linux distros.

You need the following packages for both runtime and development:

```bash
$ sudo pacman -Syu dotnet-runtime dotnet-sdk gtk3 webkit2gtk gst-libav libayatana-appindicator
```

You will also need Node 18+ installed.

# IDE

While the choice of IDE is a personal preference, It is recommended to use VS Code, as plugins and project files are setup to be used with it. This development guide will also be tailored for VS Code.

# Debug

Start debugging by pressing F5 on any `.cs` file. This will launch RePlays but not launch the front end dev server (vite). Set working directory to `ClientApp` and run the following to initialize the front end project:

```bash
$ npm ci
$ npm run start
```
114 changes: 114 additions & 0 deletions .github/wiki/Development:-Windows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
Want to help contribute to RePlays? Great! This page will help you get started on how to setup your dev environment and debug the RePlays app.

Prerequisites:

- Visual Studio 17 2022
- [.NET SDK 8.0.100](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-windows-x64-installer)
- Node 18+
- Knowledge in C# and Typescript (React.js)

Optional:

- Visual Studio Code
- OBS Studio 30.0.0
- Cmake, git, & 7zip (if you are planning to build libobs yourself)
- Make sure 7z is in your system environment PATH

Visual Studio will be the main IDE for this guide.

# 1. Clone the repository

Using git cli or using your preferred method of cloning.

- `git clone --recursive https://github.com/lulzsun/RePlays.git`

# 2. Open the Visual Studio project

- Open `RePlays.sln` from the root folder

# 3. (Optional) Run npm ci

- In the project's ClientApp folder, run `npm ci` (from cmd/powershell)
- This will download the necessary node modules for the React.js portion of the app

This step can be skipped and is optional because when you start debugging, it will automatically run this command for you if you haven't already

# 4. Copy libobs to Debug folder

libobs is necessary for debugging and is not included with the project, the required files must be placed here:

`~\bin\Debug\net8.0-windows`

At the time of writing this guide, you have a few options for where to get libobs:

1. Build it yourself (**RECOMMENDED**)
2. Copy libobs from other sources

### 1. Build libobs yourself

This is the best way if you want to match similar results to production.

There is an included build script in the root folder to make life a lot easier.

This requires you to have Cmake, git, 7zip, and Visual Studio 17 2022 installed on your system.

Make sure Cmake, git and 7zip are in your system environmental variables (so they can be accessed through cmd)

Provided that you have all this, the build script is a one-click solution.

1. Run `build-libobs.cmd` in cmd/powershell from root folder
2. Build should be successful if the file `~\obs-studio-build\obs-studio-release\bin\64bit\obs.dll` exists

The script takes care of everything (cloning, building, downloading and copying certain third party obs plugins if necessary) for you and is what production builds run, so this will be matching results from production.

### 2. Copy libobs from RePlays/OBS Studio/Streamlabs

This step will be using Streamlabs as an example, you can download their libobs release [here](https://obsstudios3.streamlabs.com/libobs-windows64-release-27.5.32.7z).

NOTE: Copying other versions of libobs that do not match the current release may cause different debugging results. It is recommended that you build libobs yourself or at the very least copy from RePlays production release.

The required files and folders are as follows:

```
- packed_build
- bin
- 64bit
- obs.dll & ~dependencies/.dlls, etc. files~
- cmake
- data
- include
- obs-plugins
```

and must be copied to the debug folder like so:

```
- bin\Debug\net8.0-windows
- data
- obs-plugins
- obs.dll & ~dependencies/.dlls, etc. files~
```

# 5. Start debugging!

You are now ready to start debugging! Upon initial debugging, the msbuild pre-build will take care of any missing files and provide warnings/errors if those files cannot be found (libobs files, React app files).

# 6. Building a release

To manually build a release on your machine, run the following command at the root of the project

`dotnet publish /p:Configuration=Release /p:Version=X.X.X /p:PublishProfile=FolderProfile`

You must specific a version in the numeral format of X.X.X (e.g. 1.69.420).

The build will make use of Squirrel and create deltas or full packages, including a Setup file. You can find these files in `bin\Deployment\Releases`.

You can learn more about the Squirrel deployment process [here](https://github.com/Squirrel/Squirrel.Windows/blob/develop/docs/getting-started/0-overview.md#overview).

# 7. (Optional) Using Visual Studio Code

Visual Studio Code may be preferred when working with the React.js portion of the app. The React.js is the interface or front-end of the application.

Open `~\ClientApp` in Visual Studio Code and begin working on the interface like any normal React.js workflow!

It should be possible to use Visual Studio Code to modify C# files and debugging, but at the time of writing this guide, I have no experience in doing such.
19 changes: 19 additions & 0 deletions .github/wiki/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Welcome to the RePlays wiki!

# FAQ

## What is the difference between RePlays vs RePlaysTV?

**RePlaysTV** is the late project that patches over the existing Plays.tv software to give it a working offline user interface with plenty of upload platforms and additional features. This has been archived and is no longer in development.

**RePlays** (_without the TV_) is a free and open source program that automatically manages recording of detected running games, with a clip editor that allows for quick video sharing.

RePlays is software made from scratch, inspired by Plays.tv. It was created as a result of the deeper issues that underlie within the Plays.tv software that can't feasibly be fixed.

## How can I contribute?

The best way is by fixing issues and making improvements to Replays. You can find out [how to set up the dev environment here](./Development:-Windows.md) to get started.

## How can I edit this wiki?

Submit a pull request with changes done to the wiki markdown files [here](https://github.com/lulzsun/RePlays/tree/main/.github/wiki).
18 changes: 18 additions & 0 deletions .github/workflows/wiki.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Publish wiki
on:
push:
branches: [main]
paths:
- .github/wiki/**
- .github/workflows/wiki.yml
concurrency:
group: publish-wiki
cancel-in-progress: true
permissions:
contents: write
jobs:
publish-wiki:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: Andrew-Chen-Wang/github-wiki-action@v4

0 comments on commit 3cc14ff

Please sign in to comment.