All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Makes sure all harness archive tasks are loaded and available to use
- Updated
actions/checkout@
fromv3
tov4
in GH actions - Updated
actions/cache@
fromv3
tov4
in GH actions - Updated
NFIBrokerage/create-release@
fromv3
tov4
in GH actions
- Updated
actions/checkout@
fromv1
tov3
in GH actions - Updated
actions/cache@
fromv1
tov3
in GH actions - Updated
NFIBrokerage/create-release@
fromv2
tov3
in GH actions - Change
release_name
toname
field inNFIBrokerage/create-release@v3
action in GH actions - Fixed credo warnings
- This version fixes warnings and errors encountered when using
harness
with Elixir 1.15- added harness archive ebin path to VM path list because Elixir 1.15 prunes code paths before compiling
EEx.eval_string/3
is now used instead ofEEx.eval_file/3
when rendering templates with import ofHarness.Renderer.Helpers
functions being appended to every template binary because passing:functions
in options is deprecated since Elixir 1.13
- Updated
hackney
from 1.16 to 1.18.1 - Pinned ubuntu runner to
ubuntu-20.04
in workflows because of OTP 22.3
- Fixed compatibility with older elixir versions
- Eliminated raise when harness packages were not yet compiled when calling
mix harness
- Added a
mix harness.loadpaths
Mix Task that mirrorsmix deps.loadpaths
- this task loads, compiles, and checks harness packages to ensure that they are up to date and can be installed
- Added
--no-compile
and--no-deps-check
flags tomix harness
task
- Trimmed strings in the
inspect_or_interpolate/1
helper- this prevents formatting failures when a template does not expect a newline and a manifest declares a value with triple-quotes
- Replaced usages of
Keyword.pop!/2
withKeyword.pop/3
- This fixes compilation on Elixir 1.9
- Added a
mix harness.check
task which checks that the harnessed files are up to date
- Added support for hard linking to files in
.harness
- Updated the
Harness.Pkg
behaviour to declare links with a tuple that includes the link type:sym
or:hard
- e.g.
{"mix.exs", :sym}
or{".github/workflows/ci.yml", :hard}
- e.g.
- Added a
config :harness, :version
key which checks the version of harness and ensures that a manifest is only rendered if the harness version matches
- Added a
:skip_files
key to the configuration of a manifest, allowing one to provide a list of regex which will be checked against while sourcing files. Any files found to match any of the regex will be excluded from generation.- this allows a service author to 'take the reins' for that file
- Fixed a broken link to the Getting Started guide from the About guide
- Added a
mix harness.update
task that mimicsmix deps.update
- Misc. documentation fixes including:
- a broken link to the Getting Started guide
- addition of GitHub and Changelog links to hex page
- default documentation page is set to the README
- Fixed a bug present when running
mix harness.compile
in Elixir 1.11+
- Harness now explicitly depends on
:eex
as an extra_application- this resolves compilation warnings on elixir 1.11+
- Generated files are now formatted to a column width of 80
- Harness is now published to public hex
Kernel
functions are now imported for templates by default.- e.g.
==/2
orinspect/2
- e.g.
- Fixed a bug where multiple copies of the same directory would show if the directory contained multiple files to be linked
- Manifests are now written with the Config
API
- therefore the manifest version has increased to v2.0.0
- As a result of the above, harness now requires at least Elixir 1.9 for compatibility
- A function to interpolate or inspect items into a template
- Elixir LS files are now ignored from generation
- Improvements to display. First stable-ish release
- Vim swap files are now ignored from template directories
- The harness project is reloaded after
mix harness.compile
when runningmix harness
- this fixes an issue where otp app atoms could not be determined on clean harness runs, as in CI
- The
Harness.Cache
module has been removed- now harness caches packages by downloading them to the
deps/
directory - this behaviour mimics
mix
- now harness caches packages by downloading them to the
- Initial dependency management and generation abilities
- This project was generated by Gaas