Patches are welcome in whatever form. However, you must agree that your code will be provided by MIT License.
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.
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 bundler
See Jekyll documentation for details.
-
Build site locally in docs directory.
$ bundle install $ bundle exec jekyll serve
-
Access to http://localhost:4000.
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.
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.
If you have already installed MinGW-w64 or Visual Studio, all you need is the next steps.
$ cmake -B build -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 17 2022" -A x64 .
$ cmake --build build --config Debug
$ ./build/Debug/win-vind.exe
$ cmake -B build -DCMAKE_BUILD_TYPE=Debug -G "MinGW Makefiles" .
$ cmake --build build --config Debug
$ ./build/win-vind.exe
See here for unit tests and runtime test.
$ ./tools/create_assets.bat 1.0.0 -msvc 64
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 |
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 |