Skip to content

Commit f7b3d49

Browse files
committed
Remove deprecations and up requirements
New minimum: - Elixir 1.7 - Ecto 3.0 - Phoenix 1.4
1 parent 9932d7f commit f7b3d49

File tree

37 files changed

+84
-1039
lines changed

37 files changed

+84
-1039
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ services:
66
jobs:
77
include:
88
- stage: test
9-
elixir: 1.6
9+
elixir: 1.7
1010
otp_release: 20.0
1111
script: &test_scripts
1212
- mix test
13-
- MIX_ENV=test mix credo --ignore design.tagtodo
13+
- MIX_ENV=test mix credo
1414
- stage: test
1515
elixir: 1.8
1616
script: *test_scripts

CHANGELOG.md

Lines changed: 40 additions & 284 deletions
Large diffs are not rendered by default.

lib/extensions/persistent_session/plug/cookie.ex

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,6 @@ defmodule PowPersistentSession.Plug.Cookie do
234234
|> plug.do_create(user, config)
235235
end
236236
end
237-
# TODO: Remove by 1.1.0
238-
defp fetch_and_auth_user(conn, user_id, plug, config),
239-
do: fetch_and_auth_user(conn, {user_id, []}, plug, config)
240237

241238
defp filter_invalid!([id: _value] = clauses), do: clauses
242239
defp filter_invalid!(clauses), do: raise "Invalid get_by clauses stored: #{inspect clauses}"
@@ -264,7 +261,7 @@ defmodule PowPersistentSession.Plug.Cookie do
264261
defp update_session_metadata(conn, metadata) do
265262
case Keyword.get(metadata, :session_metadata) do
266263
nil ->
267-
fallback_session_fingerprint(conn, metadata)
264+
conn
268265

269266
session_metadata ->
270267
metadata = Map.get(conn.private, :pow_session_metadata, [])
@@ -273,22 +270,6 @@ defmodule PowPersistentSession.Plug.Cookie do
273270
end
274271
end
275272

276-
# TODO: Remove by 1.1.0
277-
defp fallback_session_fingerprint(conn, metadata) do
278-
case Keyword.get(metadata, :session_fingerprint) do
279-
nil ->
280-
conn
281-
282-
fingerprint ->
283-
metadata =
284-
conn.private
285-
|> Map.get(:pow_session_metadata, [])
286-
|> Keyword.put(:fingerprint, fingerprint)
287-
288-
Conn.put_private(conn, :pow_session_metadata, metadata)
289-
end
290-
end
291-
292273
defp cookie_id(config) do
293274
uuid = UUID.generate()
294275

@@ -311,17 +292,8 @@ defmodule PowPersistentSession.Plug.Cookie do
311292
end
312293

313294
defp max_age(config) do
314-
# TODO: Remove by 1.1.0
315-
case Config.get(config, :persistent_session_cookie_max_age) do
316-
nil ->
317-
config
318-
|> PowPersistentSession.Plug.Base.ttl()
319-
|> Integer.floor_div(1000)
320-
321-
max_age ->
322-
IO.warn("use of `:persistent_session_cookie_max_age` config value in #{inspect unquote(__MODULE__)} is deprecated, please use `:persistent_session_ttl`")
323-
324-
max_age
325-
end
295+
config
296+
|> PowPersistentSession.Plug.Base.ttl()
297+
|> Integer.floor_div(1000)
326298
end
327299
end

lib/extensions/reset_password/ecto/context.ex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,4 @@ defmodule PowResetPassword.Ecto.Context do
1212
|> Schema.reset_password_changeset(params)
1313
|> Context.do_update(config)
1414
end
15-
16-
# TODO: Remove by 1.1.0
17-
@deprecated "Use `PowResetPassword.Ecto.Schema.reset_password_changeset/2` instead"
18-
def password_changeset(user, params), do: Schema.reset_password_changeset(user, params)
1915
end

lib/mix/pow.ex

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,6 @@ defmodule Mix.Pow do
1616
:ok
1717
end
1818

