View Source Change Log
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
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?/2
add 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_formatters
option 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.Swoosh
for 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_dir
functions 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_dir
functions 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/1
returning tupleproperly retain trailing newlines in
replace_code/2
handle 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
argv
by default and store inIgniter
struct (#131)upgrade
igniter/2
toigniter/1
in simple casesoptimize
Igniter.Project.Module.find_module/2
when all files haven't been loadedadd
Igniter.Test.diff/2
(#120)
v0.3.76 (2024-10-28)
Bug Fixes:
properly ignore
with-args
when passing args to installersexpand_literal
should expand single-child blocksexpand_literal
should return an errorMacro.expand_literals
doesn't return a literalmake task run/1 overridable (#114)
Support integer argument in
move_right/2
andmove_upwards/2
and 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
--yes
automatically 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
group
and 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_exists
handling 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.cmd
forigniter.install
in installerallow excluding line numbers in
Igniter.Test.assert_has_patch
prettier 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_updater
option toadd_new_child
add
Igniter.Libs.Ecto.gen_migration
implement various deprecations
add
Igniter.Libs.Ecto
for listing/selecting reposadd
defaults
key 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_started
without 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_code
fromreplace_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
issues
red and formatted with more spacingproperly compare regex literals
add
dont_move_file_pattern
utilityupdate installer to always run mix deps get and install
v0.3.38 (2024-09-16)
Bug Fixes:
- don't add warning on
overwrite
option
Improvements:
- better confirmation message experience
v0.3.37 (2024-09-15)
Improvements:
- return
igniter
inIgniter.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_config
when evaluating configuration fileswhen including a glob, use
test_files
in 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
nil
by 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
after
option toadd_new_child/3
better 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.task
to quickly generate a full taskproperly find the default location for mix task modules
add
--only
option, andonly
key inIgniter.Mix.Task.Info
add
Igniter.Test
with 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.Formatter
plugin
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_env
codemodremove 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-args
to 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/3
not being defineddescend into single child block when modifying keyword
set
format: :keyword
when 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_module
utility
v0.3.15 (2024-07-31)
Bug Fixes:
remove
force?: true
from 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: true
option for positional args
v0.3.10 (2024-07-26)
Bug Fixes:
- recompile igniter in
ingiter.install
Improvements:
add
positional_args!/1
macro 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_code
by 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
:igniter
if 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
inflex
dependencyonly 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.Phoenix
for working with Phoenixdeprecate duplicate
Igniter.Code.Module.move_to_use
functionIgniter.Project.Config.configures?/4
that takes a config fileAdd
Igniter.Util.Warning
for 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_dependencies
only changedeps/0
remove 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_paths
support :kind in find_and_update_or_create_module/5 (#38)
v0.2.10 (2024-07-10)
Improvements:
- ensure
test/support
is 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.compile
honor
--yes
flag 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-4
make module moving much smarter
add configurations for not moving certain modules
make
source_folders
configurable
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/1
add
module_exists?/2
add
find_and_update_module/3
only 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_files
move 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_list
version string splitting (#25)
Improvements:
add an optional path argument to
find_and_update_or_create_module/5
add
option_schema/2
callback toIgniter.Mix.Task
Module.find_and_update_or_create_module
add a way to move files
add
.igniter.exs
file, andmix igniter.setup
to 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: true
for 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
--with
option inigniter.new
v0.2.0 (2024-06-20)
Improvements:
make installer use
override: true
on local dependencyensure dependencies are compiled after
mix deps.get
use warnings instead of errors for better UX
move proejct related things to
Project
namespace
v0.1.8 (2024-06-19)
Bug Fixes:
- update spitfire for env fix
Improvements:
rename
env_at_cursor
tocurrent_env
improve 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
Spitfire
to ensure that aliases are considered when comparing modulesuse
Spitfire
to use any existing aliases when inserting codeuse
Zipper.topmost
to 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.get
if dependency changes are aborted
v0.1.1 (2024-06-13)
Bug Fixes:
- always format the file even if no
.formatter.exs
exists
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 beingputs
add CI/build and get it passing locally