Contributing
February 18, 2024 · View on GitHub
Patches are welcome in whatever form. However, you must agree that your code will be provided by MIT License.
To Documentation
You can contribute to the homepage by sending pull-request to the docs directory if there is an error, a better way to describe the content, or writing a translation. Jekyll is used as the framework, and can be written in markdown format. We also use jekyll-docs-theme as a theme, which allows extended expressions.
Setup local test environment
To test a GitHub Pages site locally, refers this documents.
The following is a brief description using chocolatey.
-
Install Ruby using chocolatey.
$ choco install ruby -
Install Jekyll and Bundler.
$ ridk install $ gem install jekyll bundlerSee Jekyll documentation for details.
-
Build site locally in docs directory.
$ bundle install $ bundle exec jekyll serve -
Access to http://localhost:4000.
Add translation of document.
The win-vind documentation has the potential to easily add manual translation and manage continuously. A Japanese translation is available as a sample in here. Please use it as a reference when translating. The following are the steps for translation.
-
Create a translation directory (e.g.
fr).$ ./tools/create_trans.bat fr -
Add the following to the headers for each file.
key Notes translation Specify the name of the directory you just created. This will be used for language selection. translators Write your GitHub id. It will appear at the bottom of the page. If more than one person translates the document due to revisions, give them in list form. version Write the version that corresponds to the document. If a newer version than this is released, it will indicate that the content may not be up to date. Like this.
--- translation: fr translators: - foo - bar version: 4.2.1 --- -
Add a label to _config.yml to be displayed in the language selection.
- translations: - id: fr label: Français -
All that is left to do is to translate it, and use DeepL to check the content during the pull-request.
To Development
You can contribute to development by sending pull requests to the master branch to fix or add features, add test cases, modify typos and expressions, improve security. When adding new code, please consider adding test cases in the test directory to satisfy branch coverage. Codacy and Travis and Actions run by pushing, and Coverity checks programmatic resources at releasing as Continuous Integration. If you want to discuss development, please create a thread in Discussion with #Development category.
Quick Start for Build
If you have already installed MinGW-w64 or Visual Studio, all you need is the next steps.
Visual Studio
$ cmake -B build -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 17 2022" -A x64 .
$ cmake --build build --config Debug
$ ./build/Debug/win-vind.exe
MinGW-w64 >= 8.2.0
$ cmake -B build -DCMAKE_BUILD_TYPE=Debug -G "MinGW Makefiles" .
$ cmake --build build --config Debug
$ ./build/win-vind.exe
Run Test
See here for unit tests and runtime test.
Make Installer
$ ./tools/create_assets.bat 1.0.0 -msvc 64
Dependencies
Softwares
I recommend to install follow softwares.
| Name | Recommended Version | Download Link |
|---|---|---|
| CMake | 3.14.4 | Download - CMake |
| NSIS | 3.06.1 | Download - NSIS |
| Windows10 SDK | 10.0.19041.0 | Microsoft Windows10 SDK - Windows app development |
Libraries
These libraries are bundled in the libs directory.
| Name | What is | Purpose | License |
|---|---|---|---|
| fluent-tray | GUI framework | Create GUI for the system tray or popups. | MIT License |
| argparse | Argument Parser | Parse arguments in the command line. | MIT License |
| doctest | Unit test framework | For basic unit test | MIT License |
| fff | Macro-based fake function framework | To mock Windows API | MIT License |
| pydirectinput | Mouse and keyboard automation for Windows | To emulate inputs for runtime tests | MIT License |