lambdaisland / lambdaisland/kaocha

Extract more of the plumbing around entry points for reuse

Open
#312 4 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ergonomics low-priority
Dominant language
Clojure
Stars
860
Forks
81
PR merge metrics
No merged PRs in 30d

Description

While working on polylith-kaocha I noticed that kaocha's 3 entry points (cli, -x, repl) seemingly reimplement common functionality with some subtle differences (like cloverage not being usable from repl/run). Because I wanted to support cloverage in p-k I had to again reimplement some of the stuff that -x does.

It would be great from the perspective of other tooling calling kaocha in-process to have more of this common functionality available for reuse without having to be aware of internals. I imagine most of the benefits of this work would only be towards tooling authors mind you.

Apart from the wrappers around the main process with all hooks, one area that could be helpful is exposing the parsing of -m-style command line args so other command-line tooling calling kaocha could pass them through without calling -m or having to understand it.

Potentially related issue: #305

Contributor guide

No contributing guide indexed for this repository

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

Compare Kaocha's three entry points—cli, -x, and repl—and read the linked polylith_kaocha/kaocha_wrapper/runner.clj lines 31-67 for an example of duplicated behavior. Identify which hooks and -m-style argument parsing can be exposed for in-process tooling; done means callers can reuse that functionality without depending on internals and the entry points behave consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
testing, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.