Skip to content

1.2.0-rc.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@kelvinst kelvinst released this 24 Nov 21:57
· 20 commits to master since this release
ea41395

This is the release candidate for triplex new version!

Hope to get an official review in a week or two!

Changelog

In short, this release has this three main changes:

  • Plug as an optional dependency, so if you don't use any plug on your app, triplex will not add this dependency on your project.
  • The support for using triplex on OTP releases, which I really didn't know we had a problem with, but now, thanks to @dustinfarris, we do not have it anymore! PS: if anyone does need this correction on a 1.1 patch release, please let me know.
  • Docs and README improved.
  • Refactors on plug configs and method return values.

The PR's in this release are:

Thanks for all your work @dustinfarris!

Breaking changes

For those who wonder, there were not big changes, but here is the list of what can break on your code.

1. Some method return values changed on PR #42

If you use any of the second element of the return on the following methods, be sure to check if they still work:

  • Triplex.create_schema/3 - this method was returning either the given func result (the 3rd param), which could be pretty much anything, or the result of a Ecto.Adapters.SQL.query/4 call, which also can change depending on ecto's version. Now it returns {:ok, tenant}, where tenant is the name of the tenant.

If you need your func result, you can change your code as follows:

# This
case Triplex.create_schema("test", Repo, your_func) do
  {:ok, func_return} -> func_return
  {:error, reason} -> raise reason
end
# Becomes this
with {:ok, _} <- Triplex.create_schema("test", Repo),
     {:ok, func_return} <- your_func.("test", Repo) do
  func_return
else
  {:error, reason} -> raise reason
end
  • Triplex.create/2 - this method was returning {:ok, migrations}, where migrations was the list of migrations ran (which could be even an empty list). This changed because this method actually just delegates to Triplex.create_schema/3 sending Triplex.migrate/2 as the fun, so now it returns {:ok, tenant} as well.

So if you need the migrations ran, here is how you should do:

# This
case Triplex.create("test", Repo) do
  {:ok, migrations} -> migrations
  {:error, reason} -> raise reason
end
# Becomes this
with {:ok, _} <- Triplex.create_schema("test", Repo),
     {:ok, migrations} <- Triplex.migrate("test", Repo) do
  migrations
else
  {:error, reason} -> raise reason
end

2. Refactored Triplex.PlugConfig on #43

This was a restructuring on the plugs configuration, which was only one configuration for all the plugs and now we changed to specific configs for each plug type.

This only affects you if you were using the module Triplex.PlugConfig (which was completely removed) explicitly, otherwise you should be ok!