All Versions
29
Latest Version
Avg Release Cycle
88 days
Latest Release
-

Changelog History
Page 1

  • v1.6.0 Changes

    • ➕ Add support for Elixir 1.11. Drop support for Elixir 1.7. Elixir >= 1.8 is now required. Dropping support for older versions of Elixir simply means that this package is no longer tested with them in CI, and that compatibility issues are not considered bugs.
    • 🚀 More internal changes to not compile in the package configuration. Removed compile-time references to the Ecto repo and the Ecto table name. See the release notes for v1.5.1 (below) for more details on this type of changes.
    • ⚡️ Ecto and Postgres persistence: when updating percentage gates, use a flag-scoped advisory lock rather than locking the entire table. With the old system the entire table was locked when setting or changing any percentage gate, across all flags. With this change, the lock is scoped to one flag and the table is never fully locked.
    • 📦 Dev and test fixes to support Phoenix.PubSub on OTP 23 and Elixir >= 1.10.3. This was only an issue when working locally, and there should be no problems when using the previous version of the package in a host application.
    • ⚡️ Update Redix to 1.0. As its changelog says this doesn't introduce breaking changes, but it's a major version bump that should be documented here, as it will require changes in the host applications mix files.
  • v1.5.2 Changes

    • 📦 Dev and test fixes to support Phoenix.PubSub on OTP 23 and Elixir >= 1.10.3. This was only an issue when working locally, and there should be no problems when using the previous version of the package in a host application.
  • v1.5.1 Changes

    May 02, 2020
    • 🔧 Internal changes to not compile in the persistence adapter config. This has no effect on the functionality of the package, but now the Ecto or Redis adapter configurantion is not memoized anymore, and it can be changed with no need to recompile the package.
  • v1.5.0 Changes

    April 26, 2020
    • ⬇️ Drop support for Elixir 1.6. Elixir >= 1.7 is now required.
    • ⬇️ Drop support for Erlang/OTP 20, and Erlang/OTP >= 21 is now required. An older Erlang/OTP might still work with older versions of Elixir, but Elixir 1.10 requires Erlang/OTP >= 21. Dropping support for older versions of Erlang/OTP simply means that this package is not tested with them in CI, and that no compatibility issues are considered bugs.
    • ⬆️ Upgrade Phoenix.PubSub dependency to 2.0. This provides compatibility with Phoenix 1.5.
    • Typespec improvements. (Thanks skylerparr, pull/57)
    • 🚀 Internal changes to how flag data is cached in the ETS table. This has no effect on the functionality of the package, with two exceptions. First, the cache: [ttl: seconds] config value is not memoized anymore and it can be changed without recompiling. Second, since the TTL is now stored with the ETS entries, old and new ETS data is not compatible; this is not an issue if you restart/rotate your application nodes/instances when deploying, but it will be an issue if you perform hot code upgrades. In that case, you have to first empty the ETS table, for example with FunWithFlags.Store.Cache.flush/0.
    • New config option to set a custom name for the DB table when using the Ecto persistence adapter. (Thanks BobbyMcWho, pull/64 and pull/77)
  • v1.4.1 Changes

    November 21, 2019
  • v1.4.0 Changes

    May 15, 2019

    🚀 This release focuses on making it easier to extend the package, for example with custom persistence adapters.

    • Define a behaviour in the FunWithFlags.Store.Persistence module that can be implemented by custom persistence adapters. The builtin Redis and Ecto adapters now formally implement this new behaviour.
    • ♻️ Refactor how cache-busting change notifications are published: move the logic out of the two builtin persistence adapters and into the level above them. While this is just an internal change, it narrows the responsibilities of the persistence adapters and simplifies implementing custom ones.
    • 💅 Update the supervision tree to use Elixir v1.5 style child specs.
    • 🔧 Print a helpful error if a project is configured to use a persistence adapter without including its dependency packages. This mirrors what happens when the dependencies for a notifications adapter are missing.
    • Document the Flag and Gate types, previously private.
    • 🚀 Redis persistence: relax Redix version lock to ~> 0.9, which allows to use Redix 0.10. It was previously locked to ~> 0.9.1 because of breaking changes in the last few Redix minor version releases, but going forward if it happens again it can be handled with a patch level release on FunWithFlags.
  • v1.3.0 Changes

    April 13, 2019
    • 🗄 Ecto persistence: added support for MySQL, via either mariaex or myxql. While both are working today, the test suite uses myxql because ecto_sql is going to deprecate the mariaex adapter in the future. (Thanks stewart for starting this work with pull/41 and for helping out on pull/42).
  • v1.2.1 Changes

    February 20, 2019
    • Fix invalid typespec that was causing compiler warnings on Elixir 1.8. (Thanks asummers, pull/34)
  • v1.2.0 Changes

    January 24, 2019
    • ⬆️ Redis persistence: upgrade to Redix 0.9, which deprecates Redix.PubSub. The pubsub capabilities are now part of the base Redix package. This means that FunWithFlags also needs to drop the dependency on Redix.PubSub.
    • ⚡️ Compatibility updates in the tests for Elixir 1.8.

    🚀 There is no other change in this release, but this is a minor version bump because upgrading Redix and dropping Redix.PubSub will require applications to also update their dependencies.

  • v1.1.0 Changes

    November 07, 2018
    • ⬇️ Drop support for Elixir 1.5. Elixir >= 1.6 is now required.
    • ⬇️ Drop support for OTP 19. OTP >= 20 is now required.
    • ⚡️ Update to Ecto 3 with the ecto_sql package.
    • ⚡️ Update to Redix 0.8 and Redix.PubSub 0.5.
    • Ecto persistence: add NOT NULL constraints to the table definition in the Ecto migration. This is not a breaking change: the constraints have been added because those values are never null anyway. If users of the library want to add them, they can do so by adding this migration to their projects.
    • Redis persistence: allow to configure the Redis URL with a system tuple to read it from an environment variable. (Thanks seangeo, pull/29)