Skip to content

Commit

Permalink
Prepare version 5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeWharton committed Aug 10, 2021
1 parent 5699f8d commit 1762be3
Show file tree
Hide file tree
Showing 5 changed files with 177 additions and 89 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: site
FOLDER: timber/build/dokka/html/
TARGET_FOLDER: docs/4.x/
TARGET_FOLDER: docs/5.x/
CLEAN: true
171 changes: 99 additions & 72 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,93 +1,101 @@
Change Log
==========
# Change log

Version 4.7.1 *(2018-06-28)*
----------------------------
## [Unreleased]


## [5.0.0] - 2021-08-10

The library has been rewritten in Kotlin, but it remains binary-compatible with 4.x.
The intent is to support Kotlin multiplatform in the future.
This is otherwise a relatively minor, bug-fix release.

### Changed

- Minimum supported API level is now 14.
- Minimum supported AGP (for embedded lint checks) is now 7.0.

### Fixed

- `DebugTree` now finds first non-library class name which prevents exceptions in optimized builds where expected stackframes may have been inlined.
- Enforce 23-character truncated tag length until API 26 per AOSP sources.
- Support `Long` type for date/time format arguments when validating format strings in lint checks.
- Do not report string literal concatenation in lint checks on log message.


## [4.7.1] - 2018-06-28

* Fix: Redundant argument lint check now works correctly on Kotlin sources.


Version 4.7.0 *(2018-03-27)*
----------------------------
## [4.7.0] - 2018-03-27

* Fix: Support lint version 26.1.0.
* Fix: Check single-argument log method in TimberExceptionLogging.


Version 4.6.1 *(2018-02-12)*
----------------------------
## [4.6.1] - 2018-02-12

* Fix: Lint checks now handle more edge cases around exception and message source.
* Fix: Useless `BuildConfig` class is no longer included.


Version 4.6.0 *(2017-10-30)*
----------------------------
## [4.6.0] - 2017-10-30

* New: Lint checks have been ported to UAST, their stability improved, and quick-fix suggestions added. They require Android Gradle Plugin 3.0 or newer to run.
* New: Added nullability annotations for Kotlin users.
* Fix: Tag length truncation no longer occurs on API 24 or newer as the system no longer has a length restriction.
* Fix: Handle when a `null` array is supplied for the message arguments. This can occur when using various bytecode optimization tools.


Version 4.5.1 *(2017-01-20)*
----------------------------
## [4.5.1] - 2017-01-20

* Fix: String formatting lint check now correctly works with dates.


Version 4.5.0 *(2017-01-09)*
----------------------------
## [4.5.0] - 2017-01-09

* New: Automatically truncate class name tags to Android's limit of 23 characters.
* New: Lint check for detecting null/empty messages or using the exception message when logging an
exception. Use the single-argument logging overloads instead.
* Fix: Correct NPE in lint check when using String.format.


Version 4.4.0 *(2016-12-06)*
----------------------------
## [4.4.0] - 2016-12-06

* New: `Tree.formatMessage` method allows customization of message formatting and rendering.
* New: Lint checks ported to new IntelliJ PSI infrastructure.


Version 4.3.1 *(2016-09-19)*
----------------------------
## [4.3.1] - 2016-09-19

* New: Add `isLoggable` convenience method which also provides the tag.


Version 4.3.0 *(2016-08-18)*
----------------------------
## [4.3.0] - 2016-08-18

* New: Overloads for all log methods which accept only a `Throwable` without a message.


Version 4.2.0 *(2016-08-12)*
----------------------------
## [4.2.0] - 2016-08-12

* New: `Timber.plant` now has a varargs overload for planting multiple trees at once.
* New: minSdkVersion is now 9 because reasons.
* Fix: Consume explicitly specified tag even if the message is determined as not loggable (due to level).
* Fix: Allow lint checks to run when `Timber.tag(..).v(..)`-style logging is used.


Version 4.1.2 *(2016-03-30)*
----------------------------
## [4.1.2] - 2016-03-30

* Fix: Tag-length lint check now only triggers on calls to `Timber`'s `tag` method. Previously it would
match _any_ `tag` method and flag arguments longer than 23 characters.


Version 4.1.1 *(2016-02-19)*
----------------------------
## [4.1.1] - 2016-02-19

* New: Add method for retreiving the number of installed trees.


Version 4.1.0 *(2015-10-19)*
----------------------------
## [4.1.0] - 2015-10-19

* New: Consumer ProGuard rule automatically suppresses a warning for the use `@NonNls` on the 'message'
argument for logging method. The warning was only for users running ProGuard and can safely be ignored.
Expand All @@ -98,45 +106,39 @@ Version 4.1.0 *(2015-10-19)*
* Fix: 'BinaryOperationInTimber' lint rule now only triggers for string concatenation.


