Skip to content

Releases: whitfin/cachex

v4.0.3

24 Nov 03:01
Compare
Choose a tag to compare

This is small release to fix an issue with router node monitoring.

Fixes:

  • Resolve an issue with node exclusions inside Ring routers

Please file an issue if there are any further problems!

v4.0.2

14 Oct 03:36
Compare
Choose a tag to compare

This is a very small release to fix some invalid formats when starting a cache.

Fixes:

  • Added support for various Supervisor shorthands

Please feel free to report any issues!

v4.0.1

07 Oct 21:48
Compare
Choose a tag to compare

This is a very small documentation release for the migration guide.

Improvements:

  • Add documentation about :state -> :args in hook definitions.

Please continue to report any other documentation changes!

v4.0.0

30 Sep 04:53
Compare
Choose a tag to compare

Cachex v4.0.0 is a large release which includes many new features and breaking changes.

Please see the migration guide if you need any assistance in upgrading your application to the latest version.

If you're interested, you can read the corresponding blog post.

Fixes:

  • Fixed another round of Dialyzer warnings
  • Fixed a case where the Courier service could hang
  • Fixed a case where hooks were not storing modified state
  • Fixed an issue where fetching could run multiple times simultaneously
  • Fixed an issue where Janitor runs would broadcast hooks twice

Features:

  • Added new Cachex.Limit.Accessed hook to enable LRU caching
  • Added new Cachex.Router behaviour and functionality
  • Added new Cachex.Router.Ring router for distributed caches
  • Added new Cachex.prune/3 to enable manual cache pruning
  • Added new Cachex.warm/2 to enable manual cache warming
  • Added new lazy initialized to cache janitors
  • Added new query support inside Cachex.Query
  • Combined Cachex.count/2 and Cachex.size/2
  • Rewritten all documentation for readability

Improvements:

  • Added new service to centralize provisioning of hooks
  • Added support for provisioning warmers and services
  • Added support for :ordered tables in cache options
  • Cleaned up the Janitor service for improved performance
  • Cleaned up limit application and removed policies
  • Cleaned up vague naming inside cache entries
  • Cleaned up various poor naming choices for options
  • Enabled local only actions to be called with local: true
  • Enabled custom name registration for cache warmers
  • Enabled triggering cache hooks from cache warmers
  • Raised the minimum Elixir requirement to v1.7
  • Reduced documentation noise from internal modules
  • Removed all use of :qlc with simple :ets operations
  • Removed several deprecated APIs (finally!)
  • Removed unnecessary macro complexity from Cachex.Router
  • Renamed Cachex.dump/2 to Cachex.save/3
  • Renamed Cachex.load/2 to Cachex.restore/3
  • Updated CI infrastructure and tested versions
  • Updated test infrastructure, structure and helpers
  • Updated benchmarking suite for better performance metrics

As this is a new major release, there may be subtle bugs and issues which snuck in.

Please do not hesitate to file issues and/or provide your feedback/suggestions!

v3.6.0

06 Feb 19:25
Compare
Choose a tag to compare

Cachex v3.6.0 is a small feature release with improvements to fallback caching.

Fixes:

  • Fixed a wrong definition in TTL documentation.

Improvements:

  • Added support for setting expiration inside fetch/4.
  • Added support for setting expiration inside get_and_update/4.
  • Removed unnecessary macros in cache action handling.
  • Simplified evented vs. scheduled LRW interfaces.
  • Updated documentation alongside fetch/4 changes.

Please let me know if you find any issues or have any suggestions!

v3.5.0

10 Jan 07:28
Compare
Choose a tag to compare

Cachex v3.5.0 is a small feature release containing many quality-of-life changes inside the repository and API.

Fixes:

  • Corrected several documentation typos in public documentation.
  • Fixed a missing import in Cachex.Warmer macros.
  • Fixed fetch/4 to correctly represent results across processes.

Improvements:

  • Added support for non-blocking cache warmers during startup.
  • Added support for passing inner stacktraces from calls to fetch/4.
  • Applied official formatting tools to the repository (mix format).
  • Optimized hook/policy interfaces and removed unnecessary APIs.
  • Optimized Cachex.Policy.LRW handling to lower monitoring overhead.
  • Updated all dependencies to latest versions.
  • Updated CI builds against latest versions.

Sorry this one took so long to package up and ship out, please let me know if you find any issues or have any suggestions!

v3.4.0

02 Jun 17:46
Compare
Choose a tag to compare

Cachex v3.4.0 is a very small set of changes with a couple of fixes and improvements.

Fixes:

  • Corrected several documentation typos in public documentation.
  • Corrected various specifications causing dialyzer warnings.
  • Fixed a bunch of deprecation warnings raised in Elixir v1.5 through v1.12.

Improvements:

  • Added support for :trusted flags when loading cache backups.
  • Allowed Elixir to manage :applications automatically.
  • Migrated away from Travis CI to Github Actions.
  • Raised the minimum Elixir requirement to v1.5.

Please make sure to file any issues found!

v3.3.0

13 Aug 17:25
Compare
Choose a tag to compare

Cachex v3.3.0 is a minor release with a couple of new features and various improvements.

Fixes:

  • Fixed a missing application in the project configuration.
  • Fixed an incorrect type specification in expiration records.

Improvements:

  • Added latest Elixir/OTP builds to the CI matrix.
  • Added new signatures for compatibility with latest Supervisor standards.
  • Improved some type specifications for Dialyzer.
  • Improved consistency of cache warmer initialization.
  • Improved documentation around expiration options.
  • Updated all dependencies to their latest versions.

Please make sure to file any issues found!

v3.2.0

02 Aug 17:37
Compare
Choose a tag to compare

Cachex v3.2.0 is a minor release with a couple of new features and various improvements.

Fixes:

  • Fixes a broken return signature in execute/3.
  • Various fixes for typespecs and documentation.

Improvements:

  • Added new Elixir/OTP versions to CI builds.
  • Added some missing benchmark functions.
  • Introduced the ability to import to a cache via import/3.
  • Introduced the ability to enable ETS table compression.
  • Updated all dependencies to their latest versions.

Please make sure to file any issues found!

v3.1.3

01 Feb 22:30
Compare
Choose a tag to compare

This is a minor release to fix an issue with Distillery builds.

Fixes:

  • Ensure all applications are correctly listed in mix.exs.

Please report any issues found!