JakeWharton / JakeWharton/timber

Build package variant without embedded lint rules. (For library authors)

Open
#376 0 comments 5 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.