- Download and install Visual Studio Community 2017. During install, make sure ".NET desktop development" is checked.
- Download and install Git. During install, change "Use Git from Git Bash only" to one of the other two options, depending on your preference.
- Clone the repository by opening command prompt/powershell in the folder of your choice and typing
git clone https://github.com/HearthSim/Hearthstone-Deck-Tracker
. - Download the recommended latest nuget executable and copy it into your PATH, or where you cloned the git repository (where bootstrap.ps1 is).
- run bootstrap.ps1, preferably from a powershell window to see any errors.
- Open the solution file with VS17 and do a build to make sure everything is working properly.
- Have a look at the FAQ.
- Check if a similar issue already exists (use the search function).
- In case of a bug/crash/problem: Add as much detail as possible, including crash reports/logs (see here).
HearthSim requires a signed CLA from any contributor before his/her PR can be merged.
A CLA is a legal document in which you state you are entitled to contribute the code/documentation/translation to the project you’re contributing to and are willing to have it used in distributions and derivative works. This means that should there be any kind of legal issue in the future as to the origins and ownership of any particular piece of code, then that project has the necessary forms on file from the contributor(s) saying they were permitted to make this contribution.
The CLA also ensures that once you have provided a contribution, you cannot try to withdraw permission for its use at a later date. People and companies can therefore use that software, confident that they will not be asked to stop using pieces of the code at a later date.
HearthSim uses a Contributor License Agreement to ensure we can legally use, redistribute and relicense external contributions to our various projects.
Contact any admin on our Developer Discord or send us an email at contact@hearthsim.net. Please include your Github username.
For trivial changes or fixes (i.e. a couple lines of code) on new or existing issues and projects feel free to just open a PR.
We would like to avoid wasting your time, so for non-trivial changes or fixes please do one of the following before starting to work on it:
- For work on an existing issue please comment on that issue and wait for approval.
- If no issue exists, please open a new issue with the proposal and wait for approval.
- Propose the project in #hdt on the Developer Discord and wait for approval.
- Always use tabs.
- Use LF line endings.
- Always place braces on new lines.
- Use C# 6/C# 7 syntax whenever possible.
- Follow the standard MS C# naming conventions (short version). Also see: How to name things in programming
- Know when to make exceptions.
Keep the commit log as healthy as the code. It is one of the first places new contributors will look at the project.
- No more than one change per commit. There should be no changes in a commit which are unrelated to its message.
- Follow these conventions when writing the commit message.
- Keep the diffs as clean as possible. Avoid unnecessary line changes.
When filing a Pull Request, make sure it is rebased on top of most recent master. If you need to modify it or amend it in some way, you should always appropriately fixup the issues in git and force-push your changes to your fork.
Also see: Github Help: Using Pull Requests
Want to help translate the app? Take a look at the HDT-Localization repository.
You can always ask for help on Gitter, #hdt in the Developer Discord, or the HearthSim IRC channel, #Hearthsim
on Freenode.