webjars/webjars
57.9
Adequate · 20 September 2026
5.1k
lines of production code
Scala
with JavaScript
1
measurement over time
What this system is
This system is a WebJars service that manages the deployment and distribution of frontend libraries to Maven Central. It provides a modern web interface for searching and listing artifacts, alongside an administrative tool for triggering and monitoring deployments. The backend utilizes ZIO for concurrent, real-time deployment tracking with structured error handling and Redis-based state management.
Features
Initial project scaffolding and build configuration
The repository has been initialized with core project files, including an MIT License, README, and mission statement. The build system is configured with an sbt launcher (version 2.0.0) and a \.sbtopts\ file enabling specific JVM flags for native access and unsafe memory operations. Deployment is defined via a Procfile for web, deploy, and cleanup processes, while the runtime environment is pinned to Java 25. Additionally, a comprehensive set of integration tests has been added to validate HTTP endpoints, and developer documentation (DEV.md) outlines local setup using Valkey and Playwright for browser testing.
(repo-wide) · high confidence
Removals
Removal of legacy Application and WebJarAssets controllers
The legacy \Application\ controller (handling index, documentation, and examples pages) and the \WebJarAssets\ controller (serving WebJar static assets) have been removed from the application. This eliminates the manual routing and serving logic previously defined in these files, likely as part of a broader refactoring to use standard Play assets handling or a different architecture for serving static content and UI pages.
app/controllers · high confidence
Removal of legacy static documentation and example views
The application has removed the \documentation.scala.html\, \examples.scala.html\, \index.scala.html\, and \main.scala.html\ view templates. This eliminates the previous static UI structure that served hardcoded documentation sections (for Play 2, Servlet 3, Grails, Dropwizard, Spring MVC), a list of example applications, and the main layout wrapper including the Bootstrap 2.1.1 stylesheet and jQuery 1.8.1 script. Users will no longer see these specific legacy documentation pages or the associated basic layout in this view layer.
app/views · high confidence
Behavioural changes
1 commit (0 fixes) modifying resources
A change to existing behaviour in resources — 1 commit, 1 file.
resources · low confidence · unverified
Migration from Play 2.x to sbt 2.0 with updated plugin ecosystem
The build system has been significantly restructured: the legacy \project/Build.scala\ file defining the Play project has been removed, and the build tool version has been upgraded from sbt 0.11.3 to 2.0.8. The plugin configuration has shifted away from the Play sbt plugin to a set of modern plugins including \sbt-native-packager\, \sbt-webjars\, \sbt-sass\, \sbt-reload\, \skillsjars-sbt-plugin\, \sbt-mcp\, and \sbt-tdepver\, reflecting a move to a new build architecture and dependency management strategy.
project · high confidence
New ZIO-based deployment pipeline with structured error tracking and live progress updates
The repository has been rewritten to use the ZIO effect system, introducing a new deployment architecture that provides real-time progress streaming via Server-Sent Events (SSE) and structured error classification. Deployments are now tracked in Redis, allowing multiple clients to subscribe to the same job's log. The system automatically files GitHub issues for 'Systemic' failures (such as missing metadata or license errors) while suppressing 'Transient' network errors and 'UserInput' mistakes, preventing issue tracker spam. Additionally, the new \AppRoutes\ exposes a modern web UI and API endpoints for searching, listing, and deploying WebJars, with improved caching and ETag support for performance.
repository · high confidence
Removal of legacy application configuration and routing definitions
The default application configuration file (application.conf) and the routes file (routes) have been removed from the conf directory. This eliminates the hardcoded secret key, default logger settings, and the previous route mappings for the index, documentation, examples, and WebJar assets pages, indicating a shift in how the application's core configuration and request routing are managed.
conf · high confidence
WebJars site redesign with dark mode, crawler limits, and admin deployment
The WebJars website has been redesigned with a new user interface that includes a dark mode toggle (persisting user preference via localStorage) and a documentation page with framework-specific tabs. To protect backend resources, crawler traffic is now rate-limited on expensive endpoints like /listfiles, returning 429 responses to excessive bots. Additionally, an admin deployment tool has been added, allowing administrators to redeploy specific WebJars to Maven Central, and a one-time cleanup utility has been introduced to remove stale or invalid entries from the cache.
src/main · high confidence
Test coverage
Added comprehensive test coverage for core WebJar deployment and utility logic
This update introduces a suite of new tests in src/test/scala/webjars that verify critical deployment and utility behaviors. ArchiveCreatorSpec confirms that in-memory files are archived correctly, including support for paths exceeding standard tar header limits. CacheSpec validates the CacheLive implementation, ensuring values are cached, expired correctly, and that failures are not cached to allow retries. ClassicParseMetadataSpec tests the parsing of metadata for both standard and NPM-based WebJars, including handling of scoped NPM names and license overrides. ClassicSpec exercises the full Classic WebJar lifecycle, including metadata retrieval, version listing, and specifically verifying that license handling correctly treats GitHub's NOASSERTION response as UnresolvedLicense to allow fallbacks. DeployFailureSpec and DeployFailureTrackerSpec test the classification of deployment errors (Systemic, Transient, UserInput) and the tracker's logic for scrubbing sensitive data, redacting tokens, and filing GitHub issues for systemic failures. DeployHelpersSpec verifies GAV parsing and version bumping logic. Finally, DeployJobsSpec and DeployJobsIntegrationSpec test the streaming deployment job behavior, including late subscriber handling, concurrent deploy deduplication, and end-to-end deployment of an NPM package with dependencies.
src/test · high confidence
Dependencies
Initial build configuration for WebJars service
The project now uses a new build.sbt file to define the build structure, setting the Scala version to 3.9.0 and configuring the application to run on JDK 25 with specific JVM flags to allow restricted memory access. It introduces dependencies on the ZIO ecosystem (including zio-config, zio-redis, zio-cache, and zio-http-guard) and specifies published artifacts for zio-git (0.0.3) and zio-mavencentral (0.14.0), while also including WebJars for Bootstrap (5.3.8) and Highlight.js (11.11.1) for frontend assets.
(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 58.
Lenses
- Code Health 94
- Architecture 100
- Maturity 43
- Readiness 65
- Security 63
Changes since last survey
- 300 commits — 256 feature/other, 44 fixes
By area
- (root) — 72 commits
- (repo) — 56 commits
- app/utils — 45 commits
- project/build.properties — 35 commits
- src/main — 23 commits
- project/plugins.sbt — 13 commits
- test/utils — 13 commits
- .github/workflows — 11 commits
- app/views — 10 commits
- app/assets — 6 commits
- .github/dependabot.yml — 2 commits
- app-TO_DELETE/views — 2 commits
- app/controllers — 2 commits
- conf/application.conf — 2 commits
- src/test — 2 commits
- test/controllers — 2 commits
- app/models — 1 commit
- conf/logback.xml — 1 commit
- project/sbt-sass — 1 commit
- project/sbt-webjars — 1 commit
Notable commits
- fix: Fix 501 HTTPS Required error by migrating from deprecated Sonatype OSS to Maven Central (#2170)
- fix: Fix pre release ranges (#2051)
- fix: Fix styles (#2103)
- fix: Fix styles2 (#2108)
- fix: Revert commit(s) 2a68696
- fix: Revert commit(s) 35b628d
- fix: Revert commit(s) 9011146
- fix: Revert commit(s) 9c26b74
- fix: Revert commit(s) f9d6b98
- fix: add MANIFEST.MF and remove empty source and javadoc jars - fixes #2070 (#2071)
- fix: add public key info - fixes #2257
- fix: add support for exclicit license - fixes #2221
- fix: better gradle fixes #2043
- fix: better lookup of versions - fixes #2134
- fix: cache overhaul - fixes #2185
- fix: create valid manifest - fixes #2142 (#2147)
- fix: fix classic npms with scoped names
- fix: fix conf
- fix: fix depGraph
- fix: fix github redirs
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
webjars/webjars 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 b35adad4c10806512fff082041406ac5e679712f — 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.