Version 4.0.1 *(2015-10-07)*
----------------------------
## [4.0.1] - 2015-10-07

* Fix: TimberArgTypes lint rule now allows booleans and numbers in '%s' format markers.
* Fix: Lint rules now support running on Java 7 VMs.


Version 4.0.0 *(2015-10-07)*
----------------------------
## [4.0.0] - 2015-10-07

* New: Library is now an .aar! This means the lint rules are automatically applied to consuming
projects.
* New: `Tree.forest()` returns an immutable copy of all planted trees.
* Fix: Ensure thread safety when logging and adding or removing trees concurrently.


Version 3.1.0 *(2015-05-11)*
----------------------------
## [3.1.0] - 2015-05-11

* New: `Tree.isLoggable` method allows a tree to determine whether a statement should be logged
based on its priority. Defaults to logging all levels.


Version 3.0.2 *(2015-05-01)*
----------------------------
## [3.0.2] - 2015-05-01

* Fix: Strip multiple anonymous class markers (e.g., `$1$2`) from class names when `DebugTree`
is creating an inferred tag.


Version 3.0.1 *(2015-04-17)*
----------------------------
## [3.0.1] - 2015-04-17

* Fix: String formatting is now always applied when arguments are present. Previously it would
only trigger when an exception was included.


Version 3.0.0 *(2015-04-16)*
----------------------------
## [3.0.0] - 2015-04-16

* New: `Tree` and `DebugTree` APIs are much more extensible requiring only a single method to
override.
Expand All @@ -149,105 +151,130 @@ Version 3.0.0 *(2015-04-16)*
* Fix: Multiple planted `DebugTree`s now each correctly received tags set from a call to `tag`.


Version 2.7.1 *(2015-02-17)*
----------------------------
## [2.7.1] - 2015-02-17

* Fix: Switch method of getting calling class to be consistent across API levels.


Version 2.7.0 *(2015-02-17)*
----------------------------
## [2.7.0] - 2015-02-17

* New: `DebugTree` subclasses can now override `logMessage` for access to the priority, tag, and
entire message for every log.
* Fix: Prevent overriding `Tree` and `TaggedTree` methods on `DebugTree`.


Version 2.6.0 *(2015-02-17)*
----------------------------
## [2.6.0] - 2015-02-17

* New: `DebugTree` subclasses can now override `createTag()` to specify log tags. `nextTag()` is
also accessible for querying if an explicit tag was set.


Version 2.5.1 *(2015-01-19)*
----------------------------
## [2.5.1] - 2015-01-19

* Fix: Properly split lines which contain both newlines and are over 4000 characters.
* Explicitly forbid `null` tree instances.


Version 2.5.0 *(2014-11-08)*
----------------------------
## [2.5.0] - 2014-11-08

* New: `Timber.asTree()` exposes functionality as a `Tree` instance rather than static methods.


Version 2.4.2 *(2014-11-07)*
----------------------------
## [2.4.2] - 2014-11-07

* Eliminate heap allocation when dispatching log calls.


Version 2.4.1 *(2014-06-19)*
----------------------------
## [2.4.1] - 2014-06-19

* Fix: Calls with no message but a `Throwable` are now correctly logged.


Version 2.4.0 *(2014-06-10)*
----------------------------
## [2.4.0] - 2014-06-10

* New: `uproot` and `uprootAll` methods allow removing trees.


Version 2.3.0 *(2014-05-21)*
----------------------------
## [2.3.0] - 2014-05-21

* New: Messages longer than 4000 characters will be split into multiple lines.


Version 2.2.2 *(2014-02-12)*
----------------------------
## [2.2.2] - 2014-02-12

* Fix: Include debug level in previous fix which avoids formatting messages with no arguments.


Version 2.2.1 *(2014-02-11)*
----------------------------
## [2.2.1] - 2014-02-11

* Fix: Do not attempt to format log messages which do not have arguments.


Version 2.2.0 *(2014-02-02)*
----------------------------
## [2.2.0] - 2014-02-02

* New: verbose log level added (`v()`).
* New: `timber-lint` module adds lint check to ensure you are calling `Timber` and not `Log`.
* Fix: Specifying custom tags is now thread-safe.


Version 2.1.0 *(2013-11-21)*
----------------------------
## [2.1.0] - 2013-11-21

* New: `tag` method allows specifying custom one-time tag. Redux!


Version 2.0.0 *(2013-10-21)*
----------------------------
## [2.0.0] - 2013-10-21

* Logging API is now exposed as static methods on `Timber`. Behavior is added by installing `Tree`
instances for logging.


