Permalink
Fetching contributors…
Cannot retrieve contributors at this time
696 lines (380 sloc) 18.6 KB
{{$NEXT}}
0.69 2017-10-06
- We now chdir to $ROOT before running commands. This fixes issues when you
run tidyall from a subdirectory of your $ROOT (which works) but commands run
by tidyall (like perlcritic) are looking for files using paths relative to
root. Patch by Olaf Alders. Fixes GH #85. PR #86
0.68 2017-09-29
- Fixed heisenbug that could cause displaying constructor params (in verbose
mode) to omit most of the parameter values.
0.67 2017-09-18
- Move "cmd" attribute back to Code::TidyAll::Plugin. Moving this to a role in
0.66 broke plugins which run external commands but which don't ship with
this distro. Reported by Greg Oschwald. GH #82.
0.66 2017-09-17
- The tidyall command line app now takes a --plugins option. This allows you
to limit tidyall to running just the selected plugin(s).
0.65 2017-08-01
- A file under Git which had a status of "copied" would cause uninitialized
value warnings from a pre-commit hook. Reported by Nigel Metheringham with
help from Adam Herzog. GH #81.
0.64 2017-07-31
- Bug fixes on Windows. Now all plugins except PodSpell (which requires
ispell) should work on Windows. This should all fix test failures seen in
CPANTesters on Windows.
0.63 2017-07-23
- All plugins should now work when run against paths that include
spaces. Previously, many plugins would fail because they were calling system
commands by passing a single string rather than a list of arguments. Note
that we now parse the "argv" given in the config file use
Text::ParseWords::shellwords. It's possible that this could break your setup
if you have some very pathological configuration options. Bug reports are
welcome. Fixes #79.
0.62 2017-07-20
- Added support for a global config option "inc". This allows you to prepend
directories to @INC when running tidyall. This affects both loading classes
and running plugins. This is equivalent to the command line's -I option.
0.61 2017-07-07
- Fixed a Git pre-commit hook stash bug. The hook would always call "git stash
pop" even if the call it had just made to "git stash" hadn't added anything
to the stash. If the stash had anything on it, this could make a mess of
your working directory. This showed up most often with calls to "git commit
--amend" where you were trying to just edit the prior commit message, since
you would be unlikely to have any changes to stash when doing so.
0.60 2017-07-03
- Attempted to fix a bug related to how git stash is used in the git
pre-commit hook. The "git stash pop" command was happening too early, which
would block commits when all the files in the index were tidy but the
working directory contained untidy files. Based on PR #58 from Finn Smith.
0.59 2017-05-14
- Work around issue with Perl::Tidy when Getopt::Long::Configure is called
before we call Perl::Tidy::perltidy. See
https://rt.cpan.org/Ticket/Display.html?id=118558 for details.
0.58 2017-03-11
- Don't assume that '.' is in @INC in the Makefile.PL.
- Don't ship the node or PHP code used for tests in the tarball. This makes it
much smaller.
0.57 2017-02-19
- Fix code that called a Specio private method directly.
0.56 2017-02-01
- Fixed Win32 test failures. Reported by Christian Walde. GH #72.
- Added a global ignore feature. You can now provide ignore configuration at
the top level of your tidyall config file and/or pass an --ignore flag on
the command line. Any ignores specified this way will be ignore for all
plugins. Based on GH #73 from Martin Guner.
0.55 2016-10-31
- Require Moo 2.000000 or greater.
0.54 2016-10-15
- Fixed error when passing in paths as a string to the Code::TidyAll
constructor. These are now coerced to Path::Tiny objects. Reported by Martin
Gruner. GH #66.
0.53 2016-10-10
[BUG FIXES]
- Fixed failing tests on OSX. Reported by Martin Gruner. GH #65.
- Files that were tidied could have their permissions mode when they were
rewritten. Reported by Martin Gruner (GH #68) and fixed by Adam Herzog (GH
#69).
0.52 2016-09-19
[BUG FIXES]
- The 0.50 release added an implicit configure phase prereq on Path::Tiny
without declaring it. That bit of code has been reverted to use just core
modules.
- Change tidyall shbang line to "#!perl". I had changed it to "#!/usr/bin/env
perl" but MakeMaker does not rewrite this on install.
0.51 2016-09-18
[BUG FIXES]
- Restored some exports to Code::TidyAll::Util for backwards
compatibility. Some other plugins are using these exports.
0.50 2016-09-18
[BACKWARDS INCOMPATIBILITIES]
- Converted (almost) all file handling to use Path::Tiny. This should help
make the code and tests more cross-platform, and simplifies various bits of
internal code. Note that plugins now receive paths as Path::Tiny objects,
which could break code that checks if what it receives is a plain scalar.
[ENHANCEMENTS]
- Added support for tidying in multiple parallel jobs at once. You can pass a
"--jobs" argument to tidyall or pass a "jobs" param to
Code::TidyAll->new. This requires that you install Parallel::ForkManager.
- Paths in error messages now include the full relative path to the file being
tidied. Previously this would just be something like "Foo.pm", now it will
be "lib/My/Package/Foo.pm".
0.49 2016-07-22
- The verbose output now just shows the plugin name in the "applying the
following plugins: ..." message, rather than stringifying the plugin
objects.
0.48 2016-06-16
- The Git pre-commit hook now only looks at the files that are staged for
committing, rather than everything in the git repo that has been
modified. Note that this does not change the tidyall script's "-g" flag,
which still operates on all modified files in the repo.
- Check the exit code when running js-beautify and throw an error if this is
non-zero. Patch by Graham Knop. GitHub #61.
0.46 2016-04-17
- Fix a use line which specified the required version of Text::Diff as
"v1.44". This caused weirdness to cascade in the Makefile.PL. Reported by
Olaf Alders. GitHub #60.
0.45 2016-04-11
- Some changes intended to be internal-only in the last release broke the
handling of ignore and select config lines with multiple space-separated
values. This should now work again (and is tested). Reported by Martin
Gruner. GitHub #44.
0.44 2016-04-10
- Changed the shebang config item to actually accept multi items on different
lines. The old method of specifying more than one item on a single line,
separated by spaces, will continue to work, but is no longer documented.
0.43 2016-03-27
- Use the same improved "git status" code for Code::TidyAll::Git::Precommit as
we do in bin/tidyall for the -g option. Patch by Finn Smith. GitHub #57.
0.42 2016-03-10
- Specify Text::Diff version as 'v1.44' instead of '1.44'. This fixes an
inexplicable error that the OTRS project was having with the previous
release (GitHub #53). Fixed by Martin Gruner. GitHub #54.
0.41 2016-03-04
- Replaced List::MoreUtils with List::SomeUtils.
0.40 2016-02-21
- Don't include files not tracked by git when looking for uncommitted files.
Fixed by Olaf Alders. GitHub #51.
- Use Text::Diff for all diffs instead of calling an external
command. Hopefully this makes this distro a little more portable.
0.39 2016-02-13
- Use "git status --porcelain -z" when trying to figure out what files are
being uncommitted for git hooks. Implemented by Ricardo Signes. GitHub #40.
0.38 2016-01-11
- Tweaked the test names used by Test::Code::TidyAll so that they say
something like "lib/Foo.pm is tidy" rather than just "lib/Foo.pm".
0.37 2015-12-03
- Really fix an empty files parameter to tidyall_ok (Test::Code::TidyAll
desperately needs some tests).
0.36 2015-12-02
- Updated the distro metadata to point to github for bug reports rather than
rt.cpan.org.
0.35 2015-12-02
- If the "files" parameter to tidyall_ok didn't include any files that matches
the tidyall config (or no files at all) this would cause an error from
Test::Builder. This has been fixed so we now just spit out a single passing
test.
0.34 2015-12-02
- Added a new "files" parameter that can be passed to the tidyall_ok sub
exported by Test::Code::TidyAll. This makes it possible to use this sub to
check just a subset of your files.
0.33 2015-11-30 (TRIAL RELEASE)
- Adding diff functionality as its own plugin (DiffOnTidyError), which was
done in 0.31, turned out to be quite problematic. As a plugin you had to
define which files it applied to via select & exclude, and in a large code
base it was easy to select files that no other plugin applied to. This meant
tidyall (and Test::Code::TidyAll, etc.) would include those files even
though they were never touched. This could make tidying and tidy tests
_much_ slower.
This plugin has been replaced with a new config attribute that can be
applied to all plugins, diff_on_tidy_error. When this is set, any plugin
that tidies source in --check-only mode (also used by Test::Code::TidyAll)
will include a diff in the error message, one diff per plugin. This has the
added benefit of showing if you if multiple plugins are each making changes
to the same file.
0.32 2015-11-19
- When in verbose mode we now show what plugins are being applied to each
file. This is helpful if you want to know why a file isn't being ignored,
for example.
- Added a new plugin configuration option for the rc file, "weight". You can
use this to exercise greater control over the order that plugins run in.
0.31 2015-11-17
- Added a new plugin, DiffOnTidyError. This plugin will call "diff -u" to
compare the original file content to the tidy version.
0.30 2015-09-14
- Added a --no-cleanup option for the tidyall script that causes it to leave
any tempdirs it creates behind. Implemented by Mark Fowler. GitHub #41.
0.29 2015-08-15
- Replaced use of Digest::SHA1 with Digest::SHA. The latter module has been
part of the Perl core since 5.10. Implemented by Sergey Romanov. GitHub #39.
0.28 2015-08-06
- The JSON plugin now uses JSON::MaybeXS instead of JSON.pm. Patch by Greg
Oschwald. GitHub #37.
- Added a new plugin, PerlTidySweet, which uses perltidy-sweet instead of
perltidy. Implemented by Mark Grimes. GitHub #26.
0.27 2015-07-04
[BUG FIXES]
- Fixed broken POD. Most modules were missing their NAME sections because of a
mistake in the distro's weaver.ini file. Reported by Красимир Беров.
0.26 2015-06-29
[BUG FIXES]
- The tidyall script did not handle the -I option correctly. It was treated as
a boolean rather than a string, meaning it basically ignored whatever you
passed. Fixed by Andy Jack. GH #35.
- The PodChecker plugin no longer generates warnings about an undef variable
if the file did not have any Pod.
- Added an option for the tidyall config file, shebang. This is an additional
filter that selects files based on the shebang line
(#!/bin/foo). Implemented by timgimyee. GH #25.
0.25 2015-03-31
[ENHANCEMENTS]
- You can now pass "verbose => 1" to tidyall_ok(). Previously this would have
been overridden because we unconditionally set "quiet => 1", but now we only
do this when verbose is not specified.
- Added a new "msg_outputter" attribute to Code::TidyAll. By default, this is
a sub that simply calls "printf", but you can pass something else to change
how messages are printed. Test::Code::TidyAll uses this to send messages
through diag().
- If you set "verbose => 1" when calling Test::Code::TidyAll, it will now use
Text::Diff::Table to show details of how a file needs to be tidied in order
to pass the tidyall checks.
- Made the PerlCritic plugin pass even if a critic module issues some
warnings. As long as perlcritic says "source OK", we want to treat that as a
pass, despite any warnings it may issue. Fixed by Mark Fowler.
- Made the caching model pluggable, and added a new
Code::TidyAll::CacheModel::Shared class as an alternative to the default
model. This lets you share the cache directory between multiple branches in
a single checkout while still detecting file changes properly. Implemented
by Mark Fowler.
0.24 2014-11-06
[WARNING FOR A FUTURE RELEASE]
- At some point in the future, it will probably be necessary for Code::TidyAll
to become aware of encodings on a per-file basis. As it stands right now,
any tidying plugin which reformats text could, in theory, end up splitting
up a UTF-8 character's bytes across at a line break.
[BUG FIXES]
- Replaced the use of Capture::Tiny with IPC::Run3 for some plugins. The
former seems to sometimes return character data where we want bytes, even if
the STDOUT and STDERR handles are binmode()'d to the ":bytes" encoding. This
prevents warnings about writing wide characters from the JSBeautify plugin.
0.23 2014-11-06
- Fix test failures seen on CPANTesters.
0.22 2014-11-05
[BUG FIXES]
* Removed the compile test added in the last release. Many plugin modules
won't compile unless optional prereqs are manually installed first (such as
Perl::Critic, Perl::Tidy, etc.).
0.21 2014-11-05
[ENHANCEMENTS]
* Test::Code::TidyAll now sets "quiet => 1" when creating the Code::TidyAll
object to suppress noise from any plugins.
* Test::Code::TidyAll now calls Test::More::diag() after test failures instead
of before.
[BUG FIXES]
* Lots of little doc tweaks and fixes.
0.20 2014-05-18
[BUG FIXES]
* Fix option handling implentation and documentation for
Test::Code::TidyAll::tidyall_ok -
https://github.com/jonswar/perl-code-tidyall/issues/18 (Olad Alders)
0.19 2014-03-06
[ENHANCEMENTS]
* Added a JSON plugin (Gregory Oschwald)
0.18 2013-09-21
[BUG FIXES]
* Fix Test::Code::TidyAll::tidyall_ok -
https://github.com/jonswar/perl-code-tidyall/issues/12 (Adam Taylor)
* Fix JSBeautify plugin as js-beautify no longer respects --replace
0.17 2013-03-11
[BACKWARDS INCOMPATIBILITIES]
* Rename API method process_files to more accurate process_paths
[BUG FIXES]
* Fix recursive processing of directories (Mark Risman)
* Improve git precommit setup script -
https://github.com/jonswar/perl-code-tidyall/pull/10 (Olaf Anders)
0.16 2012-10-22
[ENHANCEMENTS]
* Added phpcs plugin (Joseph Crotty)
* Added cssunminifier plugin
* Added SortLines plugin, for one-entry-per-line files like .gitignore
0.15 2012-10-11
[BUG FIXES]
* Fix test_dirs test to not rely on file ordering
0.14 2012-10-10
[ENHANCEMENTS]
* Allow a plugin to be listed multiple times in config with different
configuration
* Specify order that plugins run (tidiers before validators, then alpha) and
document that they are applied atomically
* Added etc/editors/tidyall.vim for Vim (Justin Devuyst)
* Added -r/--recursive flag to process directories recursively
* In -p/--pipe mode, mirror input to output in case of error (Justin Devuyst)
* Fix -l/--list handling of local files
* Added --version option
* Make git prereceive hook more modular, so it can be combined with other
checks
0.13 2012-09-30
[BUG FIXES]
* Adjust MasonTidy plugin for new API
* Remove Util.t containing only author-only tests
0.12 2012-09-27
[ENHANCEMENTS]
* Added podspell plugin (POD spell checker)
* Added --iterations flag to run tidier transforms multiple times
* Allow .tidyallrc as alternative to tidyall.ini
* Allow git prereceive hook to be bypassed by pushing an identical set of commits
several consecutive times (allow_repeated_push)
* Added handcrafted usage w/summary of options, instead of Pod::Usage
0.11 2012-09-21
[ENHANCEMENTS]
* Allow multiple select and ignore patterns, separated by whitespace or on separate lines
* Added -l/--list flag to show which plugins match which files
* Added conf_name parameter to specify name other than tidyall.ini
* Redirect stdout to stderr with -p/--pipe, so that stdout is dedicated to the tidied content
* In tidyall.el, hide error buffer on successful tidy
[BUG FIXES]
* Handle argv/config errors correctly in various plugins
* Eliminate double-printed error with -p/--pipe
* Allow relative paths to -p/--pipe
0.10 2012-09-12
[ENHANCEMENTS]
* Added masontidy plugin (Mason component tidier)
* Added jslint plugin (javascript validator)
0.09 2012-09-11
[BUG FIXES]
* Remove use of ex-dependency Hash::MoreUtils from bin/tidyall (Jason Wieland)
* Added IPC::System::Simple and Pod::Usage to deps (Jason Wieland)
0.08 2012-09-10
[ENHANCEMENTS]
* Added js-beautify plugin (javascript tidier)
* Added jshint plugin (javascript validator)
* Added podchecker plugin
* Added -p/--pipe flag to read from STDIN and write to STDOUT
* Allow tidyall.el to work in narrowed regions
* Make plugins into Moo classes, pass configuration as attributes
[BUG FIXES]
* Remove unused SVN::Look - perl-code-tidyall/pull/1 (Pedro Melo)
* Filter just files from git status in Code::TidyAll::Git::Precommit (Pedro Melo)
0.07 2012-09-05
[ENHANCEMENTS]
* Added git pre-receive hook (Code::TidyAll::Git::Prereceive)
[BUG FIXES]
* Show file paths with errors in quiet mode
0.06 2012-09-03
[ENHANCEMENTS]
* Added -g/--git flag and git pre-commit hook (Code::TidyAll::Git::Precommit)
[BUG FIXES]
* Omit directories from svn_uncommitted_files (--svn)
0.05 2012-08-21
[ENHANCEMENTS]
* Added etc/editors/tidyall.el for Emacs
* Only print 'no plugins apply' warning in verbose mode
0.04 2012-08-14
[ENHANCEMENTS]
* Added -s/--svn flag
* Added emergency_comment_prefix ("NO TIDYALL") to svn precommit hook
[BUG FIXES]
* Added back missing plugins
* Fix --check-only flag
0.03 2012-07-24
[eNHANCEMENTS]
* Added svn precommit hook (Code::TidyAll::SVN::Precommit)
* Added preprocess_source and postprocess_source to plugins
* Added only_modes and except_modes configuration for plugins
* Added Code::TidyAll::process_source(), for processing a string instead of a file
* When only specified files are being processed, don't scan the whole hierarchy
* Added -I flag to tidyall
[INTERNALS]
* Switch to Moo
* Added separate new_from_conf_file constructor, for cleaner separation of cases
0.02 2012-07-03
[ENHANCEMENTS]
* Added Test::Code::TidyAll, to test that a project is tidied
* Added prefilter and postfilter params, to be applied to code before and after processing
* Added --check-only option to check but not tidy
* Added --mode option and modes config entry, to activate only a subset of plugins in config
* Added --output-suffix to write file to a different destination
* Added --quiet option to suppress most output
* Added --tidyall-class option to specify a different Code::TidyAll subclass
* Document how to create new plugins in Code::Tidy::Plugin
0.01 2012-06-17
* Initial release