Skip to content

Latest commit

History

History
559 lines (441 loc) 路 23 KB

CHANGELOG.md

File metadata and controls

559 lines (441 loc) 路 23 KB

Change Log

This file follows Keepachangelog format. Please add your entries according to this format.

Unreleased

Added

  • Add skipPaths to selectively skip requests from Chucker #970
  • Add syntax highlighting to the request/response body when is JSON #930
  • Decoding of request and response bodies can now be customized. In order to do this a BodyDecoder interface needs to be implemented and installed in the ChuckerInterceptor via ChuckerInterceptor.addBinaryDecoder(decoder) method. Decoded bodies are then displayed in the Chucker UI. #555
  • Create dynamic shortcut when ChuckerInterceptor added. Users can opt out of this feature using createShortcut(false) in ChuckerInterceptor.Builder #588
  • Brotli compression support #563
  • Added writeTransactions method to ChuckerCollector to export transactions to a file programmatically #784
  • Added ability to save single transaction as .har file. #696
  • Added ability to export list of transactions as .har file. #880
  • Added support for Android 13 and notifications permission handling #887
  • GraphQL
    • Add support for GraphQL #805 #884
    • Show GraphQL OperationName header to transaction title #69, #116
    • Allows to filter transactions based on graphqlOperationName #920

Fixed

  • Fixed a bug showing empty bodies as encoded or binary #569 #562
  • Fixed DiskReadViolation on ChuckerCollector #975
  • Fixed request headers not being redacted in case of failures #545.
  • Fixed wrongful processing of one shot and duplex requests #544.
  • Fixed writing to database on the main thread #487.
  • Fixed RTL issue in payload view #733
  • Fixed StrictMode ThreadPolicy violations #737
  • Fixed Memory Leak with Toasts: Use applicationContext instead of Activity #810

Removed

  • Removed parametrized ChuckerInterceptor constructor in favour of builder pattern. Constructor that accepts only Context is still available.
  • Removed the Throwable reporting feature as well as all the @Deprecated related methods.

Changed

  • Updated OkHttp to 4.9.3
  • Updated Material to 1.8.0
  • Updated AGP to 8.0.0
  • Updated Kotlin to 1.8.20

Version 3.5.2 (2021-07-28)

This release is a re-deployment of 3.5.1, since 3.5.1 aar didn't upload properly on Maven Central.

Version 3.5.1 (2021-07-19)

Note: this release wasn't properly uploaded to Maven Central, so update to a newer verion is required.

Fixed

  • Fix crash on Android 12 due to missing immutability flags in deprecated error reporting feature #653.

Version 3.5.0 (2021-06-29)

Note: this release has issue with Android 12 support, so update to 3.5.2 is highly recommended.

Added

  • Android 12 support.

Fixed

  • Fix crash on Android 12 due to missing immutability flags #593.
  • Fix not setting request body type correctly #538.

Version 3.4.0 (2020-11-05)

