Justify our recommendation against `optional`/`provided` scope
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 43
- Avg merge
- 9m
- Merged PRs (30d)
- 13
Description
The warning: https://github.com/jspecify/jspecify/blob/4e80178f7e3ef556169c7866e2c91dae3f69750d/docs/docs/using.md?plain=1#L32
Some previous threads offer hints of why:
- https://github.com/jspecify/jspecify/issues/389
- https://github.com/jspecify/jspecify/issues/294 (including citing Guava docs that cite how Maven doesn't have a
compileOnlyequivalent)
I recently learned of another, which is that kotlinc will be upset if you write fun foo() = SomeJavaThing.thatHasNullableOnItsReturnType(), as reported in https://github.com/keiyoushi/extensions-source/pull/16590:
Type annotation class 'org.jspecify.annotations.Nullable' of the inferred type is inaccessible. Check the module classpath for missing or conflicting dependencies. This will become an error in language version 2.4. See https://youtrack.jetbrains.com/issue/KT-80247.
Contributor 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.
Research direction
Start with the warning in docs/docs/using.md, then read issues #389 and #294 and the linked Kotlin report for supporting context. Update the documentation so the recommendation against optional/provided scope has a clear, accurate justification, with the cited dependency and Kotlin concerns reflected; done means the guidance is understandable without relying on the issue thread.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kotlin
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100