116 lines
5.9 KiB
Plaintext
116 lines
5.9 KiB
Plaintext
%% werkcrappit, planned with Werkbaum (https://werkbaum.javagil.de): what exists, what comes next.
|
|
%% Status: [^] published and in use, [x] merged, not yet published, [~] in work, [ ] planned, [?] idea, [-] dropped.
|
|
%% A green build of main publishes the plugins, so the PR that finishes a node already sets it to [^].
|
|
%% The block behind --- explains the nodes with an id.
|
|
%% View: https://werkbaum.javagil.de/?sourceUrl=https://git.javagil.de/mi/werkcrappit/raw/branch/main/docs/werkcrappit.werkbaum
|
|
|
|
[~] #werkcrappit: werkcrappit https://git.javagil.de/mi/werkcrappit
|
|
" Mutation-CRAP per JVM method, from PIT's mutants and JaCoCo's complexity: a PIT plugin and a Gradle plugin.
|
|
- [^] #mvp: Java MVP, the steps of the specification's section 8.3
|
|
- [^] #mvp.skeleton: Repository, Gradle wrapper, real walking skeleton, ADR 0001 (S)
|
|
" PR#1, PR#2.
|
|
- [^] #mvp.core: Metric core and status policy strict-v1 (M)
|
|
" PR#3; the default is timeouts-killed-v1 since PR#9 (ADR 0006).
|
|
- [^] #mvp.inventory: Original bytecode, method inventory and JaCoCo complexity (M)
|
|
" PR#4.
|
|
- [^] #mvp.aggregation: Complete aggregation of PIT results (M)
|
|
" PR#5.
|
|
- [^] #mvp.reports: JSON schema, JSON and Markdown reports, console summary (M)
|
|
" PR#6.
|
|
- [^] #mvp.gate: Gradle plugin with an opt-in gate, multi-project fixture (M)
|
|
" PR#7.
|
|
- [^] #mvp.kotlin: Kotlin basis support checked, limits documented (M)
|
|
" PR#61, ADR 0009.
|
|
- [^] #mvp.packaging: Packaging, documentation and actual test results
|
|
- [^] Published to the Gitea Maven registry (S)
|
|
" PR#8, PR#11; the functional tests consume the published plugins (MC-029).
|
|
- [^] README with quickstart and how to choose a limit (S)
|
|
" PR#12, PR#43, PR#44.
|
|
- [^] #mvp.groovy: Groovy DSL and a packaging test from an isolated repository (S)
|
|
" PR#63: GroovyDslFunctionalTest; the Kotlin DSL tests consume the published plugins since PR#7.
|
|
- [^] #mvp.metricDoc: docs/metric.md: formula, status policies, N/A states, limits (S)
|
|
" PR#62.
|
|
- [^] #mvp.report: Final report: versions, commands run, acceptance tests passed, limits (XS)
|
|
" PR#64: docs/final-report.md.
|
|
- [^] #mvp.examples: Small expected example reports, section 8.4 (XS)
|
|
" PR#65: docs/examples, kept current by ExampleReportsTest.
|
|
- [^] #pilot: Pilot hsadmin-ng
|
|
- [^] Guide and probe run (S)
|
|
" PR#10.
|
|
- [^] Gate on at a limit of 10 (S)
|
|
" hsadmin-ng PR#317; the guide shows the state since PR#44.
|
|
- [^] #self: werkcrappit measures itself
|
|
- [^] Nightly mutation build on main, with the structure pages (S)
|
|
" PR#30, PR#42, PR#56; the README links its latest code city since PR#68.
|
|
- [^] Every class below a Mutation-CRAP of 10 (M)
|
|
" PR#31, PR#32, PR#33.
|
|
- [^] Ratchets for cohesion and coupling (S)
|
|
" PR#39.
|
|
- [~] #city: CodeCharta code city (RFC 0001, ADR 0007)
|
|
- [^] Valid code city in a report directory of its own, districts, area by rloc (M)
|
|
" PR#13 to PR#17.
|
|
- [^] Link into the viewer, colour range of the gate, unscored classes grey (S)
|
|
" PR#18 to PR#21, PR#23, PR#29, PR#35.
|
|
- [^] Dependency edges (S)
|
|
" PR#22.
|
|
- [^] Commit and source links (S)
|
|
" PR#24, PR#25.
|
|
- [^] One scenario per view, the page leads with the views (S)
|
|
" PR#40, PR#47.
|
|
- [ ] #city.viewer: The CodeCharta viewer beside the city (M)
|
|
" RFC 0003, TODO.bundledViewer; where it is bundled is still to be discussed.
|
|
- [^] #city.style: The code city's index.html in the style of the structure pages (S)
|
|
" PR#58, RFC 0003.
|
|
- [^] #design: Cohesion and coupling (RFC 0002)
|
|
- [^] Measured (M)
|
|
" PR#36.
|
|
- [^] Shown in the code city (S)
|
|
" PR#37.
|
|
- [^] Judged by the gate (S)
|
|
" PR#38.
|
|
- [^] #risk: Change risk per class from Mutation-CRAP, cohesion and coupling (M)
|
|
" PR#41, ADR 0008.
|
|
- [~] #structure: Structure view of cycles, complexity and cohesion (RFC 0003)
|
|
- [^] #structure.diagram: Level diagram per package (M)
|
|
" PR#48, PR#49, PR#50.
|
|
- [^] #structure.matrix: Expandable dependency matrix (M) :#structure.diagram
|
|
" PR#51.
|
|
- [ ] #structure.werkator: Pilot Werkator: its nightly code city gets both pages (S) :#structure.matrix
|
|
- [ ] #structure.hsadmin: Pilot hsadmin-ng: both pages published with the city (S) :#structure.werkator
|
|
- [^] #structure.cycleEdges: Every edge of a package cycle, red across the hierarchy, amber along it (S)
|
|
" PR#55, RFC 0003.
|
|
- [^] #structure.wrap: More space between the lines of a wrapped level, every second shifted (XS)
|
|
" PR#67, RFC 0003.
|
|
- [^] #ops: Build, review and workflow
|
|
- [^] Werkator CI, builds stop after 10 minutes (XS)
|
|
" PR#1, PR#27.
|
|
- [^] Progress of a PIT run in the log (S)
|
|
" PR#26, PR#28.
|
|
- [^] werkrevisor reviews every PR (S)
|
|
" PR#45, PR#46.
|
|
- [^] #ops.workflow: The shared agentic workflow and this plan (S)
|
|
" PR#53, PR#54.
|
|
- [^] #ops.workflowSync: The workflow copy matches werkregie (XS)
|
|
" PR#69.
|
|
- [^] #ops.version: The version and the changelog follow from the PR documents (S)
|
|
" PR#70: a copy of werkregie PR#79; CHANGELOG.md ends with 0.26.14.
|
|
- [^] The AI review skips generated sections of the docs (XS)
|
|
" PR#71, after werkrevisor PR#122.
|
|
|
|
---
|
|
|
|
#mvp.kotlin
|
|
Kotlin is the specification's optional goal. Tested with Kotlin 2.4.21:
|
|
ordinary methods, overloads, top-level functions, properties, default
|
|
arguments, data classes, bridges, lambdas, inline and suspend functions.
|
|
Inline and suspend functions have limits, listed in ADR 0009.
|
|
|
|
#mvp.packaging
|
|
Section 8.4 of the specification lists the artifacts; with the example
|
|
reports of PR#65 every one is there.
|
|
|
|
#city.viewer
|
|
The code city still links the viewer at javagil.de, so the CI server must
|
|
allow it by CORS. hsadmin-ng is to move from Werkator to Woodpecker, so the
|
|
solution must not depend on Werkator. RFC 0003 lists the options.
|