lambdaisland / lambdaisland/kaocha

#kaocha/v2 wish list

Open
#183 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

The #kaocha/v1 reader tag does two things, it normalizes the test config, and it fills in various defaults.

Now that Kaocha is a bit more mature we can look back at some of the choices made early on, and maybe reconsider some of those defaults. By introducing a #kaocha/v2 we can provide different defaults for new users, while not changing the behavior of existing test suites using #kaocha/v1.

We are not yet sure if we'll add a /v2 or when we would do it, but I do have some ideas of what I would want to do with it, maybe others do too, so this is a wishlist issue where we can collect those ideas.

The general idea I think is to make all the "smart" features that actually end up confusing people opt-in. The documentation would show a default config that has these features turned on, so you still get the rich kaocha experience, but it would be explicit, so people can make a choice if they want these things, and are made aware that they exist.

  • :capture-output? -> currently defaults to true, change that to false
  • :test-ns-patterns -> currently set to #"-test", change it to match all namespaces (see #60)
  • ::skip-add-classpath? -> stop adding test directories to the classpath at runtime, it's too flaky and can interact badly with other tools. Just let people manage their own classpath through deps.edn or whatever they are using

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

Start by locating the #kaocha/v1 reader tag and its config normalization and default handling. Review the three proposed defaults and the related discussion in #60 before deciding whether a v2 is wanted. Done means an agreed v2 scope and explicit defaults, rather than implementing this unresolved wishlist.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.