Introduction
Phoenix/Mix template for projects at Nimble.
Prerequisites
NimbleTemplate has been developed and actively tested with the below environment:
- Mix 1.13.3
- Elixir 1.13.3
- Erlang/OTP 24.2.2
- Phoenix 1.6.6
Installation
Note: NimbleTemplate only works on a new Phoenix/Mix project, applying it to an existing Phoenix/Mix project might not work as expected.
Step 1: Generate a new project
# New Phoenix project
mix phx.new awesome_project
# New Mix project
mix new awesome_project
Step 2: Add nimble_template dependency to mix.exs:
def deps do
[
{:nimble_template, "~> 4.1", only: :dev, runtime: false},
# other dependencies ...
]
endStep 3: Fetch and install dependencies
Run this command in the root of the project directory to install NimbleTemplate.
mix do deps.get, deps.compileUsage
mix help nimble_template.gen # Print help
mix nimble_template.gen -v # Print the version
# Phoenix application
mix nimble_template.gen --web # Apply the Web template
mix nimble_template.gen --api # Apply the API template
mix nimble_template.gen --live # Apply the LiveView template
# Non-Phoenix application
mix nimble_template.gen --mix # Apply the Mix templateRunning tests
The testing documentation is on Wiki
Release
Set the HEX_API_KEY as a Github secret (skip this step if it has been done).
The release process follows the Git flow.
Once a release/<version number> is created, to publish the new version to Hex.pm, the version number in the mix.ex file needs to be updated on the release branch before merging.
Once the release branch is merged into the master branch, Github Action automatically publishes the template to https://hex.pm/packages/nimble_template.
Contributing
Contributions, issues, and feature requests are welcome!<br />Feel free to check issues page.
License
This project is Copyright (c) 2014 and onwards. It is free software, and may be redistributed under the terms specified in the LICENSE file.
About
This project is maintained and funded by Nimble.
We love open source and do our part in sharing our work with the community! See our other projects or hire our team to help build your product.