Introduction

Phoenix/Mix template for projects at Nimble.

Prerequisites

NimbleTemplate has been developed and actively tested with the below environment:

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 ...
  ]
end

Step 3: Fetch and install dependencies

Run this command in the root of the project directory to install NimbleTemplate.

mix do deps.get, deps.compile

Usage

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 template

Running 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

Nimble

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.