19-
# TODO: Remove by 1.1.0
20-
@doc false
21-
@deprecated "Use `ensure_ecto!` or `ensure_phoenix!` instead"
22-
@spec ensure_dep!(binary(), atom(), OptionParser.argv()) :: :ok | no_return
23-
def ensure_dep!(task, dep, _args) do
24-
fetch_deps()
25-
|> top_level_dep_in_deps?(dep)
26-
|> case do
27-
true ->
28-
:ok
29-
30-
false ->
31-
Mix.raise("mix #{task} can only be run inside an application directory that has #{inspect dep} as dependency")
32-
end
33-
end
34-
3519
@doc """
3620
Raises an exception if application doesn't have Ecto as dependency.
3721
"""
@@ -53,15 +37,7 @@ defmodule Mix.Pow do
5337
end)
5438
end
5539

56-
# TODO: Remove by 1.1.0 and only support Elixir 1.7
57-
defp fetch_deps do
58-
System.version()
59-
|> Version.match?("~> 1.6.0")
60-
|> case do
61-
true -> apply(Dep, :loaded, [[]])
62-
false -> apply(Dep, :load_on_environment, [[]])
63-
end
64-
end
40+
defp fetch_deps, do: Dep.load_on_environment([])
6541

6642
@doc """
6743
Raises an exception if application doesn't have Phoenix as dependency.
@@ -147,36 +123,12 @@ defmodule Mix.Pow do
147123
""")
148124
end
149125

150-
# TODO: Remove by 1.1.0
151-
@doc false
152-
@deprecated "Please use `Pow.Phoenix.parse_structure/1` instead"
153-
@spec context_app :: atom() | no_return
154-
def context_app do
155-
this_app = otp_app()
156-
157-
this_app
158-
|> Application.get_env(:generators, [])
159-
|> Keyword.get(:context_app)
160-
|> case do
161-
nil -> this_app
162-
false -> Mix.raise("No context_app configured for current application")
163-
{app, _path} -> app
164-
app -> app
165-
end
166-
end
167-
168126
@doc false
169127
@spec otp_app :: atom() | no_return
170128
def otp_app do
171129
Keyword.fetch!(Mix.Project.config(), :app)
172130
end
173131

174-
# TODO: Remove by 1.1.0
175-
@doc false
176-
@deprecated "Use `app_base/1` instead"
177-
@spec context_base(atom()) :: atom()
178-
def context_base(app), do: app_base(app)
179-
180132
@doc """
181133
Fetches the context base module for the app.
182134
"""

lib/mix/pow/ecto/migration.ex

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ defmodule Mix.Pow.Ecto.Migration do
22
@moduledoc """
33
Utilities module for ecto migrations in mix tasks.
44
"""
5-
alias Mix.Generator
6-
7-
# TODO: Remove by 1.1.0
8-
@doc false
9-
@deprecated "Use `create_migration_file/3`"
10-
defdelegate create_migration_files(repo, name, content), to: __MODULE__, as: :create_migration_file
5+
alias Mix.{EctoSQL, Generator}
116

