scalamacros/paradise
40.9
Weak · 20 September 2026
1.2k
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is the Macro Paradise compiler plugin for Scala 2.12, designed to enable macro annotations and ensure their expanded definitions are visible in the REPL. It provides the core infrastructure to detect, validate, and expand macro annotations during the type-checking phase, including support for REPL integration and comprehensive error handling for invalid usage. The project is maintained as a legacy release for Scala 2.12.x, with a build system configured for publishing artifacts to Sonatype.
How it got here
2013 — Initial project setup and test suite creation
6 changes.
The repository was initialized with core build configuration, documentation, and licensing for the Macro Paradise plugin. A comprehensive test suite was established to verify macro annotation behavior, covering positive execution scenarios, negative validation cases, and specific edge cases involving scopes and module classes.
2014–2018 — Macro annotation support and REPL integration
10 changes.
This period focused on implementing core macro annotation expansion and validation logic within the typechecker, alongside integrating the plugin with the Scala REPL to ensure expanded definitions are visible. The work was supported by extensive test coverage addressing various edge cases, including import handling, companion object resolution, and specialized implicit classes. The period concluded with a migration of the build system to SBT and an update to Scala 2.12.21.
Features
Initial project setup with build configuration and documentation
The repository has been initialized with the core structure for the Macro Paradise plugin, including a .gitignore file to exclude build artifacts, an .sbtrc configuration for sbt project navigation, and a BSD-style LICENSE.md file. The README.md provides user-facing documentation explaining that the plugin is no longer actively developed for Scala 2.13 (where functionality is built-in) but continues to release for Scala 2.12.x, along with instructions for cutting releases using sbt and GPG signing.
(repo-wide) · high confidence
Introduction of macro annotation expansion and validation logic
The plugin now includes the core typechecker components required to support macro annotations. This adds logic to detect, validate, and expand macro annotations during the type-checking phase. Specifically, it introduces validation rules ensuring macro annotations are static, not inherited, and have the correct method signature, along with error reporting for invalid shapes or usage contexts. The expansion engine handles the transformation of annotated definitions, including support for top-level classes and modules, and integrates with the REPL to make expanded definitions visible.
plugin/src/main/scala/org/scalamacros/paradise/typechecker · high confidence
Behavioural changes
Macro Paradise plugin introduces REPL integration and macro annotation support
The Macro Paradise compiler plugin now supports macro annotations and ensures that definitions produced by macro expansions are visible in the Scala REPL. This is achieved by adding a REPL integration layer that updates the interpreter's internal member handlers and referenced names when macros expand, fixing issues where REPL users could not see or use symbols generated by macros. Additionally, the plugin now includes infrastructure for handling macro annotation detection and tree manipulation via new reflection traits.
plugin/src/main/scala/org/scalamacros/paradise/reflect · high confidence
Test coverage
Added macro annotation test suite; Added negative tests for macro annotation validation and error handling; Added run-time tests for macro annotation behavior; Added test cases for module-class annotation behavior; Added test for issue \#42: specialized implicit class; Added test for issue \#46 regarding unused imports and variance annotations; Added test for issue \#64 regarding annotated traits; Added tests for Scaladoc annotation expansion; Added tests for annotation macro handling of import contexts; Added tests for annotation processing in issue48; Added tests for companion object symbol resolution; Added tests for macro annotation scopes and acyclic dependencies.
Dependencies
Migration to SBT build system with Scala 2.12.21
The project build has been migrated to SBT, establishing Scala 2.12.21 as the default compiler version. This change introduces a new build structure with dedicated projects for the compiler plugin, sandbox, and tests, and configures artifact publishing to Sonatype Central Snapshots.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 41.
Lenses
- Code Health 74
- Architecture 69
- Maturity 33
- Readiness 26
- Security 100
Changes since last survey
- 138 commits — 118 feature/other, 20 fixes
By area
- plugin/src — 51 commits
- (root) — 27 commits
- tests/src — 27 commits
- project/build.scala — 26 commits
- (repo) — 4 commits
- project/build.properties — 3 commits
Notable commits
- fix: Revert "copy/pastes syntactic class and trait defs from master to fix a bug"
- fix: copy/pastes syntactic class and trait defs from master to fix a bug
- fix: fix #86
- fix: fix breakage introduced by https://github.com/scala/scala/commit/4e3ffd4bf00ab71ef64c31a45d5c3e2838aa78ee
- fix: fix build problem on JDK 11
- fix: fixes #42
- fix: fixes #46
- fix: fixes #48
- fix: fixes #53
- fix: fixes #64
- fix: fixes #7
- fix: fixes expansion of scaladoc-annotated definitions
- fix: fixes https://groups.google.com/d/msg/scala-language/C7Pm6ab1sPs/H2mEfMSwKJ0J
- fix: fixes issue #10
- fix: fixes issue #9
- fix: fixes issues with -Ywarn-unused-import
- fix: fixes non-expansion of scaladoc-annotated definitions
- fix: now that's the fix!
- fix: readme fix
- fix: temporarily revert new module naming logic copy/pasted from 2.12.2
- …and 118 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
scalamacros/paradise was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit a631888893a193e6a58584f2a0db4dc30a7935cf — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.