Files
Snap.Hutao.Docs/docs/en/development/contribute.md
2023-10-19 05:19:52 -07:00

2.8 KiB

category, tag, icon, order
category tag icon order
open source
development
development
GitHub
iconfont icon-code 2

Contribute Your Code

Snap Hutao is using C# and .NET Framework to develop both client and server. If you are willing to contribute your code to the project, please read the following guidelines.

You can find all unsolved opened issues on GitHub

Setup Snap.Hutao Project

  1. Download and install Visual Studio 2022 Community
  2. Open Visual Studio Installer to complete Visual Studio installation
    • You need to install .NET desktop development, Desktop development with C++ and Universal Windows Platform development components
  3. Install Single-project MSIX Packaging Tools for VS 2022 provided by Microsoft in Visual Studio marketplace
  4. Use git to clone the project https://github.com/DGP-Studio/Snap.Hutao.git to your local device
  5. Switch git branch to develop
  6. Open project solution with your Visual Studio and then you are ready to go

Enable Debug

  1. Download and install Sysinternals Suite from Microsoft Store or Microsoft website
  2. Locate and run DebugView program in the installed app list or unzipped folder
  3. Run Snap Hutao client
  4. Check DebugView output

Start Pull Request

  • All code-related changes from authors' own branches are only allowed be merged to develop branch
  • Please use keywords to link your PR or commits with issues, so issues can be automatically closed once commits are merged into main branch.

Test Binary Package

Once the code in updated in develop and main branches, an Azure Pipeline CI script will build the latest code to Snap Hutao Alpha package. Once the package is built, it will be released on GitHub Release page as a pre-released package.

You need to install Snap.Hutao.CI.cer certificate to your local machine, and then install the msix package in the release.

*If the latest release does not contain attached file, that means package is still in uploading process.