127
@doc """
138
Creates a migration file for a repo.
@@ -17,7 +12,7 @@ defmodule Mix.Pow.Ecto.Migration do
1712
base_name = "#{Macro.underscore(name)}.exs"
1813
path =
1914
repo
20-
|> source_repo_priv()
15+
|> EctoSQL.source_repo_priv()
2116
|> Path.join("migrations")
2217
|> maybe_create_directory()
2318
timestamp = timestamp(path)
@@ -68,14 +63,4 @@ defmodule Mix.Pow.Ecto.Migration do
6863

6964
defp pad(i) when i < 10, do: <<?0, ?0 + i>>
7065
defp pad(i), do: to_string(i)
71-
72-
# TODO: Remove by 1.1.0 and only use Ecto 3.0
73-
defp source_repo_priv(repo) do
74-
mod =
75-
if Pow.dependency_vsn_match?(:ecto, "< 3.0.0"),
76-
do: Mix.Ecto,
77-
else: Mix.EctoSQL
78-
79-
mod.source_repo_priv(repo)
80-
end
8166
end

lib/pow.ex

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
11
defmodule Pow do
22
@moduledoc false
3-
4-
@doc """
5-
Checks for version requirement in dependencies.
6-
"""
7-
@spec dependency_vsn_match?(atom(), binary()) :: boolean()
8-
def dependency_vsn_match?(dep, req) do
9-
case :application.get_key(dep, :vsn) do
10-
{:ok, actual} ->
11-
actual
12-
|> List.to_string()
13-
|> Version.match?(req)
14-
15-
_any ->
16-
false
17-
end
18-
end
193
end

lib/pow/ecto/context.ex

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -236,17 +236,9 @@ defmodule Pow.Ecto.Context do
236236
end
237237
end
238238

239-
# TODO: Remove by 1.1.0
240-
@deprecated "Use `Pow.Config.repo!/1` instead"
241-
defdelegate repo(config), to: Config, as: :repo!
242-
243239
defp repo_opts(config, opts) do
244240
config
245241
|> Config.get(:repo_opts, [])
246242
|> Keyword.take(opts)
247243
end
248-
249-
# TODO: Remove by 1.1.0
250-
@deprecated "Use `Pow.Config.user!/1` instead"
251-
defdelegate user_schema_mod(config), to: Config, as: :user!
252244
end

lib/pow/ecto/schema.ex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,6 @@ defmodule Pow.Ecto.Schema do
278278
Enum.filter(fields, &not Enum.member?(existing_fields, {elem(&1, 0), elem(&1, 1)}))
279279
end
280280

281-
# TODO: Remove by 1.1.0
282-
@deprecated "No longer public method"
283-
def filter_new_fields(fields, existing_fields), do: __filter_new_fields__(fields, existing_fields)
284-
285281
@doc false
286282
defmacro __register_fields__ do
287283
quote do

lib/pow/ecto/schema/changeset.ex

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ defmodule Pow.Ecto.Schema.Changeset do
8787
|> maybe_validate_password_hash()
8888
end
8989

90-
# TODO: Remove `confirm_password` support by 1.1.0
9190
@doc """
9291
Validates the confirm password field.
9392
@@ -96,39 +95,7 @@ defmodule Pow.Ecto.Schema.Changeset do
9695
`nil`.
9796
"""
9897
@spec confirm_password_changeset(Ecto.Schema.t() | Changeset.t(), map(), Config.t()) :: Changeset.t()
99-
def confirm_password_changeset(user_or_changeset, %{confirm_password: password_confirmation} = params, _config) do
100-
params =
101-
params
102-
|> Map.delete(:confirm_password)
103-
|> Map.put(:password_confirmation, password_confirmation)
104-
105-
do_confirm_password_changeset(user_or_changeset, params)
106-
end
107-
def confirm_password_changeset(user_or_changeset, %{"confirm_password" => password_confirmation} = params, _config) do
108-
params =
109-
params
110-
|> Map.delete("confirm_password")
111-
|> Map.put("password_confirmation", password_confirmation)
112-
113-
convert_confirm_password_param(user_or_changeset, params)
114-
end
115-
def confirm_password_changeset(user_or_changeset, params, _config),
116-
do: do_confirm_password_changeset(user_or_changeset, params)
117-
118-
# TODO: Remove by 1.1.0
119-
defp convert_confirm_password_param(user_or_changeset, params) do
120-
IO.warn("warning: passing `confirm_password` value to `#{inspect unquote(__MODULE__)}.confirm_password_changeset/3` has been deprecated, please use `password_confirmation` instead")
121-
122-
changeset = do_confirm_password_changeset(user_or_changeset, params)
123-
errors = Enum.map(changeset.errors, fn
124-
{:password_confirmation, error} -> {:confirm_password, error}
125-
error -> error
126-
end)
127-
128-
%{changeset | errors: errors}
129-
end
130-
131-
defp do_confirm_password_changeset(user_or_changeset, params) do
98+
def confirm_password_changeset(user_or_changeset, params, _config) do
13299
changeset = Changeset.cast(user_or_changeset, params, [:password])
133100

134101
changeset

0 commit comments

Comments
 (0)