Version 1.1.0 *(2013-07-22)*
----------------------------
## [1.1.0] - 2013-07-22

* New: `tag` method allows specifying custom one-time tag.
* Fix: Exception-containing methods now log at the correct level.


Version 1.0.0 *(2013-07-17)*
----------------------------
## [1.0.0] - 2013-07-17

Initial cut. (Get it?)




[Unreleased]: https://github.com/JakeWharton/timber/compare/5.0.0...HEAD
[5.0.0]: https://github.com/JakeWharton/timber/releases/tag/5.0.0
[4.7.1]: https://github.com/JakeWharton/timber/releases/tag/4.7.1
[4.7.0]: https://github.com/JakeWharton/timber/releases/tag/4.7.0
[4.6.1]: https://github.com/JakeWharton/timber/releases/tag/4.6.1
[4.6.0]: https://github.com/JakeWharton/timber/releases/tag/4.6.0
[4.5.1]: https://github.com/JakeWharton/timber/releases/tag/4.5.1
[4.5.0]: https://github.com/JakeWharton/timber/releases/tag/4.5.0
[4.4.0]: https://github.com/JakeWharton/timber/releases/tag/4.4.0
[4.3.1]: https://github.com/JakeWharton/timber/releases/tag/4.3.1
[4.3.0]: https://github.com/JakeWharton/timber/releases/tag/4.3.0
[4.2.0]: https://github.com/JakeWharton/timber/releases/tag/4.2.0
[4.1.2]: https://github.com/JakeWharton/timber/releases/tag/4.1.2
[4.1.1]: https://github.com/JakeWharton/timber/releases/tag/4.1.1
[4.1.0]: https://github.com/JakeWharton/timber/releases/tag/4.1.0
[4.0.1]: https://github.com/JakeWharton/timber/releases/tag/4.0.1
[4.0.0]: https://github.com/JakeWharton/timber/releases/tag/4.0.0
[3.1.0]: https://github.com/JakeWharton/timber/releases/tag/3.1.0
[3.0.2]: https://github.com/JakeWharton/timber/releases/tag/3.0.2
[3.0.1]: https://github.com/JakeWharton/timber/releases/tag/3.0.1
[3.0.0]: https://github.com/JakeWharton/timber/releases/tag/3.0.0
[2.7.1]: https://github.com/JakeWharton/timber/releases/tag/2.7.1
[2.7.0]: https://github.com/JakeWharton/timber/releases/tag/2.7.0
[2.6.0]: https://github.com/JakeWharton/timber/releases/tag/2.6.0
[2.5.1]: https://github.com/JakeWharton/timber/releases/tag/2.5.1
[2.5.0]: https://github.com/JakeWharton/timber/releases/tag/2.5.0
[2.4.2]: https://github.com/JakeWharton/timber/releases/tag/2.4.2
[2.4.1]: https://github.com/JakeWharton/timber/releases/tag/2.4.1
[2.4.0]: https://github.com/JakeWharton/timber/releases/tag/2.4.0
[2.3.0]: https://github.com/JakeWharton/timber/releases/tag/2.3.0
[2.2.2]: https://github.com/JakeWharton/timber/releases/tag/2.2.2
[2.2.1]: https://github.com/JakeWharton/timber/releases/tag/2.2.1
[2.2.0]: https://github.com/JakeWharton/timber/releases/tag/2.2.0
[2.1.0]: https://github.com/JakeWharton/timber/releases/tag/2.1.0
[2.0.0]: https://github.com/JakeWharton/timber/releases/tag/2.0.0
[1.1.0]: https://github.com/JakeWharton/timber/releases/tag/1.1.0
[1.0.0]: https://github.com/JakeWharton/timber/releases/tag/1.0.0
32 changes: 30 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,38 @@ Download
--------

```groovy
implementation 'com.jakewharton.timber:timber:4.7.1'
repositories {
mavenCental()
}
dependencies {
implementation 'com.jakewharton.timber:timber:5.0.0'
}
```

Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap].
Documentation is available at [jakewharton.github.io/timber/docs/5.x/](https://jakewharton.github.io/timber/docs/5.x/).

<details>
<summary>Snapshots of the development version are available in Sonatype's snapshots repository.</summary>
<p>

```groovy
repositories {
mavenCental()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
dependencies {
implementation 'com.jakewharton.timber:timber:5.1.0-SNAPSHOT'
}
```

Snapshot documentation is available at [jakewharton.github.io/timber/docs/latest/](https://jakewharton.github.io/timber/docs/latest/).

</p>
</details>


License
Expand Down
Loading

0 comments on commit 1762be3

Please sign in to comment.