Skip to content

Latest commit

 

History

History
122 lines (91 loc) · 5.64 KB

CONTRIBUTING.md

File metadata and controls

122 lines (91 loc) · 5.64 KB

Contributing

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.

  1. Install Ruby using chocolatey.

    $ choco install ruby
  2. Install Jekyll and Bundler.

    $ ridk install
    $ gem install jekyll bundler

    See Jekyll documentation for details.

  3. Build site locally in docs directory.

    $ bundle install
    $ bundle exec jekyll serve
  4. 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.

  1. Create a translation directory (e.g. fr).

    $ ./tools/create_trans.bat fr
  2. 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
    ---
    
  3. Add a label to _config.yml to be displayed in the language selection.

    - translations:
      - id: fr
        label: Français
  4. 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