View Source Change Log
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
v0.5.8 (2025-01-06)
Improvements:
significant cleanup of deps compilation logic
suppress all output for cleaner loading spinners
v0.5.7 (2025-01-06)
Bug Fixes:
- propertly iterate over tasks list
v0.5.6 (2025-01-05)
Improvements:
- better step explanation in installer
v0.5.5 (2025-01-05)
Bug Fixes:
- only display mix.exs changes when showing them
v0.5.4 (2025-01-05)
Bug Fixes:
don't show git warning for changes igniter made
print message after diff
allow check to pass when no issues found (#178)
Improvements:
capture and suppress output in installers (#186)
print version diff when upgrading packages (#185)
sort the
missingpackages when upgrading
v0.5.3 (2024-12-26)
Bug Fixes:
- ensure deps are compiled and proceed w/ install if igniter is
Improvements:
- rip out shared utils
v0.5.2 (2024-12-25)
Improvements:
add
--yes-to-depsoption tomix igniter.installadd
--yes-to-depswhen usingmix igniter.new
v0.5.1 (2024-12-24)
Bug Fixes:
Igniter.mkdir not expanding paths correctly (#174)
handle case where third tuple elem is nil
handle mix rebar deprecations for 1.18 (#172)
Improvements:
add
prepend_to_pipelineandhas_pipelinetoadd fallback igniter install in archive
v0.5.0 (2024-12-19)
Features:
- add Igniter.mkdir (#165)
Bug Fixes:
set quoted default to handle regex escaping issues
parse_argv callback should be overridable (#166)
use original file's extname when moving files always
Improvements:
default igniter installation to being optional
add
has_dep?/2add convenient wrapper around installing new packages
v0.4.8 (2024-11-27)
Breaking Changes:
- add
expand_env?option toIgniter.Code.Common.add_code/3(#151)
Bug Fixes:
if alias elements are strings ensure they aren't interpreted as AST
don't move modules back to their "proper" location
use new
ignore_missing_sub_formattersoption in rewrite
Improvements:
add
:force?option toIgniter.Project.Application.add_new_child/3(#156)handle io formatting more uniformly (#148)
handle io formatting more uniformly
v0.4.7 (2024-11-12)
Improvements:
- Add
Igniter.Libs.Swooshfor working with Swoosh
Bug Fixes:
- print a consistent number of blank lines around diffs (#147)
v0.4.6 (2024-11-06)
Bug Fixes:
suppress module conflict warning when running upgrade_igniter
pass dot_formatter when updating rewrite sources (#144)
skip unknown deps in dot formatter
Improvements:
- Add
priv_dirfunctions to return priv directory (#141)
v0.4.5 (2024-11-04)
Bug Fixes:
- skip unknown deps in dot formatter
v0.4.4 (2024-11-03)
Improvements:
- support replace_or_append instruction when modifying task aliases
- Add
priv_dirfunctions to return priv directory (#141)
v0.4.3 (2024-11-02)
Bug Fixes:
- various fixes for test formatting
Improvements:
- Tools for removing formatter plugins & imported deps
v0.4.2 (2024-11-02)
Bug Fixes:
- properly compose upgrade tasks
Improvements:
- update rewrite to 1.0.0 (#135)
v0.4.1 (2024-11-01)
Bug Fixes:
- apply 0.3 compatibility fixes for upgrades
v0.3.77 (2024-11-01)
Bug Fixes:
don't skip igniter composition on existing issues
handle
Igniter.Project.Application.app_module/1returning tupleproperly retain trailing newlines in
replace_code/2handle grouped options in positional args parsing
properly pass --with-args to generator
handle connected
=in extract_positional_argsproperly split args on equals symbol
Igniter.Code.Common.replace_code/2: Don't leave zipper at parent when extending blocks (#123)
Improvements:
Parse
argvby default and store inIgniterstruct (#131)upgrade
igniter/2toigniter/1in simple casesoptimize
Igniter.Project.Module.find_module/2when all files haven't been loadedadd
Igniter.Test.diff/2(#120)
v0.3.76 (2024-10-28)
Bug Fixes:
properly ignore
with-argswhen passing args to installersexpand_literalshould expand single-child blocksexpand_literalshould return an errorMacro.expand_literalsdoesn't return a literalmake task run/1 overridable (#114)
Support integer argument in
move_right/2andmove_upwards/2and addmove_left/2(#113)
Improvements:
resolve project app names set using a module attribute (#111)
resolve project app names set using a module attribute
v0.3.75 (2024-10-26)
Bug Fixes:
- make update_gettext idempotent
v0.3.74 (2024-10-24)
Bug Fixes:
- properly compare version lists
v0.3.73 (2024-10-24)
Bug Fixes:
- don't use
yes?if --git_ci or --yes
v0.3.72 (2024-10-22)
Bug Fixes:
- set
--yesautomatically in git_ci
v0.3.71 (2024-10-22)
v0.3.70 (2024-10-22)
Bug Fixes:
- properly upgrade deps with mix deps.update
v0.3.69 (2024-10-21)
Improvements:
v0.3.68 (2024-10-21)
Bug Fixes:
properly detect all version migrations
make replacing code append to parent blocks when extendable
pass through additional arguments to installers
reintroduce accidentally removed function
don't call into shared lib?
v0.3.67 (2024-10-19)
Bug Fixes:
ensure deps are always added in explicit tuple format
don't use the 2 arg version of config when the first key would be ugly
v0.3.66 (2024-10-19)
Improvements:
- significant improvements to function checking speed
v0.3.65 (2024-10-19)
Improvements:
v0.3.64 (2024-10-17)
Bug Fixes:
don't infinitely recurse on update_all_matches
detect node removal in update_all_matches
Improvements:
v0.3.63 (2024-10-15)
Bug Fixes:
- properly collect csv options into lists
v0.3.62 (2024-10-14)
Bug Fixes:
- properly parse csv/keep options
v0.3.61 (2024-10-14)
Improvements:
- support csv option type and properly handle keep options lists
v0.3.60 (2024-10-14)
Improvements:
- don't rely on elixir 1.16+ features
v0.3.59 (2024-10-14)
Bug Fixes:
- don't return igniter from message function
v0.3.58 (2024-10-13)
Bug Fixes:
- don't assume the availabilit of
which
v0.3.57 (2024-10-11)
Improvements:
- add
groupand option disambiguation based on groups
v0.3.56 (2024-10-11)
Improvements:
- support required arguments in the info schema
v0.3.55 (2024-10-11)
Bug Fixes:
- fix pattern match on prompt on git changes
v0.3.54 (2024-10-11)
Bug Fixes:
- looser match on git change detection
v0.3.53 (2024-10-11)
Improvements:
- add
on_existshandling toIgniter.Libs.Ecto.gen_migration
v0.3.52 (2024-10-07)
Improvements:
- properly warn on git changes before committing
v0.3.51 (2024-10-07)
Bug Fixes:
- provide proper version in the installer
Improvements:
remove
System.cmdforigniter.installin installerallow excluding line numbers in
Igniter.Test.assert_has_patchprettier errors on task exits
v0.3.50 (2024-10-07)
Improvements:
- don't warn on missing installers that aren't actually missing
v0.3.49 (2024-10-06)
Bug Fixes:
- fix dialyzer spec
v0.3.48 (2024-10-04)
Improvements:
add
opts_updateroption toadd_new_childadd
Igniter.Libs.Ecto.gen_migrationimplement various deprecations
add
Igniter.Libs.Ectofor listing/selecting reposadd
defaultskey toInfo{}
v0.3.47 (2024-10-04)
Bug Fixes:
prompt users to handle diverged environment issues
display installer output in
IO.stream()honor --yes properly when adding nested deps
don't install revoked versions of packages
install non-rc packages, or the rc package if there is none
v0.3.46 (2024-10-03)
Bug Fixes:
- fix message in task name warning
v0.3.45 (2024-09-25)
Bug Fixes:
- use
ensure_all_startedwithout a list for backwards compatibility
Improvements:
- Yn -> y/n to represent a lack of a default
v0.3.44 (2024-09-24)
Bug Fixes:
properly create or update config files
format files after reading so formatter_opts is set before later writes
remove incorrect call to
add_codefromreplace_code
v0.3.43 (2024-09-23)
Bug Fixes:
- traverse lists without entering child nodes
v0.3.42 (2024-09-23)
Bug Fixes:
- handle empty requested positional args when extracting positional
Improvements:
allow appending/prepending a different value when the full
v0.3.41 (2024-09-23)
Improvements:
- add
Igniter.Project.TaskAliases.add_alias/3-4
v0.3.40 (2024-09-23)
Bug Fixes:
- properly detect existing scopes with matching names
v0.3.39 (2024-09-18)
Bug Fixes:
don't warn while parsing files
display an error when a composed task can't be found
Improvements:
more phoenix router specific code
make
issuesred and formatted with more spacingproperly compare regex literals
add
dont_move_file_patternutilityupdate installer to always run mix deps get and install
v0.3.38 (2024-09-16)
Bug Fixes:
- don't add warning on
overwriteoption
Improvements:
- better confirmation message experience
v0.3.37 (2024-09-15)
Improvements:
- return
igniterinIgniter.Test.assert_unchanged
v0.3.36 (2024-09-13)
Bug Fixes:
- reevaluate .igniter.exs when it changes
Improvements:
Support for extensions in igniter config
Add a phoenix extension to prevent moving modules that may be phoenix-y
v0.3.35 (2024-09-10)
Bug Fixes:
much smarter removal of
import_configwhen evaluating configuration fileswhen including a glob, use
test_filesin test_mode
Improvements:
v0.3.34 (2024-09-10)
Bug Fixes:
- properly avoid adding duplicate children to application tree
v0.3.33 (2024-09-10)
Bug Fixes:
- properly determine module placement in app tree
v0.3.32 (2024-09-10)
Bug Fixes:
- properly extract app module from
def project
v0.3.31 (2024-09-10)
Bug Fixes:
- set only option to
nilby default
v0.3.30 (2024-09-10)
Bug Fixes:
- handle some edge cases in application child adding
Improvements:
support the opts being code when adding a new child to the app tree
prepend new children instead of appending them
add an
afteroption toadd_new_child/3better warnings on invalid patches in test
v0.3.29 (2024-09-09)
Improvements:
check for git changes to avoid overwriting unsaved changes
add
mix igniter.gen.taskto quickly generate a full taskproperly find the default location for mix task modules
add
--onlyoption, andonlykey inIgniter.Mix.Task.Infoadd
Igniter.Testwith helpers for writing testsextract app name and app module from mix.exs file
v0.3.28 (2024-09-09)
Bug Fixes:
- don't hardcode
Spark.Formatterplugin
v0.3.27 (2024-09-08)
Improvements:
- when replacing a dependency, leave it in the same location
v0.3.26 (2024-09-08)
Improvements:
- add
igniter.update_gettext
v0.3.25 (2024-09-06)
Improvements:
add
configure_runtime_envcodemodremove dependencies that aren't strictly necessary
remove dependencies that we don't really need
more options to
igniter.new
v0.3.24 (2024-08-26)
Bug Fixes:
- detect equal lists for node equality
v0.3.23 (2024-08-26)
Bug Fixes:
- properly move to arguments of Module.fun calls
Improvements:
add
--with-argsto pass additional args to installers
v0.3.22 (2024-08-20)
Improvements:
- add options to control behavior when creating a file that already exists
v0.3.21 (2024-08-20)
Improvements:
- add
copy_template/4
v0.3.20 (2024-08-19)
Bug Fixes:
ensure no timeout on task async streams
don't hardcode
Foo.Supervisorð¤¦
v0.3.19 (2024-08-13)
Bug Fixes:
- properly handle values vs code in configure
v0.3.18 (2024-08-08)
Bug Fixes:
- fix and test keyword setting on empty list
v0.3.17 (2024-08-08)
Bug Fixes:
properly parse boolean switches from positional args
don't warn on
Macro.Env.expand_alias/3not being defineddescend into single child block when modifying keyword
set
format: :keywordwhen adding keyword list item to empty listescape injected code in Common.replace_code/2 (#70)
:error consistency in remove_keyword_key and argument_equals? in Config.configure (#68)
Improvements:
support for non-elixir files with create_new_file, update_file, include_existing_file, include_or_create_file, create_or_update_file (#75)
support "notices" (#65)
v0.3.16 (2024-07-31)
Bug Fixes:
- loadpaths after compiling deps
Improvements:
- add
create_moduleutility
v0.3.15 (2024-07-31)
Bug Fixes:
remove
force?: truefrom dep installationbetter handling of positional args in igniter.new
v0.3.14 (2024-07-30)
Bug Fixes:
detect more function call formats
properly extract arguments when parsing positional args
v0.3.13 (2024-07-30)
Bug Fixes:
- force compile dependencies to avoid strange compiler issues
v0.3.12 (2024-07-30)
Improvements:
v0.3.11 (2024-07-27)
Bug Fixes:
ensure igniter is compiled first
fetch deps after adding any nested installers
various fixes & improvements to positional argument listing
Improvements:
clean up dependency compiling logic
optimize module finding w/ async_stream
add
rest: trueoption for positional args
v0.3.10 (2024-07-26)
Bug Fixes:
- recompile igniter in
ingiter.install
Improvements:
add
positional_args!/1macro for use in tasksbetter output on missing installers & already present dep
v0.3.9 (2024-07-22)
Bug Fixes:
force compile dependencies.
use length of path for insertion point, instead of node equality
v0.3.8 (2024-07-19)
Improvements:
better map key setting
detect strings as non extendable blocks
add option to ignore already present phoenix scopes
v0.3.7 (2024-07-19)
Bug Fixes:
- improve
add_codeby modifying thesupertree
v0.3.6 (2024-07-19)
Bug Fixes:
properly scope configuration modification code
properly add blocks of code together
v0.3.5 (2024-07-19)
Bug Fixes:
properly move to pattern matches in scope
configures?/3 -> configures_key & configures_root_key (#54)
Improvements:
- add blocks together more fluidly in
add_code
v0.3.4 (2024-07-19)
Bug Fixes:
- recompile
:igniterif it has to
Improvements:
include config in include_all_elixir_files (#55)
add Function.argument_equals?/3 (#53)
add Function.argument_equals?/3
v0.3.3 (2024-07-18)
Improvements:
fix function typespecs & add
inflexdependencyonly show executed installers (#50)
support tuple dependencies in igniter.install (#49)
v0.3.2 (2024-07-16)
Bug Fixes:
- don't compile igniter dep again when compiling deps
v0.3.1 (2024-07-16)
Bug Fixes:
- when adding code to surrounding block, don't go up multiple blocks
v0.3.0 (2024-07-15)
Improvements:
Add
Igniter.Libs.Phoenixfor working with Phoenixdeprecate duplicate
Igniter.Code.Module.move_to_usefunctionIgniter.Project.Config.configures?/4that takes a config fileAdd
Igniter.Util.Warningfor formatting code in warnings
v0.2.13 (2024-07-15)
Bug Fixes:
- remove redundant case clause in
Igniter.Code.Common
Improvements:
make
apply_and_fetch_dependenciesonly changedeps/0remove a bunch of dependencies by using :inets & :httpc
v0.2.12 (2024-07-10)
Bug Fixes:
- fix dialyzer warnings about info/2 never being nil
v0.2.11 (2024-07-10)
Bug Fixes:
- prevent crash on specific cases with
igniter.new
Improvements:
more consistent initial impl of
elixirc_pathssupport :kind in find_and_update_or_create_module/5 (#38)
v0.2.10 (2024-07-10)
Improvements:
- ensure
test/supportis in elixirc paths automatically when necessary
v0.2.9 (2024-07-09)
Bug Fixes:
simplify how we get tasks to run
don't try to format after editing
mix.exs
v0.2.8 (2024-07-09)
Bug Fixes:
fix deps compilation issues by vendoring
deps.compilehonor
--yesflag when installing deps always
Improvements:
- small tweaks to output
v0.2.7 (2024-07-09)
Bug Fixes:
remove shortnames for global options, to reduce conflicts
remove erroneous warning while composing tasks
pass file_path to
ensure_default_configs_exist(#36)preserve original ordering in Util.Install (#33)
include only "mix.exs" in the actual run in apply_and_fetch_dependencies (#32)
always return {:ok, zipper} in append_new_to_list/2 (#31)
Improvements:
support an optional append? flag for add_dep/3 (#34)
add
add_dep/2-3, that accepts a full dep specificationdeprecate
add_dependency/3-4make module moving much smarter
add configurations for not moving certain modules
make
source_foldersconfigurable
v0.2.6 (2024-07-02)
Improvements:
properly find nested modules again
make igniter tests much faster by not searching our own project
add
include_all_elixir_files/1add
module_exists?/2add
find_and_update_module/3only require rejecting mix deps.get one time & remember that choice
simpler messages signaling a mix deps.get
v0.2.5 (2024-07-02)
Improvements:
move_modules->move_filesmove some files around and update config names
use
%Info{}structs to compose and plan nested installersadd Igniter.apply_and_fetch_dependencies/1 and Igniter.has_changes?/1 (#28)
rename option_schema/2 -> info/2
only create default configs if an env-specific config is created
v0.2.4 (2024-06-28)
Bug Fixes:
fix match error in
append_new_to_listversion string splitting (#25)
Improvements:
add an optional path argument to
find_and_update_or_create_module/5add
option_schema/2callback toIgniter.Mix.TaskModule.find_and_update_or_create_moduleadd a way to move files
add
.igniter.exsfile, andmix igniter.setupto create itmove files to configured location based on changes
add fallback to compose_task (#19)
add proper_test_support_location/1 (#18)
add proper_test_location/1 (#17)
v0.2.3 (2024-06-21)
Improvements:
- use
override: truefor git/github deps as well
v0.2.2 (2024-06-21)
Bug Fixes:
don't show unnecessary diff output
don't compile before fetching deps
v0.2.1 (2024-06-21)
Improvements:
workaround trailing comment issues w/ sourceror
support
--withoption inigniter.new
v0.2.0 (2024-06-20)
Improvements:
make installer use
override: trueon local dependencyensure dependencies are compiled after
mix deps.getuse warnings instead of errors for better UX
move proejct related things to
Projectnamespace
v0.1.8 (2024-06-19)
Bug Fixes:
- update spitfire for env fix
Improvements:
rename
env_at_cursortocurrent_envimprove marshalling of spitfire env to macro env
show warning when adding dependencies by default
v0.1.7 (2024-06-14)
Improvements:
various restructurings and improvements across the board
use
Spitfireto ensure that aliases are considered when comparing modulesuse
Spitfireto use any existing aliases when inserting codeuse
Zipper.topmostto power newSpitfire-related features
v0.1.6 (2024-06-13)
Bug Fixes:
patch formatter fix, to be removed later when rewrite PR is merged
properly find functions in scope
v0.1.5 (2024-06-13)
Bug Fixes:
- Igniter.Code.Common.with/2 was not properly merging with original zipper
v0.1.4 (2024-06-13)
Improvements:
- use
path:prefix instead oflocal:
v0.1.3 (2024-06-13)
Improvements:
- support space-separated installers
v0.1.2 (2024-06-13)
Bug Fixes:
remove unsupportable package installation symbols
don't run
mix deps.getif dependency changes are aborted
v0.1.1 (2024-06-13)
Bug Fixes:
- always format the file even if no
.formatter.exsexists
v0.1.0 (2024-06-13)
Bug Fixes:
- handle existing deps when they are not local properly
Improvements:
ignore installer tasks that are not igniter tasks
draw the rest of the owl
add installer archive
more module helpers
wrap code in
==code==so you can tell what is beingputsadd CI/build and get it passing locally