<commit_before># Keyman Desktop 10.0 and Keyman Developer 10.0

## Build Prerequisites

1. Install [VS2017 Community Edition](#visual-studio-2017-community-edition-setup-requirements).
2. Install [Delphi 10.2](#delphi-setup-requirements).
3. Install [git](https://git-scm.com/download/win).
4. Follow steps in /web/README.md to install prerequisites for building KeymanWeb (included in Keyman Developer)
5. Add the Keyman root folder to antivirus exclusions for performance and file lock reasons (optional - but highly recommended).
6. Start Delphi 10.2 IDE once after installation to create default environment files and ensure registration is complete.
7. Set environment variables per [notes below](#environment-variables): `KEYMAN_ROOT`, `DELPHI_STARTER`, `USERDEFINES`, 
   `GIT_BASH_FOR_KEYMAN`, (`USE_PLUSMEMO`, `KEYMAN_ENCUMBERED_ROOT`).
8. Add the **windows/lib** folder in the Keyman repository to your `PATH` environment variable (required for packages in Delphi).

### Release build prerequisites

For local development you do not need to perform a release build so these are optional.

1. Install [7-Zip](http://www.7-zip.org/) 64-bit (or 32-bit on x86 Windows). 7-Zip is used for archiving build files -- may be eliminated in future.
2. Install [HTML Help Workshop](https://www.microsoft.com/en-us/download/details.aspx?id=21138).
4. Install [WiX](https://wix.codeplex.com/releases/view/60102) to **C:\Program Files (x86)\Windows Installer XML v3.5**.

## Building Keyman Desktop and Keyman Developer

1. Start 'x64_x86 Cross Tools Command Prompt for VS 2017'.
2. Run `make build` from the **windows/src** folder.
3. Artifacts from a successful build will be placed in **windows/bin** folder.

Type `make` to see build targets. Common build targets are:

  `make build` <-- builds Keyman Desktop and Keyman Developer
  `make clean` <-- remove temporary files and build artifacts
  `make release` <-- makes a release of all Keyman Windows projects

By default the version generated will be 10.0.700.0.

### Release build

To perform a release build, you will need to obtain valid certificates. A release build is
unnecessary for local development. Release builds are currently run from a TeamCity CI
environment.

1. Start 'x64_x86 Cross Tools Command Prompt for VS 2017'.
2. Run `make release` from the **windows/src** folder.
3. Artifacts from a successful build will be placed in **windows/release** folder.
4. **buildtools/help-keyman-com.sh** will push updated documentation to help.keyman.com.
   Environment variable `HELP_KEYMAN_COM` needs to be set to the root of the local 
   help.keyman.com git repository.

Note: by default, the version generated will be 10.0.700.0. You will not be able to
install it over a later version of Keyman, and will need to uninstall and reinstall.
<commit_msg>Fixes #841. Warn about build environment reset by Keyman build<commit_after># Keyman Desktop 10.0 and Keyman Developer 10.0

## Build Prerequisites

1. Install [VS2017 Community Edition](#visual-studio-2017-community-edition-setup-requirements).
2. Install [Delphi 10.2](#delphi-setup-requirements).
3. Install [git](https://git-scm.com/download/win).
4. Follow steps in /web/README.md to install prerequisites for building KeymanWeb (included in Keyman Developer)
5. Add the Keyman root folder to antivirus exclusions for performance and file lock reasons (optional - but highly recommended).
6. Start Delphi 10.2 IDE once after installation to create default environment files and ensure registration is complete.
7. Set environment variables per [notes below](#environment-variables): `KEYMAN_ROOT`, `DELPHI_STARTER`, `USERDEFINES`, 
   `GIT_BASH_FOR_KEYMAN`, (`USE_PLUSMEMO`, `KEYMAN_ENCUMBERED_ROOT`).
8. Add the **windows/lib** folder in the Keyman repository to your `PATH` environment variable (required for packages in Delphi).

### Release build prerequisites

For local development you do not need to perform a release build so these are optional.

1. Install [7-Zip](http://www.7-zip.org/) 64-bit (or 32-bit on x86 Windows). 7-Zip is used for archiving build files -- may be eliminated in future.
2. Install [HTML Help Workshop](https://www.microsoft.com/en-us/download/details.aspx?id=21138).
4. Install [WiX](https://wix.codeplex.com/releases/view/60102) to **C:\Program Files (x86)\Windows Installer XML v3.5**.

## Building Keyman Desktop and Keyman Developer

1. Start 'x64_x86 Cross Tools Command Prompt for VS 2017'.
2. Run `make build` from the **windows/src** folder.
3. Artifacts from a successful build will be placed in **windows/bin** folder.

*Note*: running `make build` will currently reset the packages and path settings in your Delphi environment. If you use Delphi for other projects, 
you should consider building Keyman under a login user dedicated to it, or in a VM.

Type `make` to see build targets. Common build targets are:

  `make build` <-- builds Keyman Desktop and Keyman Developer
  `make clean` <-- remove temporary files and build artifacts
  `make release` <-- makes a release of all Keyman Windows projects

By default the version generated will be 10.0.700.0.

### Release build

To perform a release build, you will need to obtain valid certificates. A release build is
unnecessary for local development. Release builds are currently run from a TeamCity CI
environment.

1. Start 'x64_x86 Cross Tools Command Prompt for VS 2017'.
2. Run `make release` from the **windows/src** folder.
3. Artifacts from a successful build will be placed in **windows/release** folder.
4. **buildtools/help-keyman-com.sh** will push updated documentation to help.keyman.com.
   Environment variable `HELP_KEYMAN_COM` needs to be set to the root of the local 
   help.keyman.com git repository.

Note: by default, the version generated will be 10.0.700.0. You will not be able to
install it over a later version of Keyman, and will need to uninstall and reinstall.

{'fraction_non_alphanumeric': 0.09052453468697123, 'fraction_numerical': 0.031302876480541454, 'mean_word_length': 4.393248175182482, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2604314', 'n_tokens_mistral': 1817, 'n_tokens_neox': 1646, 'n_words': 762}