ffizer
is a files and folders initializer / generator. It creates or updates any kind (or part) of project from template(s).
keywords: file generator, project template, project scaffolding, quick start, project bootstrap, project skeleton
Features
- Create or update files and folder from one (or several) template(s).
- A native executable (cli)
- Install via download a standalone single file on system (no requirements like
python
,ruby
,nodejs
,java
, …). - Run as fast enough project generator.
- Run with dry mode (useful to test).
- Support self-upgrade.
- Install via download a standalone single file on system (no requirements like
- A rust library
- Can be included into other tool
- Templates Authoring
- Can be used for any file & folder generation (no specialization to one ecosystem).
- Can start as simple as a folder to copy “as is”.
- Can use the Handlebars template syntax for file content, extended with functions:
- To transform strings (toUpperCase, toLowerCase, Capitalize,…)
- To retrieve content via http get (like
.gitignore
fromgitignore.io
, license from spdx) - …
- Can replace variables part in file and folder’s name
- Can be composed of other templates (applied as layer)
- Can ignore file / folder under conditions
- Can store the content at the root of the folder or under the sub-folder
template
- Templates Hosting
- On a local folder
- On a hosted git repository (public / private,
github
/bitbucket
/gitlab
/ …)- At the root of the repository
- In a sub-folder of the repository
- In any revision (branch, tag, commit)
A list of alternatives is available on the wiki, feel free to complete / correct.
Usages
Install
curl https://raw.githubusercontent.com/ffizer/ffizer/master/scripts/getLatest.sh | bash
Or download the binary for your platform from github releases, then un-archive it and place it your PATH.
via homebrew (MacOs & Linux)
brew install ffizer/ffizer/ffizer-bin
ffizer upgrade
via cargo
# install pre-build binary via cargo-binstall
cargo binstall ffizer
# install from source
cargo install ffizer --force --features cli
Run
❯ ffizer --help
ffizer is a files and folders initializer / generator.
It creates or updates any kind (or part) of project from template(s)
Usage: ffizer [OPTIONS] <COMMAND>
Commands:
apply Apply a template into a target directory
upgrade Self upgrade ffizer executable
inspect Inspect configuration, caches,... (wip)
show-json-schema Show the json schema of the .ffizer.yaml files
test-samples test a template against its samples
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... Verbose mode (-v, -vv (very verbose / level debug), -vvv) print on stderr
-h, --help Print help information
-V, --version Print version information
https://ffizer.github.io/ffizer/book/
Self upgrade the executable
❯ ffizer upgrade
Apply a template (to create or update)
❯ ffizer apply --help
Apply a template into a target directory
Usage: ffizer apply [OPTIONS] --source <URI> --destination <FOLDER>
Options:
--confirm <CONFIRM> ask for plan confirmation [default: Never] [possible values: auto, always, never]
--update-mode <UPDATE_MODE> mode to update existing file [default: Ask] [possible values: ask, keep, override, update-as-remote, current-as-local, show-diff, merge]
-y, --no-interaction should not ask for confirmation (to use default value, to apply plan, to override, to run script,...)
--offline in offline, only local templates or cached templates are used
-s, --source <URI> uri / path of the template
--rev <REV> git revision of the template [default: master]
--source-subfolder <FOLDER> path of the folder under the source uri to use for template
-d, --destination <FOLDER> destination folder (created if doesn't exist)
-v, --variables <KEY_VALUE> set variable's value from cli ("key=value")
-h, --help Print help information
-V, --version Print version information
-
use a local folder as template
ffizer apply --source $HOME/my_templates/tmpl0 --destination my_project
-
use a remote git repository as template
ffizer apply --source https://github.com/ffizer/template_sample.git --destination my_project
output
Configure variables ✔ project_name · my-project ✔ package_name · my_project Plan to execute - make dir my_project - make dir ├─dir_1 - add file │ └─file_1_1.txt - make dir ├─dir_2_my-project - add file │ └─file_1_2.txt - add file ├─file_1.txt - add file ├─file_2.txt - add file ├─file_3.txt - add file ├─file_4_my_project.txt - add file ├─file_5_my-project.txt - add file └─file_6.hbs
Authoring a template
Start with Template Authoring Tutorial
Few templates
- Any git repositories (in this case ffizer is like
git clone ... && cd ... && rm -Rf .git
) - Any local folder (in this case ffizer is like
cp -R ... ...
) - Parametrized (with variables) templates:
ffizer/templates_default
: the default collections of templates for ffizer (WIP)davidB31 / cg-starter-multi-rust
· GitLab Project template for Multi-Bot in Rust on CodinGame.davidB/templates
: repository to host the my collections of templates to used with ffizer.- github repo tagged
ffizer-template
- samples (used for test, demo) templates_default)
Build
cargo install cargo-make --force
cargo make ci-flow
Update CHANGELOG.md
cargo make update-changelog
git add CHANGELOG.md
git commit -m ':memo: (CHANGELOG) update'
Release a new version by bump patch
(or minor
or major
)
cargo make publish patch # dry-run
cargo make publish --execute patch
Templates Authoring
The documentation is a Work In Progress, feel free to ask details, missing info or to submit content (via Pull Request).
Some templates
- An empty dir, but it generates an empty dir ;-)
- Any git repositories (in this case ffizer is like
git clone ... && cd ... && rm -Rf .git
) - Any local folder (in this case ffizer is like
cp -R ... ...
) - Parametrized (with variables) templates:
ffizer/templates_default
: the default collections of templates for ffizer (WIP)davidB31 / cg-starter-multi-rust
· GitLab Project template for Multi-Bot in Rust on CodinGame.davidB/templates
: repository to host the my collections of templates to used with ffizer.- github repo tagged
ffizer-template
- samples (used for test, demo) templates_default)
Tutorial: How to create a template for ffizer
- Begin with a existing sample
- Clean the content of
my-templates
folder - Test the template
- Enable git versionning
- Publish on remote git repository
- Parametrize the template with variables
- Compose with an external template
- Next
Begin with a existing sample
Create the folder for the template by copying the existing folder (project) that you would like to generate with the future template.
cp -R my-existing-project my-template
cd my-template
If you don’t have an existing sample you can start with the following code, just to have something 😉.
mkdir my-template
cd my-template
cat >README.md <<EOF
Hello World
EOF
Clean the content of my-templates
folder
- remove files and folder that you don’t want to be part of the template
- maybe add missing files and folder
Test the template
At this point you have a valid template but it’s also a sample of what the template can produce. Use it to create a sample that can show a possible output, and a test to validate what ffizer + my-template
can generate.
# create the folder for samples (the name of folder should be `.ffizer.samples.d`)
mkdir .ffizer.samples.d
# copy the current of my-template as a sample named `my-sample`
# except .ffizer.samples.d (its why we use `rsync` instead of `cp -R`)
rsync -rv --exclude=.ffizer.samples.d . .ffizer.samples.d/my-sample.expected
# test that ffizer is able to generate every samples under `.ffizer.samples.d`
# from `my-templates`
ffizer test-samples --source .
Enable git versionning
git init
A new folder .git
was created and it should not be part of the template. To ignore this folder, you need to add a configuration for ffizer with this information.
cat >.ffizer.yaml <<EOF
ignores:
- .git # exclude .git of the template host
EOF
An other alternatives would be to move the template, but not the sample under a template
folder and to configure use_template_dir: true
Now you can test again, and commit.
ffizer test-samples --source .
git add .
git commit -m ":tada: initialize the template"
Publish on remote git repository
ffizer support templates hosted on local file system or on remote git repositories (accessible via ssh or https). To share your template you can create and push your local repository to your favorite host (github, gitlab, bitbucket,…) following the same workflow than for any git repository (instructions are provided by the hosting service).
# adapt the following parameters for your case
git remote add origin git@github.com:xxxx/my_template.git
git push -u origin main
# you can also test a remote template
ffizer test-samples --source git@github.com:xxxx/my_template.git
Parametrize the template with variables
The interest of a template is to be more than a cp -R
, or a git clone
. The first expected feature is to be able to render some parametrized content. ffizer renders only files with .ffizer.hbs
as part of the filename (it could be at end or before final extension), the part .ffizer.hbs
will be removed from the final name after rendering. Handlebars syntax is used for template string.
# adapt to your case
mv README.md README.ffizer.hbs.md
cat >README.ffizer.hbs.md <<EOF
Hello {{env_var "USERNAME"}}
EOF
At render time, the content between {{
and }}
is evaluated, the sample bellow it call the function env_var
with the parameter "USERNAME"
, this function is built-in into ffizer.
If you run the test, an error should be raised, because the rendered content doesn’t match the sample.
> ffizer test-samples --source .
Configure variables
Plan to execute
- make dir my-sample
- add file └─README.md
Nov 08 17:54:38.837 WARN check failed Differences: [
EntryDiff {
expect_base_path: "/home/david/tmp/my-template/.ffizer.samples.d/my-sample.expected",
actual_base_path: "/tmp/.tmpROuSyU/my-sample",
relative_path: "README.md",
difference: StringContent {
expect: "Hello World\n",
actual: "Hello david\n",
},
},
], sample: my-sample, sub-cmd: test-samples
Nov 08 17:54:38.837 ERRO cmd: CliOpts {
verbose: 0,
cmd: TestSamples(
TestSamplesOpts {
src: SourceLoc {
uri: SourceUri {
raw: ".",
path: ".",
host: None,
},
rev: "master",
subfolder: None,
},
offline: false,
},
),
}
Nov 08 17:54:38.837 ERRO failed: TestSamplesFailed
To fix this issue the better is to define a variable with a value that could be provided by the template user and with the default value define like previously.
cat >.ffizer.yaml <<EOF
variables:
- name: author_name
default_value: '{{ env_var "USERNAME" }}'
ignores:
- .git # exclude .git of the template host
EOF
cat >README.ffizer.hbs.md <<EOF
Hello {{ author_name }}
EOF
At this point if we rerun the test, we will have the same result, because test run ffizer apply
with the option --no-interaction
that imply using the default value of a variable. So we need to modify the test to force the value of the variable like a user will do by providing a response to the interactive ask of the value for author_name
or by using the option --variables
.
# setup a configuration for the test sample `my-sample`
cat >.ffizer.samples.d/my-sample.cfg.yaml <<EOF
apply_args:
- --variables
- author_name=World
EOF
ffizer test-samples --source .
Test is back to OK, with your parametrized template.
File with .ffizer.hbs
are not the only place where you can use handlebars rendering. It can also be used in file or foldername (see How to…) and into some part of the configuration file .ffizer.yaml
(see Configuration).
Compose with an external template
To Avoid to duplicate content and configuration between template, you can import the content of one or several other templates into your template. In this tutorial, you will add a template that generate .gitignore
files from .gitignore.io
(now branded as part of topcal).
To that you should add a section imports
:
cat >.ffizer.yaml <<EOF
variables:
- name: author_name
default_value: '{{ env_var "USERNAME" }}'
ignores:
- .git # exclude .git of the template host
imports:
- uri: "https://github.com/ffizer/templates_default.git"
rev: "master"
subfolder: "gitignore_io"
EOF
- The
gitignore_io
template is not hosted at a root level the git repository so you should specify the subfolder (like from the options offfizer apply
). - The uri can in the format
git@github....
orhttps://github.com/...
If you run ffizer test-samples --source .
, you will have an error because the file .gitignore
does not exist in the expected of my-sample
. If you would like to see the generated file, the simplest way is to apply the template on a local folder (because test-samples remove files and folders created during the test). It is also the opportunity to try your template like a final user.
ffizer apply -s . -d ../my-template-t1
You can notice the following points:
- the imported template ask for variable’s value
- the ask is after your template’s variables
- the ask is not the variable name but a sentence
because the .ffizer.yaml
of the gitignore_io template includes
variables:
- name: gitignore_what
default_value: git,visualstudiocode
ask: Create useful .gitignore (via gitignore.io) for
In this tutorial, you will override the default value of gitignore_what
to be only git
cat >.ffizer.yaml <<EOF
variables:
- name: author_name
default_value: '{{ env_var "USERNAME" }}'
- name: gitignore_what
default_value: git
ask: Create useful .gitignore (via gitignore.io) for
ignores:
- .git # exclude .git of the template host
imports:
- uri: "https://github.com/ffizer/templates_default.git"
rev: "master"
subfolder: "gitignore_io"
EOF
And you will also update the my-sample.expected
.
ffizer apply -s . -d ../my-template-t2
cp ../my-template-t2/.gitignore .ffizer.samples.d/my-sample.expected
ffizer test-samples --source .
You can now remove the result of your previous manual run.
rm -Rf ../my-template-t*
Next
It’s the end of this tutorial but I hope not the end of your journey with ffizer. Now you know the basics to create, to test, to parametrize and to publish a template. You can take a look to existing templates and you can continue to read the ffizer’s book, you could learn how to customize ask of value for variable, how to display selection, how to display a message, how to run command, how to read value of variable from existing file in the project,…
I forgot you can also continue to work with your current template:
- publish / share the new revision of your template
- add parameters
- extract template from your template or other stuff
- compose with other existing templates
- improve the user experience on update
- …
How to…
- How to name a folder as a package name of the project ?
- How to display a message after files’generation ?
- How to run a set of commands after files’generation ?
- How to import a sibling template ?
- How to update existing json/yaml/toml content ?
- How to retrieve value from existing json/yaml/toml content ?
- How to made “ignore files” conditional ?
- How to include a
.git
folder as part of the template ? - How to test my template ?
- How to host template on github ?
How to name a folder as a package name of the project ?
Define a package_name
variable with a sensible value (eg snake case of the project name).
variables:
- name: project_name
default_value: "{{ file_name ffizer_dst_folder }}"
- name: package_name
default_value: "{{ to_snake_case project_name }}"
And use it as name of the folder.
mkdir 'src/{{ package_name }}`
How to display a message after files’generation ?
in .ffizer.yaml
scripts:
- message: |
Thanks for using my awesome template.
How to run a set of commands after files’generation ?
in .ffizer.yaml
scripts:
- cmd: |
{{#if (eq (env_var "OS") "windows") }}
echo Hello {{ who }}> file2.txt
del file_to_delete.txt
{{else}}
echo "Hello {{ who }}" > file2.txt
rm file_to_delete.txt
{{/if}}
- Having several entries under
scripts
withcmd
is allowed. - Empty
cmd
after template rendering are ignored. - Each
cmd
block is displayed to the user to confirm if (s)he accepts to run it or not.
How to import a sibling template ?
If your git repository host several templates, one template can import a sibling template by specifying the absolute value or by using built-in variables
imports:
- uri: "{{ ffizer_src_uri }}"
rev: "{{ ffizer_src_rev }}"
subfolder: "template_2"
How to update existing json/yaml/toml content ?
How to retrieve value from existing json/yaml/toml content ?
How to made “ignore files” conditional ?
How to include a .git
folder as part of the template ?
How to test my template ?
How to host template on github ?
Configuration
The configuration is:
- optional
- stored into a yaml file named
.ffizer.yaml
at the root of the template. - sections (top level entry) of the yaml are optionals
variables:
- name: project
default_value: my-project
ignores:
- .git # exclude .git of the template host
Sections
variables
List the variables usable into the .ffizer.hbs
template file.
Variables are defined by:
-
name
: (required) the name of the variable. -
default_value
: a suggested value, the value is a string and supporthbs
templating. -
ask
: the sentence use to prompt user to set the value of the variable. -
hidden
: the variable is not shown to the user, the value is set to default_value. Could be useful to cache shared (structured) value. (default to false) -
select_in_values
: for non-empty list, ask the user to select a value in the list. The list can be a regular yaml list or a string (evaluated as a yaml list of string).default_value
could be combined to pre-select a value in the list. After selection a second variable with same name plus suffix__idx
is set with the index of the selected value in the list.variables: - name: k2 select_in_values: - vk21 - vk22 - name: k1 select_in_values: [ "vk11", "vk12" ] - name: k3 select_in_values: '[ "vk31", "vk32" ]' - name: k4 select_in_values: '{{ do_stuff }}'
Variables definition are prompt in the order of the list, and with the prompt defined by ask
(if defined, else name
)
variables:
- name: project_name
default_value: "{{ file_name ffizer_dst_folder }}"
Every variables are mandatory, to allow empty value default_value
should be an empty string.
- name: foo
default_value: ""
ignores
List patterns of file path (relative to root of the template) that should be ignored when search for file to be copied or rendered from the template into the destination.
To ignore .git folder from the template (useful for template hosted on root of a git repository)
ignores:
- .git/*
- .git # exclude .git of the template host
imports
It is possible to imports templates into a template. It is useful to reuse templates or to compose template from other template.
The imports
section is a list of templates:
imports:
- uri: "git@github.com:ffizer/templates_default.git"
rev: "master"
subfolder: "gitignore_io"
The order in the list define:
- the order to ask variables (and to find variables definition): first the variable of the root template, then the variables of the first import, the second import,… then the variables of the first import of the first imports.
- the order of files: first the file of the root template, then the files from the first import,… (same as variable)
The first variable definition found (following the order) is keep. So a higher level variables definition override the lower level. In the example below, the ask
and the default_value
override the definition of gitignore_what
into the imported template.
variables:
- name: gitignore_what
default_value: rust,git,visualstudiocode
ask: Create useful .gitignore (via gitignore.io) for
imports:
- uri: "git@github.com:ffizer/templates_default.git"
rev: "master"
subfolder: "gitignore_io"
use_template_dir
By default, content of the template is mixed with its optional metadata (.ffizer.yaml
, …). So it means that if you have a README.md
both as the template description and as template content (a README.md to generate), you have to follow this layout:
+- README.md.ffizer.hbs (or README.md.ffizer.raw)
+- README.md
+- .ffizer.yaml
And to add into .ffizer.yaml
ignores:
- README.md
Or you can choose to move the template content under a template
folder:
+- template
| +- README.md.ffizer.hbs (or README.md)
+- README.md
+- .ffizer.yaml
And to add into .ffizer.yaml
use_template_dir: true
The Schema of .ffizer.yaml
The json schema of the .ffizer.yaml
is defined in ffizer.schema.json.
The schema could be used for validation and auto completion into your editor.
The schema is registered at JSON Schema Store.
The schema is also available via cli.
ffizer show-json-schema
The predefined variables
Some variables are predefined and they can be used into .ffizer.yaml
into by example
the imports
section or default_value
via handlebars expression.
variable | value of |
---|---|
ffizer_dst_folder | cli arg --destination as string |
ffizer_src_rev | cli arg --rev as string (could be null) |
ffizer_src_uri | cli arg --source as string |
ffizer_src_subfolder | cli arg --source-subfolder as string (could be null) |
ffizer_version | the current version of ffizer as string |
The following sample combine a helper function file_name
with ffizer_dst_folder
.
variables:
- name: project_name
default_value: "{{ file_name ffizer_dst_folder }}"
Template Helpers / Functions
Helpers extend the template to generate or to transform content.
The helpers from handlebars_misc_helpers are included. This page is a copy of handlebars_misc_helpers/README.md at master · davidB/handlebars_misc_helpers, and it can be can be out-of-date.
Few helpers are included, but if you need more helpers, ask via an issue or a PR.
To use an helper:
// arguments are space separated
{{ helper_name arguments}}
To chain helpers, use parenthesis:
{{ to_upper_case (to_singular "Hello foo-bars") }}
// -> BAR
{{ first_non_empty (unquote (json_str_query "package.edition" (read_to_str "Cargo.toml") format="toml")) (env_var "MY_VERSION") "foo" }}
// -> 2018
see Handlebars templating language
- String transformation
- Http content
- Path extraction
- File
- Environment variable
- JSON & YAML & TOML
- Assign
String transformation
helper signature | usage sample | sample out |
---|---|---|
replace s:String from:String to:String | replace "Hello old" "old" "new" | "Hello new" |
to_lower_case s:String | to_lower_case "Hello foo-bars" | "hello foo-bars" |
to_upper_case s:String | to_upper_case "Hello foo-bars" | "HELLO FOO-BARS" |
to_camel_case s:String | to_camel_case "Hello foo-bars" | "helloFooBars" |
to_pascal_case s:String | to_pascal_case "Hello foo-bars" | "HelloFooBars" |
to_snake_case s:String | to_snake_case "Hello foo-bars" | "hello_foo_bars" |
to_screaming_snake_case s:String | to_screaming_snake_case "Hello foo-bars" | "HELLO_FOO_BARS" |
to_kebab_case s:String | to_kebab_case "Hello foo-bars" | "hello-foo-bars" |
to_train_case s:String | to_train_case "Hello foo-bars" | "Hello-Foo-Bars" |
to_sentence_case s:String | to_sentence_case "Hello foo-bars" | "Hello foo" bars |
to_title_case s:String | to_title_case "Hello foo-bars" | "Hello Foo Bars" |
to_class_case s:String | to_class_case "Hello foo-bars" | "HelloFooBar" |
to_table_case s:String | to_table_case "Hello foo-bars" | "hello_foo_bars" |
to_plural s:String | to_plural "Hello foo-bars" | "bars" |
to_singular s:String | to_singular "Hello foo-bars" | "bar" |
trim s:String | trim " foo " | "foo" |
trim_start s:String | trim_start " foo " | "foo " |
trim_end s:String | trim_end " foo " | " foo" |
unquote s:String | unquote "\"foo\"" | "foo" |
enquote symbol:String s:String | enquote "" "foo" | "\"foo\"" |
first_non_empty s:String+ | first_non_empty "" null "foo" "bar" | "foo" |
Http content
Helper able to render body response from an http request.
helper signature | usage sample |
---|---|
http_get url:String | http_get "http://hello/..." |
gitignore_io templates:String | gitignore_io "rust,visualstudiocode" |
Path extraction
Helper able to extract (or transform) path (defined as string).
for the same input: "/hello/bar/foo.txt"
helper_name | sample output |
---|---|
file_name | "foo.txt" |
parent | "/hello/bar" |
extension | "txt" |
File
Helper to read file content.
usage | output |
---|---|
{{ read_to_str "/foo/bar" }} | content of file /foo/bar |
{{ read_to_str "file/does/not/exist" }} | empty string |
Environment variable
Helper able to get environment variables.
helper_name | usage |
---|---|
env_var | env_var "HOME" |
Specials environment variables are predefined (some of them come from std::env::consts
- Rust):
variable | possible values |
---|---|
"ARCH" |
|
"DLL_EXTENSION" |
|
"DLL_PREFIX" |
|
"DLL_SUFFIX" |
|
"EXE_EXTENSION" |
|
"EXE_SUFFIX" |
|
"FAMILY" |
|
"OS" |
|
"USERNAME" |
try to find the current username, in the order:
|
JSON & YAML & TOML
Helpers
json_query query:String data:Json
: Helper able to extract information from json using JMESPath syntax forquery
.json_str_query query:String data:String
: Helper able to extract information from json using JMESPath syntax forquery
, data follows the requestedformat
.json_to_str data:Json
: convert a json data into a string following the requestedformat
.str_to_json data:String
: convert(parse) a string into a json following the requestedformat
.
The optional requested format
, is the format of the string with data:
"json"
(default if omitted)"json_pretty"
json with indentation,…"yaml"
"toml"
"toml_pretty"
usage | output |
---|---|
{{ json_query "foo" {} }} | `` |
{{ json_to_str ( json_query "foo" {"foo":{"bar":{"baz":true}}} ) }} | {"bar":{"baz":true}} |
{{ json_to_str ( json_query "foo" (str_to_json "{\"foo\":{\"bar\":{\"baz\":true}}}" ) ) }} | {"bar":{"baz":true}} |
{{ json_str_query "foo" "{\"foo\":{\"bar\":{\"baz\":true}}}" }} | {"bar":{"baz":true}} |
{{ json_str_query "foo.bar.baz" "{\"foo\":{\"bar\":{\"baz\":true}}}" }} | true |
{{ json_str_query "foo" "foo:\n bar:\n baz: true\n" format="yaml"}} | bar:\n baz: true\n |
{{ json_to_str ( str_to_json "{\"foo\":{\"bar\":{\"baz\":true}}}" format="json") format="yaml"}} | foo:\n bar:\n baz: true\n |
Blocks
|
|
|
|
|
|
|
|
Note: YAML & TOML content are used as input and output format for json data. So capabilities are limited to what json support (eg. no date-time type like in TOML).
Edition via jsonnet
For more advanced edition of json, you can use jsonnet.
A data templating language for app and tool developers
- See the doc of jsonnet for more samples, syntax info,…
- This block can be combined with conversion helper/block for YAML & TOML to provide edition capabilities for those format
- the output should a valid json, except if
string_output = false
is set as parameter of the block.
|
|
Assign
Helper able to assign (to set) a variable to use later in the template.
usage | output |
---|---|
{{ assign "foo" "{}" }} | `` |
{{ assign "foo" "{}" }}{{ foo }} | {} |
{{ assign "foo" "hello world" }}{{ foo }} | hello world |
{{ assign "foo" {} }}{{ foo }} | [object] |
{{ assign "foo" {"bar": 33} }}{{ foo }} | [object] |
IDE/Editor setup’ suggestions
Use your favorite IDE/Editor.
Editing .ffizer.yaml
-
add support for yaml files
-
if possible configure to use schemastore json to validate, to provide “auto completion” and tool tips
-
if your yaml plugin is not compatible with schemastore but it accepts json schema to validate yaml you can configure it to use the online schema
"yaml.schemas": { ... "https://ffizer.github.io/ffizer/ffizer.schema.json": [".ffizer.yaml"], },
or to use a local file that can be generated by
ffizer show-json-schema
By example, for Visual Studio Code, you can use the following extension/plugin:
Name: YAML
Id: redhat.vscode-yaml
Description: YAML Language Support by Red Hat, with built-in Kubernetes syntax support
Publisher: redhat
VS Marketplace Link: https://open-vsx.org/vscode/item?itemName=redhat.vscode-yaml
Changelog
Version x.y.z-dev
Version 2.7.0
Changed
- 👽 update to use the clap 4 api
- ⬆️ Bump clap from 3.2.22 to 4.0.18
- ⬆️ Bump regex from 1.6.0 to 1.7.0
- ⬆️ Bump assert_cmd from 2.0.4 to 2.0.7
- ⬆️ Bump openssl from 0.10.42 to 0.10.44
- ⬆️ Bump serde from 1.0.145 to 1.0.151
- ⬆️ Bump serde_json from 1.0.85 to 1.0.89
- ⬆️ Bump libc from 0.2.134 to 0.2.137
- ⬆️ Bump serde_yaml from 0.9.13 to 0.9.14
- ⬆️ Bump tracing from 0.1.36 to 0.1.37
- ⬆️ Bump tracing-subscriber from 0.3.15 to 0.3.16
- ⬆️ Bump handlebars from 4.3.4 to 4.3.5
- ⬆️ Bump libc from 0.2.133 to 0.2.134
- ⬆️ Bump openssl from 0.10.41 to 0.10.42
- ⬆️ Bump console from 0.15.1 to 0.15.2
- ⬆️ Bump schemars from 0.8.10 to 0.8.11
- ⬆️ Bump thiserror from 1.0.36 to 1.0.37
- ⬆️ bump dependencies
- ⬆️ Bump libc from 0.2.132 to 0.2.133
- ⬆️ Bump self_update from 0.31.0 to 0.32.0
- ⬆️ Bump serde_yaml from 0.9.11 to 0.9.13
- ⬆️ Bump clap from 3.2.20 to 3.2.22
- ⬆️ Bump thiserror from 1.0.34 to 1.0.35
Fixed
- 🐛 use the value of CARGO_PKG_NAME at compile time for the cache
Miscellaneous
- 🚀 (cargo-release) version 2.7.0
- arrow-up cargo update
- rotating-light disable warning on "http" in test
- 🚧 (cargo-release) start next development iteration 2.6.2-dev
Version 2.6.1
Changed
- ⬆️ Bump git2 from 0.14 to 0.15
Miscellaneous
- 🚀 (cargo-release) version 2.6.1
- 🚧 (cargo-release) start next development iteration 2.6.1-dev
Version 2.6.0
Added
- ✨ add
check_ignores
to ignore files during test-sample
Changed
- 🚨 improve code with clippy’ suggestions
- ⬆️ Bump libc from 0.2.126 to 0.2.132
- ⬆️ Bump console from 0.15.0 to 0.15.1
- ⬆️ Bump self_update from 0.30.0 to 0.31.0
- ⬆️ Bump serde_yaml from 0.9.4 to 0.9.11
- ⬆️ Bump schemars from 0.8.8 to 0.8.10
- ⬆️ Bump tracing-subscriber from 0.3.11 to 0.3.15
- ⬆️ Bump serde from 1.0.142 to 1.0.144
- ⬆️ Bump dialoguer from 0.10.0 to 0.10.2
- ⬆️ Bump run_script from 0.9.0 to 0.10.0
- ⬆️ Bump git2 from 0.14.2 to 0.14.4
- ⬆️ Bump indicatif from 0.16.2 to 0.17.0
- ⬆️ Bump serde_json from 1.0.81 to 1.0.85
- ⬆️ Bump handlebars from 4.2.2 to 4.3.4
- ⬆️ Bump pretty_assertions from 1.2.1 to 1.3.0
- ⬆️ Bump clap from 3.1.18 to 3.2.2
- ⬆️ Bump regex from 1.5.5 to 1.6.0
- ⬆️ Bump serde_yaml from 0.8.23 to 0.9.4
- ⬆️ Bump thiserror from 1.0.30 to 1.0.34
- ⬆️ Bump globset from 0.4.8 to 0.4.9
- ⬆️ Bump openssl-src from 111.17.0+1.1.1m to 111.20.0+1.1.1o
- ⬆️ Bump libc from 0.2.124 to 0.2.126
- ⬆️ Bump clap from 3.1.12 to 3.1.18
- ⬆️ Bump serde_json from 1.0.79 to 1.0.81
- ⬆️ Bump self_update from 0.29.0 to 0.30.0
- ⬆️ Bump serde from 1.0.136 to 1.0.137
- ⬆️ Bump clap from 3.1.6 to 3.1.12
- ⬆️ Bump libc from 0.2.121 to 0.2.124
- ⬆️ Bump tracing from 0.1.32 to 0.1.34
- ⬆️ Bump tracing-subscriber from 0.3.9 to 0.3.11
- ⬆️ Bump pretty_assertions from 1.2.0 to 1.2.1
- ⬆️ Bump self_update from 0.28.0 to 0.29.0
Miscellaneous
- 🚀 (cargo-release) version 2.6.0
- ⚗ configure dependabot to only track direct dependencies
- 🚧 (cargo-release) start next development iteration 2.5.2-dev
Version 2.5.1
Changed
- ⬆️ Bump libc from 0.2.119 to 0.2.121
- ⬆️ Bump actions/cache from 2 to 3
- ⬆️ Bump actions/checkout from 2.4.0 to 3
Fixed
- 🐛 preserve the original source definition when test-samples
Miscellaneous
- 🚀 (cargo-release) version 2.5.1
- pencil update changelog
- pencil update README
- 🚧 (cargo-release) start next development iteration 2.5.1-dev
Version 2.5.0
Changed
- ⬆️ upgrade cargo.lock
- 💄 show "blank" for diff on
test-samples
- 💄 accept more syntax for boolean variable from cli
- 💄 allow to use label or value of item of
select_in_values
asdefault_value
- 💄 use color to prompt
- ⬆️ Bump git2 from 0.13 to 0.14
Removed
- 🔥 clean up makefile
Fixed
- 🐛 for
ignores
value, ignore some blank caractere that could be introduced by yaml or handlebars syntax
Miscellaneous
- 🚀 (cargo-release) version 2.5.0
- poop add workaround for a bug in git2 0.14
- 🔊 add logs debug
- 🚧 (cargo-release) start next development iteration 2.4.5-dev
Version 2.4.4
Removed
- 🔥 remove task for github-upload and snapcraft push
Miscellaneous
- 🚀 (cargo-release) version 2.4.4
Version 2.4.4-dev
Version 2.4.3
Changed
- ⬆️ Bump libc from 0.2.112 to 0.2.119
- ⬆️ Bump pretty_assertions from 1.0.0 to 1.1.0
- ⬆️ Bump clap from 3.1.1 to 3.1.2
- ⬆️ Bump tracing-subscriber from 0.3.5 to 0.3.9
- ⬆️ Bump tracing from 0.1.29 to 0.1.31
- ⬆️ Bump assert_cmd from 2.0.2 to 2.0.4
- ⬆️ Bump dialoguer from 0.9.0 to 0.10.0
- ⬆️ Bump serde from 1.0.133 to 1.0.136
Miscellaneous
- 🚀 (cargo-release) version 2.4.3
- 🚧 try to build cross-platform from ci/cd (#491)
Version 2.4.2
Added
- ✅ cargo update
- 👷 add cache into workflows
Changed
- ⬆️ Bump self_update from 0.27.0 to 0.28.0
- ⬆️ Bump predicates from 2.1.0 to 2.1.1
- ⬆️ Bump handlebars from 4.2.0 to 4.2.1
- ⬆️ Bump serde_json from 1.0.74 to 1.0.79
- ⬆️ Bump clap from 3.0.5 to 3.1.1
- ⬆️ switch structopt + clap v2 to clap v3
- ⬆️ bumps dialoguer from 0.8.0 to 0.9.0
- 🚨 apply clippy suggestion
- ⬆️ swith to rust edition 2021
- ⬆️ upgrade tracing-subscriber
- ⬆️ Bump assert_cmd from 2.0.1 to 2.0.2
- ⬆️ Bump libc from 0.2.107 to 0.2.109
- ⬆️ Bump handlebars from 4.1.4 to 4.1.6
- ⬆️ Bump clap from 2.33.3 to 2.34.0
- ⬆️ Bump tracing from 0.1.28 to 0.1.29
- ⬆️ Bump structopt from 0.3.23 to 0.3.25
- ⬆️ Bump actions/checkout from 2.3.5 to 2.4.0
- ⬆️ Bump libc from 0.2.106 to 0.2.107
- ⬆️ Bump handlebars from 4.1.3 to 4.1.4
- ⬆️ Bump console from 0.14.1 to 0.15.0
- ⬆️ Bump serde_json from 1.0.68 to 1.0.69
- ⬆️ Bump schemars from 0.8.3 to 0.8.6
- ⬆️ Bump actions/checkout from 2.3.4 to 2.3.5
- ⬆️ Bump git2 from 0.13.22 to 0.13.23
- ⬆️ Bump pretty_assertions from 0.7.2 to 1.0.0
- ⬆️ Bump libc from 0.2.102 to 0.2.106
- ⬆️ bump directories, patch version and transitive dependencies
- ⬆️ Bump thiserror from 1.0.28 to 1.0.29
- ⬆️ Bump serde_yaml from 0.8.20 to 0.8.21
- ⬆️ Bump git2 from 0.13.21 to 0.13.22
- ⬆️ Bump handlebars from 4.1.2 to 4.1.3
- ⬆️ Bump run_script from 0.8.0 to 0.9.0
- ⬆️ update dependencies
- ⬆️ Bump predicates from 2.0.0 to 2.0.2
- ⬆️ Bump handlebars from 4.1.0 to 4.1.2
- ⬆️ Bump serde_json from 1.0.64 to 1.0.67
- ⬆️ Bump serde from 1.0.126 to 1.0.130
- ⬆️ Bump structopt from 0.3.22 to 0.3.23
- ⬆️ Bump assert_cmd from 1.0.7 to 2.0.0
- ⬆️ Bump predicates from 1.0.8 to 2.0.0
Fixed
- 🐛 fix bugs and linting
Miscellaneous
- 🚀 (cargo-release) version 2.4.2
- ⚗ try to build for mac m1 and linux-musl
- 🚧 (cargo-release) start next development iteration 2.4.2-dev
Version 2.4.1
Added
- ✅ update and fixe test
- ✨ allow to define select_in_values as an array of
{label, value}
+ fix evaluation of select_in_values defined as a string
Changed
- ⬆️ Bump globset from 0.4.6 to 0.4.7
Miscellaneous
- 🚀 (cargo-release) version 2.4.1
- 🚧 (cargo-release) start next development iteration 2.4.1-dev
- 🚀 (cargo-release) version 2.4.0
- pencil simplify installation from brew
- 🔊 enhance SerdeYamlError with context from tracing’Span
Version 2.4.0
Added
- ✅ update and fixe test
- ✨ allow to define select_in_values as an array of
{label, value}
+ fix evaluation of select_in_values defined as a string
Miscellaneous
- 🚀 (cargo-release) version 2.4.0
- pencil simplify installation from brew
- 🔊 enhance SerdeYamlError with context from tracing’Span
- 🚧 (cargo-release) start next development iteration 2.3.1-dev
Version 2.3.0
Added
- ✅ improve git test to be less sensitive to local git configuration
- ✅ update test for handlebar
Changed
- 🚨 apply clippy suggestion
- ⬆️ update cargo.lock
- ⬆️ upgrade to handlebars 4.0
- 🔧 define CODEOWNERS
- ⬆️ fix + cargo update
- ⬆️ Bump assert_cmd from 1.0.4 to 1.0.5
- ⬆️ Bump libc from 0.2.94 to 0.2.95
- ⬆️ Bump indicatif from 0.16.0 to 0.16.2
- ⬆️ Bump run_script from 0.7.0 to 0.8.0
- ⬆️ Bump thiserror from 1.0.24 to 1.0.25
- ⬆️ Bump serde from 1.0.125 to 1.0.126
- ⬆️ Bump assert_cmd from 1.0.3 to 1.0.4
- ⬆️ Bump self_update from 0.26.0 to 0.27.0
- ⬆️ Bump predicates from 1.0.7 to 1.0.8
- ⬆️ Bump openssl from 0.10.33 to 0.10.34
- ⬆️ Bump libc from 0.2.93 to 0.2.94
- ⬆️ Bump indicatif from 0.15.0 to 0.16.0
- ⬆️ Bump directories from 3.0.1 to 3.0.2
- ⬆️ Bump git2_credentials from 0.7.1 to 0.7.2
- ⬆️ Bump git2 from 0.13.17 to 0.13.18
- ⬆️ Bump regex from 1.4.5 to 1.4.6
- ⬆️ Bump libc from 0.2.92 to 0.2.93
- ⬆️ Bump schemars from 0.8.2 to 0.8.3
- ⬆️ Bump pretty_assertions from 0.7.1 to 0.7.2
- ⬆️ Bump serde from 1.0.124 to 1.0.125
- ⬆️ Bump walkdir from 2.3.1 to 2.3.2
- ⬆️ Bump schemars from 0.8.0 to 0.8.2
- ⬆️ Bump libc from 0.2.90 to 0.2.92
- ⬆️ Bump dialoguer from 0.7.1 to 0.8.0
- ⬆️ Bump libc from 0.2.88 to 0.2.90
- 🎨 reformat tutorial (remove EOL that can break display on some renderer)
- ⬆️ Bump openssl from 0.10.32 to 0.10.33
- ⬆️ Bump regex from 1.4.3 to 1.4.5
- ⬆️ Bump pretty_assertions from 0.6.1 to 0.7.1
- ⬆️ Bump console from 0.14.0 to 0.14.1
- ⬆️ Bump run_script from 0.6.4 to 0.7.0
- ⬆️ Bump self_update from 0.25.0 to 0.26.0
- ⬆️ Bump serde from 1.0.123 to 1.0.124
- ⬆️ Bump libc from 0.2.86 to 0.2.88
- ⬆️ Bump self_update from 0.24.0 to 0.25.0
- ⬆️ Bump serde_json from 1.0.62 to 1.0.64
- ⬆️ Bump run_script from 0.6.3 to 0.6.4
- ⬆️ Bump handlebars from 3.5.2 to 3.5.3
- ⬆️ Bump self_update from 0.23.0 to 0.24.0
- ⬆️ Bump thiserror from 1.0.23 to 1.0.24
- ⬆️ Bump serde_yaml from 0.8.16 to 0.8.17
- ⬆️ Bump libc from 0.2.85 to 0.2.86
- ⬆️ Bump slog-term from 2.7.0 to 2.8.0
- ⬆️ Bump slog-term from 2.6.0 to 2.7.0
- ⬆️ Bump serde_json from 1.0.61 to 1.0.62
- ⬆️ Bump libc from 0.2.84 to 0.2.85
- ⬆️ Bump assert_cmd from 1.0.2 to 1.0.3
- ⬆️ Bump serde_yaml from 0.8.15 to 0.8.16
- ⬆️ Bump libc from 0.2.82 to 0.2.84
- ⬆️ Bump predicates from 1.0.6 to 1.0.7
- ⬆️ Bump serde from 1.0.122 to 1.0.123
- ⬆️ Bump serde from 1.0.119 to 1.0.122
- ⬆️ Bump git2 from 0.13.15 to 0.13.17
- ⬆️ Bump serde from 1.0.118 to 1.0.119
- ⬆️ Bump tempfile from 3.1.0 to 3.2.0
- ⬆️ Bump serde_yaml from 0.8.14 to 0.8.15
- ⬆️ Bump libc from 0.2.81 to 0.2.82
- ⬆️ Bump regex from 1.4.2 to 1.4.3
- ⬆️ Bump self_update from 0.22.0 to 0.23.0
- ⬆️ Bump serde_json from 1.0.60 to 1.0.61
- ⬆️ Bump predicates from 1.0.5 to 1.0.6
- ⬆️ Bump git2_credentials from 0.7.0 to 0.7.1
- ⬆️ Bump handlebars from 3.5.1 to 3.5.2
- ⬆️ Bump git2 from 0.13.14 to 0.13.15
- ⬆️ Bump console from 0.13.0 to 0.14.0
- ⬆️ Bump thiserror from 1.0.22 to 1.0.23
- ⬆️ Bump git2 from 0.13.13 to 0.13.14
- ⬆️ Bump openssl from 0.10.31 to 0.10.32
- ⬆️ Bump git2 from 0.13.12 to 0.13.13
Breaking changes
- 💥 replace slog by tracing
Fixed
- 🏁 disable windows build (until fixe the issue with git clone on windows)
- 🐛 migration to tracing report log to stdout instead of stderr
Miscellaneous
- 🚀 (cargo-release) version 2.3.0
- 🚧 (cargo-release) start next development iteration 2.2.2-dev
Version 2.2.1
Changed
- ⬆️ upgrade handlebars_misc_helpers to fix json->toml conversion
- 🚸 add more info when error on git
- ⬆️ cargo update
Miscellaneous
- 🚀 (cargo-release) version 2.2.1
- 🚧 (cargo-release) start next development iteration 2.2.1-dev
Version 2.2.0
Changed
- 🚸 improve the display of differences when run
test-samples
- 🎨 format code
Fixed
- 🐛 wrong ifo in the error
Miscellaneous
- 🚀 (cargo-release) version 2.2.0
- 🚧 (cargo-release) start next development iteration 2.1.4-dev
Version 2.1.3
Changed
- ⬆️ Bump structopt from 0.3.20 to 0.3.21
- ⬆️ Bump serde_json from 1.0.59 to 1.0.60
- ⬆️ Bump serde from 1.0.117 to 1.0.118
- ⬆️ Bump libc from 0.2.80 to 0.2.81
- ⬆️ Bump assert_cmd from 1.0.1 to 1.0.2
- ⬆️ Bump self_update from 0.20.0 to 0.22.0
- ⬆️ Bump slog from 2.5.2 to 2.7.0
Fixed
- 🐛 do not failed to compare binary file during test-samples
Miscellaneous
- 🚀 (cargo-release) version 2.1.3
- 💡 link the book as homepage
- 🚧 (cargo-release) start next development iteration 2.1.3-dev
Version 2.1.2
Added
- ✨ add preset variable "ffizer_version"
Changed
- 👽 update config of cargo-release
- 🚨 remove useless
use
- 🚸 context info on error when set variables
Fixed
- 🐛 evaluation of
ignores
section during compositing phase of the template generate incorrect value.Handlebars expression (eq, ne,…) don’t raise error when undefined variabled are used (also in strict mode)
Miscellaneous
- 🚀 (cargo-release) version 2.1.2
- 🚧 (cargo-release) start next development iteration 2.1.2-dev
Version 2.1.1
Changed
- 🍱 introduce logo
- ⬆️ Bump actions/checkout from v2.3.3 to v2.3.4
- ⬆️ Bump thiserror from 1.0.21 to 1.0.22
Miscellaneous
- 🚀 (cargo-release) version 2.1.1
- pencil pre-publish update book, changelog
- 🚧 (cargo-release) start next development iteration 2.1.1-dev
Version 2.1.0
Added
- ✨ cli can show the json schema the of the
.ffizer.yaml
- ✨ (cli) allow to specify value of variables from cli
- ✨ allow special suffix to located anywhere in the filename (no longer a suffix ;-) )
- ✨ allow to display a message
- ✅ update test to reflect change in gitignore.io
Changed
- 🎨 remove some explicit clone
- ⬆️ upgrade git2_credentials & handlebars_misc_helpers
- ♻️ change remote test to use
ffizer test-samples
- ⬆️ Bump regex from 1.4.1 to 1.4.2
- ⬆️ Bump serde_yaml from 0.8.13 to 0.8.14
- ♻️ refactor test to use
test-samples
- ⬆️ Bump libc from 0.2.79 to 0.2.80
- ⬆️ Bump actions/checkout from v1 to v2.3.3
- ⬆️ updates severals dependencies
- 🍱 regenerate doc
Breaking changes
- 💥 error handling switch from
snafu
tothiserror
Removed
- 🔥 remove credits and bom generation
Fixed
- 🐛 prevent githb-page to use jekill and failed
- 🐛 fix a bug on windows (due to UNC path conversion)
- 💚 move data from a test to the right place
- 🐛 replace the buggy code to "git pull" by the code example from git2.rs
Miscellaneous
- 🚀 (cargo-release) version 2.1.0
- pencil pre-publish update book, changelog
- pencil update the documentation and rewrite the tutorial
- 🚧 support to include samples inside the template and to use them to test via
ffizer test-sample ...
- pencil pre-publish update book, changelog
- pencil pre-publish update book, changelog
- pencil add pages into book
- pencil update link to templates and help instruction
- pencil update doc (regenerate)
- pencil publish the json-schema of .ffizer.yaml
- 🚧 (cargo-release) start next development iteration 2.0.1-dev
Version 2.0.0
Changed
- ⬆️ update handlebars from 3.3 to 3.4
- 👽 update configuration of release plugin
- 👽 upgrade from dependabot v1 to v2 (aka github)
- ⬆️ update directories from 2.0.2 to 3.0.1
- ⬆️ Bump libc from 0.2.74 to 0.2.76
- ⬆️ Bump git2 from 0.13.8 to 0.13.10
- ⬆️ Bump structopt from 0.3.16 to 0.3.17
- ⬆️ Bump serde from 1.0.114 to 1.0.115
- ⬆️ Bump structopt from 0.3.15 to 0.3.16
- ⬆️ Bump console from 0.11.3 to 0.12.0
- ⬆️ Bump libc from 0.2.73 to 0.2.74
- ⬆️ Bump self_update from 0.17.0 to 0.19.0
- ⬆️ Bump git2 from 0.13.6 to 0.13.8
- ⬆️ Bump libc from 0.2.72 to 0.2.73
- ⬆️ Bump predicates from 1.0.4 to 1.0.5
- ⬆️ Bump handlebars from 3.2.1 to 3.3.0
- ⬆️ Bump self_update from 0.16.0 to 0.17.0
- ⬆️ Bump libc from 0.2.71 to 0.2.72
- ⬆️ Bump winapi from 0.3.8 to 0.3.9
- ⬆️ Bump handlebars from 3.1.0 to 3.2.1
- ⬆️ Bump openssl from 0.10.29 to 0.10.30
- ⬆️ Bump serde from 1.0.112 to 1.0.114
- ⬆️ Bump structopt from 0.3.14 to 0.3.15
- ⬆️ Bump serde from 1.0.111 to 1.0.112
- ⬆️ Bump indicatif from 0.14.0 to 0.15.0
- ⬆️ Bump serde_yaml from 0.8.12 to 0.8.13
Miscellaneous
- 🚀 (cargo-release) version 2.0.0
Version 2.0.0-beta.3
Changed
- 👽 update call to dialoguer API
- ⬆️ Bump git2_credentials from 0.6.0 to 0.6.1
- 👽 Bump handlebars_misc_helper from 0.9.0 to 0.9.1 to be able to bump handlebars to 3.1.0
- ⬆️ Bump handlebars from 3.0.1 to 3.1.0
- 👽 reflect change in dialoguer api
- ⬆️ Bump dialoguer from 0.5.1 to 0.6.2
- 👽 the output of gitignore.io has changed
- 🏗 the evaluation of values in the configuration is on demand (previously on load + on demand)
- 🚚 move files under module
ui
- ⬆️ Bump self_update from 0.15.0 to 0.16.0
- ⬆️ Bump serde from 1.0.110 to 1.0.111
- ⬆️ Bump slog-term from 2.5.0 to 2.6.0
- ⬆️ Bump regex from 1.3.7 to 1.3.9
- ⬆️ Bump libc from 0.2.70 to 0.2.71
- ⬆️ Bump git2 from 0.13.5 to 0.13.6
- ⬆️ Bump console from 0.11.2 to 0.11.3
- ⬆️ Bump self_update from 0.14.0 to 0.15.0
- ⬆️ Bump run_script from 0.6.2 to 0.6.3
- ⬆️ Bump libc from 0.2.69 to 0.2.70
- ⬆️ Bump snafu from 0.6.6 to 0.6.8
- ⬆️ Bump serde from 1.0.106 to 1.0.110
- ⬆️ Bump serde_yaml from 0.8.11 to 0.8.12
- ⬆️ Bump console from 0.11.1 to 0.11.2
- ⬆️ Bump console from 0.10.1 to 0.11.1
- ⬆️ Bump git2 from 0.13.4 to 0.13.5
- ⬆️ Bump dialoguer from 0.5.0 to 0.5.1
- ⬆️ Bump console from 0.10.0 to 0.10.1
- ⬆️ Bump git2 from 0.13.3 to 0.13.4
- ⬆️ Bump git2 from 0.13.2 to 0.13.3
- ⬆️ Bump structopt from 0.3.13 to 0.3.14
- ⬆️ Bump regex from 1.3.6 to 1.3.7
- ⬆️ Bump libc from 0.2.68 to 0.2.69
- 🚨 apply clippy suggestion
- ⬆️ upgrade dependencies
- ⬆️ Bump git2 from 0.13.0 to 0.13.2
- ⬆️ Bump structopt from 0.3.12 to 0.3.13
- ⬆️ Bump openssl from 0.10.28 to 0.10.29
- ⬆️ Bump serde from 1.0.105 to 1.0.106
- ⬆️ Bump snafu from 0.6.3 to 0.6.6
- ⬆️ Bump assert_cmd from 1.0.0 to 1.0.1
- ⬆️ Bump assert_cmd from 0.12.1 to 1.0.0
- ⬆️ Bump regex from 1.3.5 to 1.3.6
- ⬆️ Bump assert_cmd from 0.12.0 to 0.12.1
- ⬆️ Bump human-panic from 1.0.1 to 1.0.3
- ⬆️ Bump snafu from 0.6.2 to 0.6.3
- ⬆️ Bump serde from 1.0.104 to 1.0.105
- ⬆️ Bump structopt from 0.3.11 to 0.3.12
- ⬆️ Bump libc from 0.2.67 to 0.2.68
Fixed
- 🐛 do not create folder in folder and crash on update
Miscellaneous
- 🚀 (cargo-release) version 2.0.0-beta.3
- poop workaround to not failed if
ignores
is a not-evaluable path - 🚀 (cargo-release) version 2.0.0-beta.2
- 📦 disable snapcraft (temporary ?)
Version 2.0.0-beta.2
Fixed
- 🐛 do not create folder in folder and crash on update
Miscellaneous
- 🚀 (cargo-release) version 2.0.0-beta.2
Version 2.0.0-beta.1
Added
- 🎉 prepare 2.0.0 release
- ✅ test e2e can now simulate run over an existing folder
- ✨ shell
scripts
can be run after apply of templates - ✨ hbs template can be chained to transform content from existing file or from previous template layer
Changed
- ⬆️ Bump globset from 0.4.4 to 0.4.5
- ⬆️ Bump predicates from 1.0.3 to 1.0.4
- ⬆️ Bump run_script from 0.6.1 to 0.6.2
- ⬆️ Bump git2 from 0.12 to 0.13
- ⬆️ Bump handlebars_misc_helpers from 0.8.0 to 0.9.0
- ⬆️ Bump regex from 1.3.4 to 1.3.5
- ⬆️ Bump console from 0.9.2 to 0.10.0
- ⬆️ Bump handlebars_misc_helpers from 0.7.0 to 0.8.0
- ♻️ change dir_diff into dir_diff_list
- 🚚 moving every content of it tests under a
tests/data
- ⬆️ Bump predicates from 1.0.3 to 1.0.4
- ⬆️ Bump self_update from 0.13.0 to 0.14.0
- ⬆️ Bump structopt from 0.3.9 to 0.3.11
- ⬆️ upgrade transitive deps
- ⬆️ struct_opt from 0.3.8 to 0.3.9
- ♻️ extract code from mk_file_on_action (too big)
- ⬆️ Bump libc from 0.2.66 to 0.2.67
- ⬆️ Bump run_script from 0.6.1 to 0.6.2
- ⬆️ Bump self_update from 0.12.0 to 0.13.0
- 👽 enable self_update features required for extracting archives of releases
- ⬆️ Bump self_update from 0.11.1 to 0.12.0
- 🚚 rename
test_4
intotest_4_compose
- ⚡️ avoid to render file name if no
{{
- ♻️ prepare to support pipeline of template to render a file
- ♻️ use a struct TemplateLayer instead of a Tuple
- 🚚 rename Variable into VariableDef
- ⬆️ Bump git2_credentials from 0.4.0 to 0.5.0
- ⬆️ Bump run_script from 0.6.0 to 0.6.1
- ⬆️ Bump openssl from 0.10.27 to 0.10.28
- ⬆️ upgrade handlebars_misc_helpers to work with handlebars 3.0.1
- ⬆️ Bump handlebars from 2.0.4 to 3.0.1
- ⬆️
cargo update
- ⬆️ Bump indicatif from 0.13.0 to 0.14.0
- ⬆️ Bump regex from 1.3.3 to 1.3.4
- ⬆️ Bump slog-term from 2.4.2 to 2.5.0
- ⬆️ Bump self_update from 0.11.0 to 0.11.1
- ⬆️ Bump openssl from 0.10.26 to 0.10.27
- ⬆️ Bump self_update from 0.10.0 to 0.11.0
- ⬆️ Bump console from 0.9.1 to 0.9.2
Removed
- 🔥 remove useless file
Fixed
- 🏁 try to fix test_3
- 🏁 try to fix test_3 to show mutli-os cmd
- 🐧 fix e2e test3 for linux
- 🐛 test e2e ran twice, caused issue with override test
- 🐛 (scripts) render scripts before run
- 🏁 try to fix test on windows
- 💚 update remote_test (due to change in usage of assert_cmd)
- 🐛 fix syntax of Cargo.toml
- 🍎 try a new settings to generate macos binary compatible with pre-catalina version
- 🐛 (README) the script getLatest.sh only work with bash (not with POSIX shell like dash)
- 🏁 test on unix file permissions should not run on windows
- 🐛 copy file permissions from template into destination
Miscellaneous
- 🚀 (cargo-release) version 2.0.0-beta.1
- pencil (README) Alternatives sections moved to wiki
- 🔊 add log about the phase
- 🔀 Merge branch ‘dependabot/cargo/handlebars-3.0.1’
- 🔀 Merge branch ‘master’ into dependabot/cargo/handlebars-3.0.1
- 🚧 add support for non-string value as variable
- ⚗ try a workaround to be able to build without a missing fix in jmespath (to work with the latest serde_json)
- 🚧 (cargo-release) start next development iteration 1.7.2-dev
Version 1.7.1
Changed
- ⬆️ upgrade self_update from 0.9.0 to 0.10.0
- ⬆️ Bump structopt from 0.3.7 to 0.3.8
- ⬆️ Bump run_script from 0.5.0 to 0.6.0
- ⬆️ Bump snafu from 0.6.1 to 0.6.2
- ⬆️ Bump self_update from 0.8.0 to 0.9.0
- ♻️ internally store values as serde_yaml::Value (previously was String)
- ⬆️ Bump walkdir from 2.2.9 to 2.3.1
- ⬆️ Bump regex from 1.3.1 to 1.3.3
- ⬆️ :lock: Bump http from 0.1.18 to 0.1.21
- ⬆️ Bump snafu from 0.6.0 to 0.6.1
- ⬆️ Bump handlebars from 2.0.2 to 2.0.4
- ⬆️ Bump run_script from 0.4.0 to 0.5.0
Fixed
- 🐛 restore output of log on terminal
Miscellaneous
- 🚀 (cargo-release) version 1.7.1
- 🚧 (cargo-release) start next development iteration 1.7.1-dev
Version 1.7.0
Added
- 👷 add config for dependabot
Changed
- 🚨 apply clippy suggestion
- ⬆️ Bump git2 from 0.10. 2 to 0.11.0
- ⬆️ Bump handlebars_misc_helpers from 0.5.2 to 0.6.0
- ⬆️ Bump run_script from 0.3.2 to 0.4.0
- ⬆️ Bump structopt from 0.3.6 to 0.3.7
- ⬆️ Bump structopt from 0.3.5 to 0.3.6
- ⬆️ Bump serde from 1.0.103 to 1.0.104
- ⬆️ Bump assert_cmd from 0.11.1 to 0.12.0
Miscellaneous
- 🚀 (cargo-release) version 1.7.0
- 💡 explain options of release profile
- 🔊 provide more info (path of template) when error during rendering of a template
- 🚧 (cargo-release) start next development iteration 1.6.4-dev
Version 1.6.3
Changed
- 🔧 (ci) refactor the build and options (on mac_os)
- ⬆️ Bump libc from 0.2.65 to 0.2.66
- ⬆️ Bump serde from 1.0.102 to 1.0.103
- ⬆️ Bump structopt from 0.3.4 to 0.3.5
- ⬆️ Bump openssl from 0.10.25 to 0.10.26
Fixed
- 🐛 trim pattern to ignore from template’s config
Miscellaneous
- 🚀 (cargo-release) version 1.6.3
- 🚀 (cargo-release) version 1.6.2
- 🚀 (cargo-release) version 1.6.1
- 🚧 (cargo-release) start next development iteration 1.6.1-dev
Version 1.6.0
Added
- ✅ remove the doc test of tree because tree is not available publicly
- ✨ allow to use merge tool (as defined in git config) to merge updates
- ✨ support several rules for the update of existing files (ask, override, keep, current-as-local, update-as-remote, show-diff)
- 👷 try enable kcov+codecov report on github-actions
Changed
- ⬆️ Bump git2 from 0.10.1 to 0.10.2
- 💄 add description of update’s option in selector
- 🚨 fix some code practice (thx clippy)
- ⬆️ Bump structopt from 0.3.3 to 0.3.4
- ⬆️ Bump self_update from 0.7.0 to 0.8.0
- ⬆️ Bump snafu from 0.5.0 to 0.6.0
- ⬆️ Bump indicatif from 0.12.0 to 0.13.0
- ⬆️ Bump dialoguer from 0.4.0 to 0.5.0
- ⬆️ Bump console from 0.9.0 to 0.9.1
- ⬆️ Bump slog-term from 2.4.1 to 2.4.2
- ⬆️ Bump serde from 1.0.101 to 1.0.102
- ⬆️ Bump libc from 0.2.64 to 0.2.65
- 🎨 reformat code
- 💄 display "plan to execute" with a tree and lines
- ⬆️ Bump libc from 0.2.62 to 0.2.64
Removed
- 🔥 remove azure-pipelines definition (switch to github action)
- 🔥 (cli) remove useless conf
Fixed
- 🐛 (snapcraft) fix the build of the snap on github-action/ubuntu
- 🍎 the cache and project dir should be under "ffizer", not "github"
- ✏️ try to remove some markdown warning
- 🐛 use only 1 source file from template(s) per destination file
- 🐛 on error the exit status should be non-zero
- 🐛 fix url to retrieve the latest version
Miscellaneous
- 🚀 (cargo-release) version 1.6.0
- ⚗ try a fix for the build of snap
- 📦 setup packaging via snapcraft
- ⚗ try to auto-detect proxy configuration for git call
- pencil pre-publish update book, changelog, bom
- pencil (README) update badge for CI
- 🚧 (cargo-release) start next development iteration 1.5.2-dev
Version 1.5.1
Changed
- 👽 cargo-release change the default value of tag-name to include a v :-(
Fixed
- 🐛 (ci) missing GITHUB_REPOSITORY on azure-pipeline so the tarball was not build & uploaded
Miscellaneous
- 🚀 (cargo-release) version 1.5.1
- 🚧 (cargo-release) start next development iteration 1.5.1-dev
Version v1.5.0
Version 1.5.0
Added
- ✅ skip the git test if git is not in the path
- 👷 init github-action
Changed
- 🔧 (test) try to fix setup of git
- 🔧 enable feature "cli" by default to work friendly with
cargo install
andtopgrade
- ⬆️ update Cargo.lock
- ⬆️ Bump structopt from 0.3.2 to 0.3.3
- ⬆️ Bump hashbrown from 0.6.0 to 0.6.1
- ⬆️ Bump serde_yaml from 0.8.9 to 0.8.11
- ⬆️ Bump openssl from 0.10.24 to 0.10.25
- ⬆️ Bump handlebars_misc_helpers from 0.5.1 to 0.5.2
- ⬆️ Bump structopt from 0.3.1 to 0.3.2
- ⬆️ Bump serde from 1.0.100 to 1.0.101
- 🍱 add an asciicast + update book
- ⬆️ Bump git2 from 0.10.0 to 0.10.1
- ⬆️ Bump self_update from 0.6.0 to 0.7.0
- ⬆️ Bump console from 0.8.0 to 0.9.0
- ⬆️ Bump serde from 1.0.99 to 1.0.100
- ⬆️ Bump indicatif from 0.11.0 to 0.12.0
- ⬆️ (ci) upgrade to latest the vmImages used for build
- 🔧 (ci) disables the update check during startup of cargo make
- 🚨 remove 1 clone
- ⬆️ Bump structopt from 0.3.0 to 0.3.1
- ⬆️ Bump git2 from 0.9.2 to 0.10.0
- ⬆️ Bump handlebars_misc_helpers from 0.5.0 to 0.5.1
- ⬆️ Bump handlebars from 2.0.1 to 2.0.2
- 👽 restore the behavior of
--help
- ⬆️ Bump regex from 1.3.0 to 1.3.1
- ⬆️ Bump regex from 1.2.1 to 1.3.0
- 📌
cargo update
- ⬆️ Bump winapi from 0.3.7 to 0.3.8
- ⬆️ Bump console from 0.7.7 to 0.8.0
- ⬆️ Bump structopt from 0.2.18 to 0.3.0
- ⬆️ Bump lazy_static from 1.3.0 to 1.4.0
- ⬆️ :lock: Bump spin from 0.5.0 to 0.5.2
- ⬆️ Bump snafu from 0.4.4 to 0.5.0
- ⬆️ Bump serde from 1.0.98 to 1.0.99
Breaking changes
- 💥 prepare upgrade to structopt 0.3.0
Removed
- ➖ remove direct dependency to hashbrown
Fixed
- 💚 (ci) try to fix azure-pipelines by downgrade image vm + disable cache
- ✏️ fix typo in commit-message
- 🐛 (git) add missing call to disconnect after fetch
- 🐛 (git) fix the "git pull" to update previously cloned & cached template
- ✏️ fix markdown typo
- 🐛 try fix the cargo home cache
- ✏️ (README) typo
- 🐛 move dependencies only for cli
Miscellaneous
- 🚀 (cargo-release) version 1.5.0
- 🚧 add sub-command èinspectè to provide information about ffizer (cache, configuration)
- ⚗ (test) try to please the setup of azure/linux
- 🔊 (test) add info when test git’script fail
- pencil (README) move demo to the top
- ⚗ (ci) restore installation of rustup on every platform
- pencil pre-publish update book, changelog, bom
- 📝 update screencast (3)
- 📝 update screencast (2)
- 📝 update screencast
- ⚗ (ci) fix rustup is not pre-installed on MacOs image
- ⚗ (ci) try a cross platform setup
- ⚗ (ci) experiment if rust is preinstalled and powershell on every platform
- ⚗ (ci) try setup windows
- ⚗ (ci) try bash sript on windows (like allowed from https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/cross-platform-scripting?view=azure-devops&tabs=yaml#consider-bash-or-pwsh (3)
- ⚗ (ci) :alembic: (ci) try bash sript on windows (like allowed from https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/cross-platform-scripting?view=azure-devops&tabs=yaml#consider-bash-or-pwsh (2)
- ⚗ (ci) try bash sript on windows (like allowed from https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/cross-platform-scripting?view=azure-devops&tabs=yaml#consider-bash-or-pwsh
- ⚗ (ci) try conditional install of cargo-make (3)
- ⚗ (ci) try conditional install of cargo-make (2)
- ⚗ (ci) try conditional install of cargo-make
- ⚗ (ci) try setup cargo cache
- ⚗ (ci) try to fix path issue with cargo and cache
- typo update label of Azure Task
- ⚗ try to enable cache for cargo on CI
- 🚧 (cargo-release) start next development iteration 1.4.1-dev
Version 1.4.0
Changed
- 🚸 display "plan to execute" in as a colorized table (more readable)
- 🔧 change the way to commit update of doc (env is set after dependencies task)
Fixed
- 🐛 restore the behavior to use the remote_path ignoring subfolder when retrieve git repo
Miscellaneous
- 🚀 (cargo-release) version 1.4.0
- 🔊 add more info on handlebars error
- 📝 pre-publish update book, changelog, bom
- 🔊 add log, refactor call, use log for Err in main
- 🚧 (cargo-release) start next development iteration 1.3.2-dev
Version 1.3.1
Changed
- ⬆️ Bump libc from 0.2.61 to 0.2.62
Fixed
- 🐛 (README) fix instruction for installation via cargo.
Miscellaneous
- 🚀 (cargo-release) version 1.3.1
- 📦 to generate archive without "./" as prefix (to workaround an issue in self_update)
- 🚧 (cargo-release) start next development iteration 1.3.1-dev
Version 1.3.0
Added
- ✨ add support of select (combobox) for variable’s value
- ✨ (variables) allow variable to be hidden
Changed
- ⬆️ Bump directories from 2.0.1 to 2.0.2
- 👽 update code to match change in self_update
- ⬆️ Bump self_update from 0.5.1 to 0.6.0
- ⬆️ Bump hashbrown from 0.5.0 to 0.6.0
- ⬆️ Bump libc from 0.2.60 to 0.2.61
- 🚨 (clippy) apply some suggestion
- ⬆️ Bump handlebars_misc_helpers from 0.3.0 to 0.5.0
- ⬆️ Bump snafu from 0.4.3 to 0.4.4
- ⬆️ Bump regex from 1.2.0 to 1.2.1
- ⬆️ Bump test-generator from 0.2.2 to 0.3.0
- ⬆️ Bump git2 from 0.9.1 to 0.9.2
- ⬆️ Bump slog from 2.5.1 to 2.5.2
- ⬆️ Bump regex from 1.1.9 to 1.2.0
- ⬆️ Bump openssl from 0.10.23 to 0.10.24
Breaking changes
- 💥 change error handling, move from
failure
tostd::error::Error
andsnafu
Fixed
- ✏️ README fix syntax to be readable by crates.io
Miscellaneous
- 🚀 (cargo-release) version 1.3.0
- 📝 (book) update
- 📝 (CHANGELOG) update
- 📝 (README) rework the features section
- 📝 (crates) update categories
- 🚧 (cargo-release) start next development iteration 1.2.1-dev
Version 1.2.0
Added
- ✨ allow template content to be into a subfolder
template
#79 - ➕ use hashbrown (like handlebars) to replace std BTreeMap, HashMap, HashSet
Changed
- ♻️ use handlebars helpers externalized into handlebars_misc_helpers
- ♻️ move handlebars/hbs into a module folder and split into submodules
- 🚨 remove unused code
- 🔧 limit dependencies only used by cli
- ⬆️ Bump libc from 0.2.59 to 0.2.60
- ⬆️ Bump serde from 1.0.94 to 1.0.97
- ⬆️ Bump handlebars from 2.0.0 to 2.0.1
- ⬆️ Bump slog from 2.4.1 to 2.5.1
- ⬆️ Bump slog-term from 2.4.0 to 2.4.1
Fixed
- 🐛 adjust version of dependencies to existing value
- ✏️ fix typo in badge
Miscellaneous
- 🚀 (cargo-release) version 1.2.0
- 📝 update book
- 📝 README update list of templates
- 🚧 (cargo-release) start next development iteration 1.1.1-dev
Version 1.1.0
Changed
- ⬆️ Bump git2 from 0.8.0 to 0.9.1 & git2_credentials from 0.2.0 to 0.3.0
- ⬆️ Bump libc from 0.2.58 to 0.2.59
- ⬆️ :lock: Bump libflate from 0.1.21 to 0.1.25
- ⬆️ Bump regex from 1.1.8 to 1.1.9
- ⬆️ Bump regex from 1.1.7 to 1.1.8
- ⬆️ :lock: Bump smallvec from 0.6.9 to 0.6.10
- ⬆️ Bump handlebars from 2.0.0-beta.3 to 2.0.0
- ⬆️ Bump tempfile from 3.0.9 to 3.1.0
- ⬆️ Bump tempfile from 3.0.8 to 3.0.9
- ⬆️ Bump serde from 1.0.93 to 1.0.94
- ⬆️ Bump globset from 0.4.3 to 0.4.4
- ⬆️ Bump structopt from 0.2.17 to 0.2.18
- ⬆️ Bump handlebars from 2.0.0-beta.2 to 2.0.0-beta.3
- ⬆️ Bump serde from 1.0.92 to 1.0.93
- ⬆️ Bump console from 0.7.6 to 0.7.7
- ⬆️ Bump console from 0.7.5 to 0.7.6
- ⬆️ Bump regex from 1.1.6 to 1.1.7
- ⬆️ Bump walkdir from 2.2.7 to 2.2.8
- ⬆️ Bump reqwest from 0.9.17 to 0.9.18
- ⬆️ Bump serde from 1.0.91 to 1.0.92
- ⬆️ Bump structopt from 0.2.16 to 0.2.17
- ⬆️ Bump libc from 0.2.55 to 0.2.58
- ⬆️ Bump directories from 2.0.0 to 2.0.1
- ⬆️ Bump structopt from 0.2.15 to 0.2.16
- ⬆️ Bump directories from 1.0.2 to 2.0.0
- ⬆️ Bump tempfile from 3.0.7 to 3.0.8
- ⬆️ Bump openssl from 0.10.22 to 0.10.23
- ⬆️ Bump libc from 0.2.54 to 0.2.55
- ⬆️ Bump dialoguer from 0.3.0 to 0.4.0
- ⬆️ Bump reqwest from 0.9.16 to 0.9.17
- ⬆️ Bump openssl from 0.10.21 to 0.10.22
Fixed
- 🐛 fix Cargo warning about exclude
Miscellaneous
- 🚀 (cargo-release) version 1.1.0
- 🚧 (cargo-release) start next development iteration 1.0.1-dev
Version 1.0.0
Added
- ➕ use git2_credentials (extract of existing code)
- ✅ (ci) enable test_remote on ci build
Changed
- ⬆️ Bump serde from 1.0.90 to 1.0.91
- ⬆️ Bump git2_credentials from 0.1.1 to 0.2.0
- ⬆️ Bump openssl from 0.10.20 to 0.10.21
- ⬆️ Bump reqwest from 0.9.15 to 0.9.16
- ⬆️ Bump serde_yaml from 0.8.8 to 0.8.9
- ⬆️ Bump libc from 0.2.53 to 0.2.54
- ⬆️ Bump libc from 0.2.51 to 0.2.53
- ⬆️ Bump regex from 1.1.5 to 1.1.6
- ⬆️ Bump globset from 0.4.2 to 0.4.3
- ⬆️ Bump reqwest from 0.9.14 to 0.9.15
- ⬆️ Bump reqwest from 0.9.13 to 0.9.14
- ⬆️ Bump handlebars from 2.0.0-beta.1 to 2.0.0-beta.2
- ⬆️ Bump serde from 1.0.89 to 1.0.90
- ⬆️ Bump reqwest from 0.9.12 to 0.9.13
- ⬆️ Bump regex from 1.1.2 to 1.1.5
Miscellaneous
- 🚀 (cargo-release) version 1.0.0
- 🚧 (build) prepare 1.0.0
- 📝 (README) update build instruction
- 🚧 (cargo-release) start next development iteration 0.12.2-dev
Version 0.12.1
Changed
- ⬆️ Bump assert_cmd from 0.11.0 to 0.11.1
Removed
- 🔇 remove xdb! call
- 🔥 (ci) remove travis configuration
- 🔇 (ci) remove verbose mode during github-upload-flow
Fixed
- ✏️ fix typo in log
- 🐛 report error (instead of crash) when error during computation of rendered path
- 🐛 fix the folder use to clone when subfolder is defined (cause by refactor)
Miscellaneous
- 🚀 (cargo-release) version 0.12.1
- 📝 (docs) add information about template_configuration
- 🚧 (cargo-release) start next development iteration 0.12.1-dev
Version 0.12.0
Changed
- ⬆️ Bump reqwest from 0.9.11 to 0.9.12
Fixed
- 🐛 (git) fix authentication via ssh, https
Miscellaneous
- 🚀 (cargo-release) version 0.12.0
- 📝 (CHANGELOG) update
- ⚗ (ci) update github-upload task to not failed on error during release creation
- 🚧 (cargo-release) start next development iteration 0.11.4-dev
Version 0.11.3
Fixed
- 🐛 (git) remove folder if error during git retieve
Miscellaneous
- 🚀 (cargo-release) version 0.11.3
- ⚗ (ci) try fix for github-upload
- 📝 update changelog
- 🚧 (cargo-release) start next development iteration 0.11.3-dev
Version 0.11.2
Fixed
- 🐛 (ci) try to fix github-upload-flow
Miscellaneous
- 🚀 (cargo-release) version 0.11.2
- 🚧 (cargo-release) start next development iteration 0.11.2-dev
Version 0.11.1
Added
- ✨ (hbs) add helper env_var
- ✨ default_value can be composed of previously defined value
Changed
- ⬆️ (build) update cargo.lock
- 🔧 (ci) try to fix upload of asset on github (for windows, mac, linux)
- ⬆️ Bump handlebars from 1.1.0 to 2.0.0-beta.1
- ♻️ (git) try to git pull instead of rm + clone on already cached (cloned) template
- 🔧 (cargo) tried to decrease size of executable
- ⬆️ Bump structopt from 0.2.14 to 0.2.15
Fixed
- 🐛 (test) fix test about env_var
- 🐛 path_helpers canonicalize existing path
- 🐛 (test) fix warning
- 🐛 try to static link openssl
- 🐛 fix the download of git repository
Miscellaneous
- 🚀 (cargo-release) version 0.11.1
- 🚀 (cargo-release) version 0.11.0
- 📝 (ci) add info
- ⚗ (build) fix syntax error in Makefile.toml
- ⚗ (build) try to use github-release to upload dist
- 🚧 (cargo-release) start next development iteration 0.10.3-dev
Version 0.10.2
Changed
- ⬆️ Bump reqwest from 0.9.10 to 0.9.11
Removed
- 🔥 (cirrus) remove upload script
Miscellaneous
- 🚀 (cargo-release) version 0.10.2
- ⚗ (travis) try named cache to optimize
- 🚧 (cargo-release) start next development iteration 0.10.2-dev
Version 0.10.1
Added
- 👷 (azure) set up CI with Azure Pipelines
Changed
- 🔧 (make) use profile and platform
- 🔧 (make) move upload to github as part of make
- 🔧 (azure) add deploy to github + fix variables
- 🔧 (cirrus) fix osx script
- 🔧 (cirrus) fix syntax
- 🔧 (publish) diseable changelog update during publication
- 🔧 (travis) try to workaround the timeout (on windows)
- 🔧 (cirrus) try a windows & osx setup
Removed
- 🔥 (cirrus) remove cirrus-ci configuration
Fixed
- 🐛 (azure) profile injection cross platform
- 🐛 (azure) fix typo in profile injection
- 🐛 (azure) try to fix syntax
- 🐛 (make) fix typo in tasks.zip-release-binary-for-target
- 🐛 (make) fix syntax error into windows path
- 🐛 (windows) try to fix the packaging
- ✏️ (README) syntax error
- 🐛 (travis) always build the zip to not fail during release
Miscellaneous
- 🚀 (cargo-release) version 0.10.1
- 🚧 (cirrus) disable codecov on cirrus
- 📦 (make) use "cargo release" for publish-flow
- 📝 add a CHANGELOG.md
- 📦 (cargo) update lock
- 🚧 (cargo-release) start next development iteration 0.10.1-dev
Version 0.10.0
Added
- 👷 (travis) increase cache timeout (try to fix for windows)
- 👷 (cirrus) try to setup codecov
- 👷 (cirrus) add missing install of cargo-make (2)
- 👷 (cirrus) add missing install of cargo-make
- 👷 (travis, cirrus, make) setup cargo-make
- 👷 (cirrus) trigger and enable release mode
- 👷 start experiment with cirrus-ci
- ✅ (e2e) add a basic test about import
- ✨ (imports) allow to use ffizer_src_uri and ffizer_src_rev into imports
- ✨ (fileext) remove extention .ffizer.raw (and keep it)
- 👷 (travis) try to re-enable the cache
- 👷 (travis) disable cargo install-update -a
- ✨ (imports) allow template to be composed by other template
- 👷 increase timeout when builing on travis
Changed
- 🎨 use Upper Case for lazy static ref
- ⬆️ Bump serde from 1.0.88 to 1.0.89
- ⬆️ Bump regex from 1.1.0 to 1.1.2
- ⬆️ Bump lazy_static from 1.2.0 to 1.3.0
- 🎨 (tests) automate test from local directories
- ⬆️ Bump reqwest from 0.9.9 to 0.9.10
- ⬆️ Bump serde from 1.0.87 to 1.0.88
- ⬆️ Bump tempfile from 3.0.6 to 3.0.7
- 🎨 (render) introduce a TransformValues trait - use it to delegate its impl to each type
- ⬆️ Bump assert_cmd from 0.10.2 to 0.11.0
- ⬆️ Bump tempfile from 3.0.5 to 3.0.6
- ⬆️ Bump serde from 1.0.86 to 1.0.87
- 🎨 change the way to import serde & serde_derive
- 📌 update locked dependencies
- 🎨 apply clippy suggestions
- 🎨 reformat
- 🎨 refactor source definition into SourceLoc (SourceLoc can be used from cli or cfg)
- 🎨 (cfg) remove crappy ignores_str, by using a PathPattern
- ⬆️ Bump reqwest from 0.9.8 to 0.9.9
- ⬆️ Bump serde_derive from 1.0.84 to 1.0.85
- ⬆️ Bump serde from 1.0.84 to 1.0.85
- ⬆️ Bump Inflector from 0.11.3 to 0.11.4
- ⬆️ Bump console from 0.7.3 to 0.7.5
- ⬆️ Bump console from 0.7.2 to 0.7.3
- ⬆️ Bump reqwest from 0.9.5 to 0.9.8
- ⬆️ Bump self_update from 0.5.0 to 0.5.1
- ⬆️ Bump failure from 0.1.4 to 0.1.5
- ⬆️ Bump serde_derive from 1.0.83 to 1.0.84
- ⬆️ Bump serde from 1.0.83 to 1.0.84
- 🎨 remove useless ‘extern crate’ with rust edition 2018
- 🎨 refactor cli opts and sub command
- ⬆️ Bump failure from 0.1.3 to 0.1.4
- ⬆️ Bump serde from 1.0.82 to 1.0.83
- ⬆️ Bump serde_derive from 1.0.82 to 1.0.83
- ⬆️ Bump indicatif from 0.10.3 to 0.11.0
- ⬆️ Bump console from 0.7.1 to 0.7.2
Removed
- 🔇 (scripts) remove trace when run getLatest.sh
Fixed
- 🐛 fix getLatest.sh for linux
- 🐛 remove .unwrap() inside main code
- 🐛 (e2e) ignore diff between \r\n and \n
- ✏️ (README) fix typo
- 🐛 (travis) fix syntax error
Miscellaneous
- 🚀 (cargo-release) version 0.10.0
- 📦 set the right version (0.10.0 not yet release)
- 📝 (README) add codecov badge
- 📦 try cargo-release
- 📝 (README) update features checkbox
- 📦 prepare release
- 📦 (scripts) to download the latest binary
- 📦 repo for sample renamed
- 📝 (README) complete homebrew instruction
- 📦 (brew) move homebrew stuff to homebrew-ffizer repo
- 📦 transfert repo ownership from davidB to ffizer
- 📦 (homebrew) experiment to deploy a formulae
- 📝 (README) update link to book
- 🚀 deploying docs manually (no ci)
- 📝 (book) move part of content of README into book
Version 0.9.0
Changed
- 🎨 apply clippy suggestion
- ⬆️ Bump git2 from 0.7.5 to 0.8.0
- ⬆️ Bump serde_derive from 1.0.81 to 1.0.82
- ⬆️ Bump serde from 1.0.81 to 1.0.82
- ⬆️ Bump structopt from 0.2.13 to 0.2.14
- ⬆️ Bump serde_derive from 1.0.80 to 1.0.81
- ⬆️ Bump serde from 1.0.80 to 1.0.81
Breaking changes
- 💥 cli change to support subcommand (apply & upgrade)
Version 0.8.0
Changed
- ⬆️ move to rust edition 2018
- 🚸 (cli) use human_panic…
Miscellaneous
- 📦 prepare release
Version 0.7.1
Changed
- ⬆️ Bump regex from 1.0.6 to 1.1.0
- ⬆️ Bump indicatif from 0.10.2 to 0.10.3
- ⬆️ Bump indicatif from 0.10.1 to 0.10.2
- ⬆️ Bump console from 0.7.0 to 0.7.1
- ⬆️ upgrade dependencies
Miscellaneous
- 📦 prepare release
- 📝 (README) add a template to the list
Version 0.7.0
Added
- ✨ (cfg) can use handlebars into ignores’entry and default_value in ffizer.yaml
- 👷 (travis) try to fix random timeout on windows (6)
- 👷 (travis) try to fix random timeout on windows (5)
- 👷 (travis) try to fix random timeout on windows (4)
- 👷 (travis) try to fix random timeout on windows (3)
- 👷 (travis) try to fix random timeout on windows (2)
- 👷 (travis) try to fix random timeout on windows
- ✨ (render) add helper to transform path
Changed
- 🎨 (e2e) compare content of file as string (vs vec[u8]) to ease debug
- 🎨 (e2e) capture stderr & stdout
- ⬆️ Bump tempfile from 3.0.4 to 3.0.5
- ⬆️ Bump indicatif from 0.9.0 to 0.10.1
Fixed
- ✏️ (README) fixing typo
Miscellaneous
- 📦 prepare release
- 🚧 (cfg) allow to use handlebars and cli info into part of ffizer.yml
- 📝 (README) how to chain helpers
- 📝 (README) fix syntax
- 📦 (cargo) try to exclude tests
Version 0.6.0
Added
- ✨ (render) add helper to do http request and a preconfigured to request gitignore.io
- ✨ #6 (render) add helper to transform string
Changed
- 🔧 (e2e) disable remote test by default
Miscellaneous
- 📦 prepare release
Version 0.5.0
Changed
- 🚸 (cli) clean display to user (happy path only)
- ⬆️ Bump dialoguer from 0.2.0 to 0.3.0
Miscellaneous
- 📝 (README) update doc (help, usage,…)
Version 0.4.2
Added
- ✨ (cli) add support of source subfolder
Changed
- ⬆️ Bump assert_cmd from 0.10.1 to 0.10.2
Miscellaneous
- 📦 (release) customize release profile
- 📝 (README) update features list (states & planned)
Version 0.4.1
Added
- ✨ (cli) add –rev to specify the git revision
Fixed
- 🐛 (git) do not remove existing cache before success clone
Version 0.4.0
Added
- 👷 (travis) remove build for i686
- 👷 (travis) try to fix compilation on i686
- ✨ (cli) add offline mode
- ✨ (source) accept remote git repository as source for template
Changed
- 🎨 (git) comment unused code
- ♻️ move Uri into SourceUri
- 🎨 prepare for rust edition 2018
- 🎨 (e2e) test the executable via cli
- ⬆️ Bump dialoguer from 0.1.0 to 0.2.0
Fixed
- 🐛 (windows) try to fix bug when git clone
- 🐛 detection of file to "Ignores" is done during the scan
- 🐛 fix a bug when compare 2 files (one with .ffizer.hbs and one without)
- 🐛 fix due to change in api of dialoguer
- 🐛 fix file order priority
Miscellaneous
- 📦 prepare release
- 📦 (cargo) clean travis info
- 📄 (LICENSE) list dependencies and licenses in CREDITS
- 📦 (travis) store note for future check
- 📝 (README) remade the TOC
- 🚧 prepare to support several form of template uri
Version 0.3.0
Added
- ✨ (cli) add experimental flags to always accept default value for variables
- ✨ (cli) add flags to control confirmation (always, never, auto)
- ✨ (cfg) allow to ignore (glob) file and directy
- ✅ (e2e) add 2 tests to show every features (need some improvement)
Changed
- ⬆️ Bump walkdir from 2.2.6 to 2.2.7
- ♻️ (cli) move Cmd into Ctx.cmd_opt: CmdOpt
Fixed
- 🐛 fixe processing order of files
- 🐛 (render) use the rendered path for *.ffizer.hbs
- 🐛 (render) enable strict mode and log variables to help debug template
- ✏️ (README) fix title level
- 🐛 (travis) ‘cargo publish’ doesn’t work on windows
Miscellaneous
- 📦 prepare release
- 📝 (README) add TOC
Version 0.2.1
Fixed
- 🐛 (cargo) expected at most 5 keywords per crate
Miscellaneous
- 📦 prepare release
- 📝 (README) update badges
- 📝 (README) update install instruction
- 📦 (travis) generate archive without target path
Version 0.2.0
Added
- ✨ (render) file name and folder name could be rendered
- 👷 (appveyor) remove appveyor as CI
- 👷 (travis) try a workaround to deploy windows (2)
Changed
- ♻️ (error) use failure to manage the error
Fixed
- ✏️ (README) wrong project name, reformulate
Miscellaneous
- 📦 prepare release
- 🚧 (render) basic implementation to support *.ffizer.hbs
- 🚧 read a configuration file (.ffizer.yaml) from the template folder
Version 0.1.2
Added
- 👷 (travis) try a workaround to deploy windows (3)
- 👷 (travis) try a workaround to deploy windows (2)
Version 0.1.1
Added
- 👷 (travis) try a workaround to deploy windows
- 👷 (travis) fix the api_key
Version 0.1.0
Added
- 👷 (travis) try to add windows support
- ✨ (cli) ask confirmation before apply plan
- ✨ copy dir and files from template and base for next step (cause it’s not KISS).
- 👷 fix os specific setup
- ✅ initialize testing
- 👷 bootstrap conf for travis and appveyor
- ✨ (main) setup of log + cli arguments read
- 🎉 init
Changed
- 💄 (cli) add a progress bar for the execution (experimental)
- 🚸 (cli) complete description
- 🎨 (main) main is a wrapper for the lib
- 🚚 rename project from fgen to ffizer fgen already exists
Fixed
- 🐛 (README) fix appveyor badge
- 🐛 (cli) use flags instead of args, correct description
Miscellaneous
- 📦 (cargo) prepare info for publishing
- 📝 (README) udapte
- 🚧 (cli) confirm plan before execute
- 🚧 ordering action by path
- 📝 (README) add badges for travis, status, license
- 📄 add license CC0-1.0
- 🚧 (copy mode) bootstrap the code for plan & execute + scan src
- 📝 (README) add help of the cli, and sub-features
- 📝 (README) update alternatives list
- 📝 (README) fix format
- 📝 (README) ideas "en vrac"
- 📝 (README) add ideas, motivations, alternatives,…
Generated by gitmoji-changelog (rust version)