Tensegritics / Tensegritics/ClojureDart

Analyzer helper cache should include Dart compatibility variant

Open
#382 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

papercut tooling
Dominant language
Clojure
Stars
1.6k
Forks
119
PR merge metrics
No merged PRs in 30d

Description

Problem

The analyzer helper cache is keyed only by the ClojureDart Git SHA in clj/src/cljd/build.clj (try-ensure-cljd-analyzer!). The selected analyzer dependency and resource also depend on the Dart SDK.

Switching between Dart 2.19 and Dart 3 with the same ClojureDart SHA can reuse the existing .clojuredart/cache/<sha>/cljd_helper contents, including pubspec.yaml, pubspec.lock, and bin/analyzer.dart, instead of selecting the appropriate compatibility variant.

Expected behavior

The cache should include the Dart/analyzer compatibility variant, or validate the cached helper before reusing it.

Scope

Minor reliability fix; no change to the analyzer compatibility policy.

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 in clj/src/cljd/build.clj at try-ensure-cljd-analyzer! and trace how the helper cache key and analyzer dependency are selected. Verify behavior when switching between Dart 2.19 and Dart 3 with the same ClojureDart SHA; done means the cached helper no longer reuses an incompatible pubspec.yaml, pubspec.lock, or bin/analyzer.dart.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure, dart
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.