Open-Source Wikis

/

fzf

/

How to contribute

junegunn/fzf

How to contribute

This section covers the practical mechanics of working in the fzf repository: where to start, how to run tests, how to debug issues, and the conventions to follow.

Picking up work

  • Check open issues on https://github.com/junegunn/fzf/issues for help wanted and confirmed-bug labels.
  • For new features, open an issue first so the design can be discussed before code is written. fzf is intentionally conservative about adding new flags — there are already many.
  • The CODEOWNERS file (.github/CODEOWNERS) lists @junegunn as the sole owner; expect review by the maintainer.

Sub-pages

Definition of done

A change is mergeable when:

  1. make lint passes (gofmt clean, rubocop clean, shell scripts pass shell/update.sh --check).
  2. make test passes (Go unit tests across src/, src/algo/, src/tui/, src/util/).
  3. make itest passes for any UI-affecting change (Ruby integration tests through tmux). Adjust test/test_core.rb / test/test_layout.rb etc. so the new behavior is covered.
  4. The man page (man/man1/fzf.1) is updated for any user-visible flag, action, or placeholder.
  5. CHANGELOG.md has an entry under the unreleased version, in the same style as previous entries.
  6. If a new placeholder, action, or option is added, the help text in Usage constant in src/options.go is updated.

Style highlights

  • All Go code uses tabs and is gofmt -s clean — make lint enforces this.
  • Ruby tests use Rubocop with the project config in .rubocop.yml.
  • Shell scripts use 2-space indentation and pass shfmt. The repo's shell/update.sh is the source of truth: shared snippets live in shell/common.sh and are spliced into the per-shell scripts via --BEGIN INCLUDE / --END INCLUDE markers; running make fmt re-syncs them.
  • Commit messages follow the existing log style: short imperative subject ("Add X", "Fix Y when Z"), optional body, no Conventional Commits prefixes.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to contribute – fzf wiki | Factory