Add support for simple Gradle version catalog aliases
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 62/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- backend, documentation
Research direction
Start in backend/app/scanners/analyzers/java.py to see how literal group:artifact:version Gradle declarations are extracted, then check the fixtures in backend/tests/scanners/test_java_analyzer.py. The change should read gradle/libs.versions.toml as data, resolve simple [libraries] aliases for implementation, api and test configurations, and leave anything unsupported unresolved. Done means the new fixture tests pass alongside the existing literal-parsing tests, and docs/languages.md describes the added support and its limits.
Written by the indexing model from the issue text.
Description
Summary
Gradle analysis currently extracts literal group:artifact:version declarations. Simple Gradle version catalog aliases in gradle/libs.versions.toml are not resolved, so dependencies referenced as implementation(libs.alias) or equivalent are missing from the inventory.
Affected files
backend/app/scanners/analyzers/java.pybackend/tests/scanners/test_java_analyzer.pydocs/languages.md
Scope
Read the conventional gradle/libs.versions.toml catalog and resolve simple library aliases used by supported dependency configurations. Parse the TOML as data only; never execute Gradle scripts or fetch artifacts. Leave unsupported expressions unresolved.
Acceptance criteria
- The scanner reads
gradle/libs.versions.tomlwhen present. - Simple
[libraries]aliases resolve from inline versions andversion.refentries. - Basic
implementation(libs.alias),api(libs.alias), and test-configuration references are recognized. - Existing literal Gradle dependency parsing remains unchanged.
- Complex expressions, unsupported catalog features, and unresolved version references remain unresolved rather than guessed.
- Fixture-based tests cover inline versions,
version.ref, supported configurations, unresolved expressions, and literal parsing. docs/languages.mdaccurately documents the added catalog support and remaining limitations.
Testing expectations
Run the focused Java analyzer tests and relevant backend scanner tests. Confirm documentation claims match tested behavior.
- Dominant language
- Python
- Stars
- 2
- Forks
- 1
- Avg merge
- 1h 22m
- Merged PRs (30d)
- 2
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ayushdoesdev/verspect
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ayushdoesdev/verspect#5 ·
-
enhancement good first issue
Difficulty 3/5 1-2 days Newbie friendliness 62/100
ayushdoesdev/verspect#3 ·
-
enhancement good first issue
Difficulty 3/5 1-2 days Newbie friendliness 62/100
ayushdoesdev/verspect#2 ·
All issues in ayushdoesdev/verspect
Similar issues
-
Paraxial.trace returns NaN for an object at infinity when the entrance pupil is at the first surfaceOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
enhancement ios launcher
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Substrait consumer doesn't recognise `shift_left` / `shift_right` from functions_arithmetic.yamlOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
apache/datafusion#27059 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
loteran/Arctis-Sound-Manager#368 ·
Maintainers usually reply within 1 day
-
feed submission
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
MobilityData/mobility-database-catalogs#1787 ·
Maintainers usually reply within 2 days