cesarferreira/dryrun
55.5
Adequate · 28 September 2026
597
lines of production code
Ruby
with JavaScript
2
measurements over time
What this system is
Dryrun is a command-line tool designed to streamline the testing of Android libraries hosted on GitHub. It automates the process of cloning repositories, selecting connected devices, and executing builds or tests via Gradle. The system supports modern Android workflows, including Kotlin DSL, module selection, and robust handling of various Git URL formats.
Features
Introduction of the dryrun executable entry point
A new executable script named 'dryrun' has been added to the bin directory, allowing users to launch the application directly from the command line. This script initializes the Ruby environment using Bundler and invokes the main application class, providing a standard entry point for running the tool.
bin · high confidence
New dryrun CLI tool for running Android projects
Introduces the \dryrun\ command-line interface, allowing users to clone Android repositories, select connected devices, and build or test applications via command-line options such as branch, tag, module, and flavor selection.
lib · high confidence
Behavioural changes
Dryrun tool restructured with new Android project handling and Gradle support
The dryrun tool has been refactored to support modern Android development workflows, including explicit handling of Gradle Kotlin DSL (\.gradle.kts\) files and the ability to select specific modules and build flavors. The update introduces a new \AndroidProject\ class that manages project validation, manifest parsing (using the Oga XML library instead of Nokogiri), and module discovery. It also adds support for running connected Android tests and unit tests via the \GradleAdapter\, allows users to specify custom app paths and modules, and improves Windows compatibility by handling file permissions and ADB interactions more robustly. The tool now defaults to assembling the app if no device is connected, rather than attempting an install.
lib/dryrun · high confidence
Project rebranded from 'atry' to 'dryrun' with updated configuration and documentation
The tool has been rebranded from 'atry' to 'dryrun', reflected in the new gem name, updated README, and new facelift.json metadata. Configuration files have been added or updated to support this change, including a new .rspec file for test formatting, a .rubocop.yml enforcing Ruby 2.0+ and disabling specific metrics, a .travis.yml targeting Ruby 2.3.0, and a Rakefile for running tests. The .gitignore has been simplified to exclude standard Ruby build artifacts and IDE files.
(repo-wide) · high confidence
Test coverage
Added RSpec test suite for GitHub URL handling
Added new RSpec tests to verify the behavior of the GitHub URL parser, specifically validating that valid HTTPS and SSH URLs are correctly identified and that invalid URLs are rejected. The tests also confirm that the destination folder path is correctly derived from various URL formats, including those ending in .git or using SSH protocols, and that non-GitHub URLs result in a hash-based destination.
spec · high confidence
Dependencies
Initial release of the dryrun gem
The dryrun gem is introduced as a command-line tool for testing Android libraries hosted online. The package defines runtime dependencies on bundler, colorize, oga, highline, and rjb, while specifying development dependencies for rake, pry-byebug, and rspec to support testing and debugging workflows.
(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
Score
- CAI 55 → 55 (+0.1)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 49 → 49 (+0.0)
- Readiness 44 → 44 (+0.0)
- Security 97 → 98 (+0.8)
Resolved (1)
- Documentation: no licence statement (README.md)
New (3)
- Duplicate intent for manifest parsing. AndroidProject has two methods for manifest retrieval (parse vs get) with identical signatures, and a separate ManifestParser class exists that duplicates the logic of extracting package/activity info from a manifest file. It is unclear if AndroidProject methods delegate to ManifestParser or if they are redundant implementations.
- Inconsistent naming for command execution. DryrunUtils has both execute and run, while AndroidProject has execute_command. The distinction between 'execute' and 'run' in DryrunUtils is unclear (one takes a command string, the other a path, but the semantic difference is subtle and naming is inconsistent with AndroidProject's execute_command).
- Inconsistent validation method signatures. AndroidProject.valid? takes an argument, while Github.valid? takes none. This creates confusion about whether validation is self-contained or requires external context.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
cesarferreira/dryrun 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 28 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 3cdd6e89b25b10bcc97394a2537bf4725a98780a — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.