-
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Allow contributions to the wiki (#194)
- Loading branch information
Showing
5 changed files
with
181 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
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) |
This file contains 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
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 | ||
``` |
This file contains 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
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. |
This file contains 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
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). |
This file contains 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
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 |