You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
DanFTRX
changed the title
Build package variant without embedded lint checks. (For library authors)
Build package variant without embedded lint rules. (For library authors)
Dec 26, 2019
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.
The text was updated successfully, but these errors were encountered: