Phoenix 1.3.0 released

Hurra!

Elixir 1.5 released. Phoenix 1.3 released. Now it’s the time to convince my PO that I have to do this upgrade in our app :slight_smile:
Thanks Chris and to the Core team!

4 Likes

@chrismccord for those of us who use rc3 already is it just a matter of bumping the version in mix.exs?

1 Like

@chrismccord: I read two tutorials about Phoenix 1.3 and there is something that I don’t understand. Can you explain me directory structure again?

From Phoenix 1.3.0 released:

lib/my_app/accounts/accounts.ex

but in Upgrading from v1.2 to v1.3 there is:

lib/my_app_web

and

lib/my_app_web.ex

So should I have name/name.ex or put name.ex in same parent directory that name directory is?

I just bumped to {:phoenix, "~> 1.3"} and all is good. So, yes, just update versions and all should be good.

1 Like

I believe package-lock.json should contain “version”: “1.3.0” instead of “version”: “1.3.0-rc.3”.

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

So we still can’t do mix archive.install hex phx_new(or any other package name for the generator)?

Whoo hoo!! Congrats to you and all the Phoenix team and well done to everyone who worked on this release :023:

Awesome, and updated.

For note, warnings on compile (Elixir 1.5, OTP 20, Phoenix 1.3) for various things that might be found to be interesting (it is very noisy):

==> postgrex
Compiling 62 files (.ex)
warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/postgrex/error_code.ex:14

Compiling lib/postgrex/default_types.ex (it's taking more than 10s)
Generated postgrex app

==> phoenix_live_reload
Compiling 3 files (.ex)
warning: String.lstrip/2 is deprecated, use String.trim_leading/2 with a binary as second argument
  lib/phoenix_live_reload/channel.ex:19

Generated phoenix_live_reload app

==> exfswatch
Compiling 8 files (.ex)
warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1
  lib/exfswatch.ex:9

warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1
  lib/exfswatch/utils.ex:5

Generated exfswatch app

==> phoenix
Compiling 74 files (.ex)
warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/phoenix/endpoint/handler.ex:39

warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/mix/tasks/phoenix.gen.model.ex:155

warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/mix/phoenix/schema.ex:235

Generated phoenix app

==> mime
Compiling 1 file (.ex)
warning: String.strip/1 is deprecated, use String.trim/1
  lib/mime.ex:28

Generated mime app

===> Compiling cowlib
src/cow_multipart.erl:392: Warning: crypto:rand_bytes/1 is deprecated and will be removed in a future release; use crypto:strong_rand_bytes/1

===> Compiling cowboy

==> decimal
Compiling 1 file (.ex)
warning: Integer.to_char_list/1 is deprecated, use Integer.to_charlist/1
  lib/decimal.ex:944

warning: Integer.to_char_list/1 is deprecated, use Integer.to_charlist/1
  lib/decimal.ex:963

warning: Integer.to_char_list/1 is deprecated, use Integer.to_charlist/1
  lib/decimal.ex:986

Generated decimal app


warning: String.strip/1 is deprecated, use String.trim/1
  /home/<user>/my_server/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated, use Integer.to_charlist/2
  lib/poison/encoder.ex:173

Generated poison app

==> gettext
Compiling 1 file (.erl)
Compiling 20 files (.ex)
warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/gettext/extractor_agent.ex:64

warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/gettext/po/parser.ex:44

warning: String.strip/1 is deprecated, use String.trim/1
  lib/gettext/po/parser.ex:47

warning: String.strip/1 is deprecated, use String.trim/1
  lib/gettext/po/parser.ex:55

warning: String.lstrip/1 is deprecated, use String.trim_leading/1
  lib/gettext/po/parser.ex:65

warning: Enum.partition/2 is deprecated, use Enum.split_with/2
  lib/gettext/po/parser.ex:71

warning: String.to_char_list/1 is deprecated, use String.to_charlist/1
  lib/gettext/po/tokenizer.ex:147

Generated gettext app

Running well so far though. :slight_smile:

Congratulations to the Phoenix team and @chrismccord - you made dev life so much easier and fun day-to-day.

3 Likes

Technically it doesn’t matter. Stylistically I would do name/name.ex.

1 Like

It looks like the ebin archive hasn’t been updated and it’s still at 1.3.0-rc3.

Confirmed in the terminal:

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Found existing entry: $HOME/.mix/archives/phx_new
Are you sure you want to replace it with "https://github.com/phoenixframework/archives/raw/master/phx_new.ez"? [Yn] y
* creating .mix/archives/phx_new

cat $HOME/.mix/archives/phx_new/phx_new/ebin/phx_new.app | grep vsn
              {vsn,"1.3.0-rc.3"},

Since there is a handful of commits between 1.3.0-rc3 and the final 1.3.0, and they seem to include changes in the generator templates, should the archive be updated?

1 Like

@tompave: You can always build archive yourself like:

git clone git@github.com:phoenixframework/phoenix.git
cd phoenix
git checkout v1.3.0
mix deps.get
mix archive.build
mix archive.install

@chrismccord: After uninstall old phoenix and install new archive (also when build archive from source) I have still two phoenix.* tasks:

> mix archive
* hex-0.16.1
* phoenix-1.3.0
Archives installed at: /home/eiji/.asdf/installs/elixir/1.5.0-otp-20/.mix/archives

> mix help
mix                   # Runs the default task (current: "mix run")
mix app.start         # Starts all registered apps
mix app.tree          # Prints the application tree
mix archive           # Lists installed archives
mix archive.build     # Archives this project into a .ez file
mix archive.install   # Installs an archive locally
mix archive.uninstall # Uninstalls archives
mix clean             # Deletes generated application files
mix cmd               # Executes the given command
mix compile           # Compiles source files
mix deps              # Lists dependencies and their status
mix deps.clean        # Deletes the given dependencies' files
mix deps.compile      # Compiles dependencies
mix deps.get          # Gets all out of date dependencies
mix deps.tree         # Prints the dependency tree
mix deps.unlock       # Unlocks the given dependencies
mix deps.update       # Updates the given dependencies
mix do                # Executes the tasks separated by comma
mix escript           # Lists installed escripts
mix escript.build     # Builds an escript for the project
mix escript.install   # Installs an escript locally
mix escript.uninstall # Uninstalls escripts
mix help              # Prints help information for tasks
mix hex               # Prints Hex help information
mix hex.audit         # Shows retired Hex dependencies
mix hex.build         # Builds a new package version locally
mix hex.config        # Reads, updates or deletes Hex config
mix hex.docs          # Fetches or opens documentation of a package
mix hex.info          # Prints Hex information
mix hex.outdated      # Shows outdated Hex deps for the current project
mix hex.owner         # Manages Hex package ownership
mix hex.publish       # Publishes a new package version
mix hex.repo          # Manages Hex repositories
mix hex.retire        # Retires a package version
mix hex.search        # Searches for package names
mix hex.user          # Manages your Hex user account
mix loadconfig        # Loads and persists the given configuration
mix local             # Lists local tasks
mix local.hex         # Installs Hex locally
mix local.public_keys # Manages public keys
mix local.rebar       # Installs Rebar locally
mix new               # Creates a new Elixir project
mix phoenix.gen.html  # Generates controller, model and views for an HTML based resource
mix phoenix.server    # Starts applications and their servers
mix phx.digest        # Digests and compresses static files
mix phx.digest.clean  # Removes old versions of static assets.
mix phx.gen.channel   # Generates a Phoenix channel
mix phx.gen.context   # Generates a context with functions around an Ecto schema
mix phx.gen.embedded  # Generates an embedded Ecto schema file
mix phx.gen.html      # Generates controller, views, and context for an HTML resource
mix phx.gen.json      # Generates controller, views, and context for a JSON resource
mix phx.gen.presence  # Generates a Presence tracker
mix phx.gen.schema    # Generates an Ecto schema and migration file
mix phx.gen.secret    # Generates a secret
mix phx.routes        # Prints all routes
mix phx.server        # Starts applications and their servers
mix profile.cprof     # Profiles the given file or expression with cprof
mix profile.fprof     # Profiles the given file or expression with fprof
mix run               # Runs the given file or expression
mix test              # Runs a project's tests
mix xref              # Performs cross reference checks
iex -S mix            # Starts IEx and runs the default task
2 Likes

phoenix tasks are deprecated and will be removed with 1.4.0 according to release notes.

1 Like

Fixed. Thanks!

1 Like

Confirmed. Thank you for the hard work on this!

Nice. Anything to do to upgrade from rc3 to final, other than bumping versions?

Please be more constructive in your posts/feedback.

I’ve removed the fork resulting from your post.

Hello all,
I tried to follow Writing Web-facing tutorial but when I added the email as credential I got this:

Did you forget to alias the Credential module?

1 Like