ni / ni/nimi-python

Make it easier to contribute to this project by replacing WSL and GNU Make with Python

Open
#2,096 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build
Dominant language
Python
Stars
128
Forks
110
Avg merge
5d 14h
Merged PRs (30d)
10

Description

The contributing workflow for this project on Windows requires installing WSL and the Linux packages for GNU Make, Info-ZIP, and Python. For developers using pyenv, additional configuration is required to hide the Windows pyenv and Python versions from the Linux guest. These are rather heavyweight dependencies for contributing to a pure-Python package that does not build any C extensions.

The current nimi-python developer workflow involves running Tox, which calls GNU Make as needed. If you replaced the makefiles with Python scripts, this developer workflow would not need to change. Running Tox would call the Python scripts instead of GNU Make.

Other NI open-source Python projects such as https://github.com/ni/nidaqmx-python , https://github.com/ni/measurement-plugin-python , and https://github.com/ni/nisync-python perform codegen using Python scripts, which has worked out well. Because the projects are hosted in Git, it doesn't really matter whether the codegen updates the file timestamps every time you run it, and the codegen is fast enough that it wouldn't really benefit from skipping unchanged files.

If \r\n vs. \n line endings are an issue, configure .gitattributes to automatically convert the appropriate files.

(BTW: I have experienced WSL-specific networking issues on my dev machine, but I also have a bare-metal Linux desktop PC, so I don't have to use WSL.)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Tox workflow and the makefiles it invokes, then compare the code-generation scripts used by the referenced NI Python projects. Replace the GNU Make entry points with Python scripts while keeping the Tox workflow unchanged; verify that contributors no longer need WSL or GNU Make and check whether .gitattributes is needed for line endings.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, developer-experience, tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.