Skip to content

Latest commit

 

History

History
82 lines (54 loc) · 2.79 KB

CONTRIBUTING.md

File metadata and controls

82 lines (54 loc) · 2.79 KB

Contributing

Kindly create an issue and a pull request.

Guidelines

  1. Do not use anything in installation scripts that is not POSIX compatible.
  2. The app installed must work on 95% of the Linux distros listed in README.
  3. Use mise plugins or distros' repos. Do minimum Homebrew and only on macOS.
  4. The app must work on AArch64 Linux as all Macs default to AArch64 since 2023.
  5. No use to install the app if can use it via an alias to uvx, bunx or n.

Testing

See dotfiles/.aliases for vm4... creating Lima VMs to test on various Linux distros.

For development purposes, once the VM has been started, host's $HOME/configent is mounted read-only in the VM. This enables testing most changes without first committing and pushing to your fork.

Pre-commit

Install pre-commit hooks before committing:

pre-commit install --hook-type pre-commit
pre-commit install --hook-type commit-msg

Static analysis

All of these tools are either installed or installed lazily on use by configent.

Run semgrep for code vulnerability analysis:

semgrep scan  .

Run Trivy to scan for secrets in git repository:

trivy fs .

Run Checkov to scan for Docker misconfigurations:

checkov -d .

See respective ignore files in the repository root.

In addition, Semgrep and Checkov support inline ignores (as comments in files).

SAST tools are not run as pre-commit hooks as they are not necessarily Python.

Known issues

  • Neovim: Linux / Aarch64 (as of 2025-01)

    • Any existing mise plugin does not install Aarch64 binary
      • Fix: Install neovim from distro's repo
  • Docker: CentOS Stream 10 / all archs (as of 2025-01)

    • After installing iptables from repo, modproble iptables fails until reboot
      • Fix: Reboot is required after (first) bootstrap for Docker to run
  • Docker: Alpine Linux / all archs (as of 2025-01)

    • Rootless docker is not supported
      • Fix: Relogin is required after (first) bootstrap to be in docker group
  • Node.js: Alpine Linux / all archs (as of 2025-01)

    • Mise starts compiling Node.js from source, which takes a long time
  • Homebrew: Alpine Linux / x86-64 (as of 2025)

    • Homebrew on Linux does not work on musl based distros
      • Workaround: Use mise install when possible, otherwise use apk install
  • Homebrew: Linux / Aarch64 (as of 2025)

- [APP]: [OS AND VERSION] / [ON WHICH ARCH] (as of [LAST CHECKED DATE])
  - [ISSUE]
    - [FIX|WORKAROUND]