JakeWharton / JakeWharton/timber
Build package variant without embedded lint rules. (For library authors)
- Dominant language
- Kotlin
- Stars
- 10.8k
- Forks
- 994
- Avg merge
- 17h 16m
- Merged PRs (30d)
- 17
Description
Embedded lint rules get inheritted transitively through dependencies. When a libary author wants to use Timber, it then requires all consumers of that library to either use Timber or configure their tooling to ignore all Timber lint checks. Its an additional cost to consumers that shouldn't even need to know what logging implementation a library is using.
This cost is especially high as Android Studio's code analysis has it's own separate configuration (inspection profiles) that does not use the lintOptions in the build.gradle or lint.xml. Inspection profiles exist in the .idea metadata folder and it is considered bad practice to include that folder in source control repositories. So consumers would either need to configure each checkout's Timber lint rules independently, or they would need to go against good practice by committing the .idea metadata folder to their source control repository. Neither of these is a good approach.
I propose a build variant that does not contain the embedded lint rules, such that published builds of libraries can use said variant and not cause unneccessary trouble for their consumers.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the repository's build configuration and how the embedded lint rules are packaged into published builds. Define a separate library variant that omits those rules, then verify that library consumers can use it without inheriting Timber lint checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100