Skip to content

Setting Up the Development Environment

Marc edited this page Dec 3, 2024 · 35 revisions

System Requirements

Quick Setup

1) Configure Git for portable line endings

  • Windows: make sure you have enabled core.autocrlf
git config --global core.autocrlf true
  • Linux/macOS: set core.autocrlf to input so any files with CRLF endings will be committed to the repo with only LF endings.
git config --global core.autocrlf input

2) Configure an authentication method for Github

Option 1: SSH

  • Create and configure a public-private key pair
# Use Git Bash in windows
ssh-keygen -t ed25519 -C "[email protected]"
  • This creates the files id_ed25519 and id_ed25519.pub in ~/.ssh. If they are create elsewhere move them to .ssh.
  • Copy the contents of the file containing the public key: ~/.ssh/id_ed25519.pub
  • In GitHub, click your icon and go to Settings. There go to the SSH and GPG section and click on New SSH key
  • Then copy the contents of your public key in the input text.

Note: If you have problems with a proxy (Connection timeout or Connection refused) configure to connect SSH over HTTPS

Option 2: HTTPS

  • Create an access token
    • Click on your icon, then Settings, then Developer Settings, then Personal Access Tokens and finally Fine-grained Tokens

TODO

3) Clone the repository

Open a terminal and execute

git clone [email protected]:KhiopsML/khiops.git
cd khiops

4) Install pre-commit in the repository

# Install the pre-commit Python package
pip install pre-commit

# This installs the hooks on the repo and runs them on all files
# It may take a bit of time the first time
pre-commit install
pre-commit run --all-files

Note for Anaconda + Windows: You must add the Scripts directory of your Anaconda installation to the PATH. That way pre-commit will be available in any shell. With conda you can use conda install -c conda-forge identify pre-commit

5) Compile

Note: To exploit the test suites of LearningTest from the IDE, the following environnement variables must be set:

  • KHIOPS_API_MODE: set to true to apply API mode during development, with paths relative to the current working directory (otherwise, paths are relative to the data directory, in GUI mode),
  • KhiopsFastExitMode: set to false in order to use the scenario files and execute all instructions without an exit after the first error.

They are set in the kht_test script of the LearningTestTool.

5.1) In Visual Studio 2022

  • Open Visual Studio and select Open Local Folder and select your local khiops folder
    • This may take a few minutes to finish, you can see the current status by selecting the CMake output in the output sub-window.
  • At the top bar you can select a debug or release preset (ex: Windows MSVC Release) and select the menu Build -> Build All.

To run the MODL or MODL_Coclustering executable from the IDE, you must have a launch.vs.json parameter file under the .vsdirectory : launch.vs.json

Note: This parameter file exploits the "currentDir" key to set the current working directory and the "env" key to set the KHIOPS_API_MODE and KhiopsFastExitMode environnement variables.

5.2) In Visual Studio Code

  • Make sure you have installed the extension mentioned above.
  • Open VS Code go to the menu File -> Open Folder and select your local khiops folder
  • At the bottom bar you can select a debug or release preset (ex: Windows MSVC Release) and then click on the "⚙ Build" button nearby.

5.3) From the command line

  • Go to the khiops folder
  • For a given preset (ex: windows-msvc-release) execute
cmake --preset windows-msvc-release         # add --fresh to regenerate
cmake --build --preset windows-msvc-release # add --clean-build to clean