Added

  • ChuckerInterceptor.Builder for fluent creation of the interceptor. It will also help us with preserving binary compatibility in future releases of 4.x. [#462]

Changed

  • Bumped targetSDK and compileSDK to 30 (Android 11).

Removed

  • kotlin-android-extensions plugin for better compatibility with Kotlin 1.4.20.

Fixed

  • Fixed memory leak in MainActivity #465.
  • Fixed GzipSource is not closed error reported by StrictMode #472.
  • Fixed build failure for projects with new kotlin-parcelize plugin #480.

Deprecated

  • ChuckerInterceptor constructor is now deprecated. Unless Context is the only parameter that you pass into the constructor you should migrate to builder.

Version 3.3.0 (2020-09-30)

This is a new minor release with multiple fixes and improvements. After this release we are starting to work on a new major release 4.x with minSDK 21. Bumping minSDK to 21 is required to keep up with newer versions of OkHttp. Versions 3.x will be supported for 6 months (till March 2021) getting bugfixes and minor improvements.

Summary of changes

  • Added a new flag alwaysReadResponseBody into Chucker configuration to read the whole response body even if consumer fails to consume it.
  • Added port numbers as part of the URL. Numbers appear if they are different from default 80 or 443.
  • Chucker now shows partially read application responses properly. Earlier in 3.2.0 such responses didn't appear in the UI.
  • Transaction size is defined by actual payload size now, not by Content-length header.
  • Added empty state UI for payloads, so no more guessing if there is some error or the payload is really empty.
  • Added ability to export list of transactions.
  • Added ability to save single transaction as file.
  • Added ability to format URL encoded forms with button to switch between encoded/decoded URLs.
  • Added generation of contrast background for image payload to distinguish Chucker UI from the image itself.
  • Switched OkHttp dependency from implementation to api, since it is available in the public API.
  • List items are now focusable on Android TV devices.
  • Further improved test coverage.

Deprecations

  • Throwables capturing feature is officially deprecated and will be removed in next releases. More info in #321.

Bugfixes

  • Fixed #311 with leaking Closable resource.
  • Fixed #314 with overlapping UI on some device.
  • Fixed #367 with empty shared text when Don't keep activities is turned on.
  • Fixed #366 with crash when process dies.
  • Fixed #394 with failing requests when FileNotFound error happens.
  • Fixed #410 with conflicts when other apps already use generic FileProvider.
  • Fixed #422 with IOException.

Dependency updates

  • Added Fragment-ktx 1.2.5
  • Added Palette-ktx 1.0.0
  • Updated Kotlin to 1.4.10
  • Updated Android Gradle plugin to 4.0.1
  • Updated Coroutine to 1.3.9
  • Updated AppCompat to 1.2.0
  • Updated ConstraintLayout to 2.0.1
  • Updated MaterialComponents to 1.2.1
  • Updated Gradle to 6.6.1

Credits

This release was possible thanks to the contribution of:

@adb-shell @cortinico @djrausch @gm-vm @JayNewstrom @MiSikora @vbuberen @psh

Version 3.2.0 (2020-04-04)

This is a new minor release with numerous internal changes.

Summary of changes

  • Chucker won't load the whole response into memory anymore, but will mutlicast it with the help of temporary files. It allows to avoid issues with OOM, like in reported in #218. This change also allows to avoid problems with Chucker consuming responses, like reported in #242.
  • Added a red open padlock icon to clearly indicate HTTP requests in transactions list.
  • Added TLS info (version and cipher suite) into Overview tab.
  • Added ability to encode/decode URLs.
  • Added RTL support.
  • Switched from AsyncTasks to Kotlin coroutines.
  • Switched to ViewBinding.
  • Bumped targetSDK to 29.
  • Greatly increased test coverage (we will add exact numbers and reports pretty soon).

Bugfixes

  • Fix for #218 with OOM exceptions on big responses.
  • Fix for #242 with Chucker throwing exceptions when used as networkInterceptor().
  • Fix for #240 with HttpHeader serialisation exceptions when obfuscation is used.
  • Fix for #254 with response body search being case-sensitive.
  • Fix for #255 with missing search icon on Response tab.
  • Fix for #241 with overlapping texts.

Dependency updates

  • Added kotlinx-coroutines-core 1.3.5
  • Added kotlinx-coroutines-android 1.3.5
  • Updated Kotlin to 1.3.71
  • Updated Android Gradle plugin to 3.6.1
  • Updated Room to 2.2.5
  • Updated OkHttp to 3.12.10
  • Updated Detekt to 1.7.3
  • Updated Dokka to 0.10.1
  • Updated KtLint plugin to 9.2.1
  • Updated MaterialComponents to 1.1.0
  • Updated Gradle to 6.3

Credits

This release was possible thanks to the contribution of:

@adammasyk @cortinico @CuriousNikhil @hitanshu-dhawan @MiSikora @technoir42 @vbuberen

Version 3.1.2 (2020-02-09)

This is hot-fix release to fix multiple issues introduced in 3.1.0.

Summary of Changes

  • All Chucker screens now have their own ViewModel. Due to this change user can now open the transaction in progress and the content will appear as soon as transaction finishes. No need for reopening transaction anymore.

Bugfixes

  • Fixed an issue introduced in 3.1.0 where image downloading fails if OkHttp was used for image loading in libraries like Glide, Picasso or Coil.
  • Fixed an issue with invalid CURL command generation.
  • Fixed an issue with crashes if ProGuard/R8 minification is applied to Chucker.
  • Fixed an issue with crash when user taps Save in a transaction, which is still in progress.
  • Fixed an issue with crash when user taps Clear from notification shade while the original app is already dead.
  • Fixed an issue with possible NPEs.

Credits

This release was possible thanks to the contribution of:

@MiSikora @vbuberen

Version 3.1.1 (2020-01-25)

This is hot-fix release to fix issue introduced in 3.1.0.

Summary of Changes

  • Fixed an issue introduced in 3.1.0 where some of response bodies were shown as null and their sizes were 0 bytes.

Credits

This release was possible thanks to the contribution of:

@cortinico

Version 3.1.0 (2020-01-24)

This version shouldn't be used as dependency due to #203. Use 3.1.1 instead.

This is a new minor release of Chucker. Please note that this minor release contains multiple new features (see below) as well as multiple bugfixes.

Summary of Changes

  • The library is now fully converted to Kotlin and migrated to AndroidX!
  • The whole UI has been revamped to support Dark Theme which follows your device theme.
  • The Response/Request Body is now displayed in a RecyclerView, drastically improving performances on big payloads.
  • HTTP Response/Request Body can now be saved in file.
  • Notifications for Throwable and HTTP Traffic are now going into separate channels.
  • A lot of classes inside the .internal package have restricted visibility (from public to internal). Also, resources like strings, dimens and drawables from Chucker won't appear in your autocomplete suggestions.

Bugfixes

  • Fixed ANRs during big response payloads processing.
  • Fixed contentType response formatting.
  • Fixed notifications importance in Android Q.
  • Fixed date formatting in transaction overview.
  • Fixed visibility of internal library classes and resources.
  • Fixed XML formatting crash

Dependency Updates

  • Updated Kotlin to 1.3.61
  • Updated Retrofit to 2.6.4
  • Updated Room to 2.2.3
  • Updated OkHttp to 3.12.6
  • Updated Gson to 2.8.6
  • Updated Dokka to 0.10.0
  • Updated KtLint to 9.1.1
  • Updated Gradle wrapper to 6.1
  • Updated Android Gradle plugin to 3.5.3

Credits

This release was possible thanks to the contribution of:

@christopherniksch @yoavst @psh @kmayoral @vbuberen @dcampogiani @ullas-jain @rakshit444 @olivierperez @p-schneider @Volfor @cortinico @koral-- @redwarp @uOOOO @sprohaszka @PaulWoitaschek

Version 3.0.1 (2019-08-16)

This is a hotfix release for Chucker 3.0.0.

Summary of Changes

  • Fix: #96 Limit size of binary image to 1 million bytes.

Credits

This release was possible thanks to the contribution of: @redwarp

Version 3.0.0 (2019-08-12)

This is a new major release of Chucker. Please note that this major release contains multiple new features (see below) as well as several breaking changes. Please refer to the migration guide if you need support in migrating from 2.x -> 3.0.0 or feel free to open an issue.

Summary of Changes

  • Chucker DB is now using Room instead of Cupboard as ORM.
  • The public api of Chucker (classes in com.chuckerteam.chucker.api) is now rewritten in Kotlin.
  • Classes inside the .internal package should now not be considered part of the public api and expect them to change without major version bump.
  • Removed usage of okhttp3.internal methods.
  • General UI update of the library (new using ConstraintLayout)
  • Added support to render images in Response page.
  • Added support to search and highlight text in the Http Response body.
  • We moved the artifact from JCenter to JitPack

Contributors

This release was possible thanks to the contribution of:

@alorma @Ashok-Varma @cortinico @koral-- @olivierperez @OlliZi @PaulWoitaschek @psh @redwarp @uOOOO

Version 2.0.4 (2019-05-18)

  • Fix: #27 no-op Chuck#init method is missing

Version 2.0.3 (2018-11-28)

  • Fix: #20 Changed SqLite DB Version Number 3 -> 4

Version 2.0.2 (2018-11-14)

  • Fix: #5 Empty Content-Encoding are allowed again

Version 2.0.1 (2018-11-05)

  • New: Adds a class ChuckCollector that can be used out of ChuckInterceptor.
  • New: Chucker can now collect throwables.
  • New: Adds a notification for throwables.
  • New: Adds screens for throwables.
  • New: Transaction class offers a fluent writing.
  • New: Adds Chuck.registerDefaultCrashHanlder for debugging purpose only.
  • Breaking: Chuck.getLaunchIntent needs one more parameter.
  • Breaking: Built with Android plugin 3.1.x.
  • Breaking: Target SDK version 27.
  • Breaking: Support library 27.1.1.
  • Breaking: API classes are now in package api.
  • Misc: Move some internal classes.

Version 1.1.0 (2017-08-06)

  • Fix: Supports apps targeting Android O (API 26).

Version 1.0.4 (2017-02-22)

  • New: Displays uncompressed gzip encoded request/response bodies when used as a network interceptor.

Version 1.0.3 (2017-02-14)

  • New: Adds a maximum content length threshold, beyond which bodies are truncated.
  • New: Adds a data retention length property and cleanup task.
  • New: Adds a clear action to the notification.
  • Fix: Mitigates against CursorWindow blowout when transactions are large.

Version 1.0.2 (2017-02-10)

  • Fix: Added Proguard rule for compat SearchView.
  • Fix: Null search query displaying invalid results.

Version 1.0.1 (2017-02-09)

  • New: Adds a search action which filters on request path or response code.
  • New: Adds a transaction count to the notification.
  • Fix: Limits the size of the static transaction buffer correctly.

Version 1.0.0 (2017-02-07)

Initial release.