Changelog

v0.9.1

Released on 2023-10-15 - GitHub - PyPI

New features

  • Added a pre-commit plugin with a preCommitHookExists action to check pre-commit hooks configurations.

Bug fixes

  • Fixed keys unsorted when deserializing YAML content.

v0.9.0

Released on 2023-10-14 - GitHub - PyPI

⚠️ Breaking changes

  • Removed support for Python 3.7

Enhancements

  • Added support for Python 3.12

v0.8.0

Released on 2022-12-22 - GitHub - PyPI

⚠️ Breaking changes

  • Globs are not allowed inside files arrays of rules
  • Tree API has been changed, so third party plugins must be updated accordingly

Bug fixes

  • Fixed some inconsistencies using --rootdir and --config CLI options

Enhancements

  • This version comes with a big refactor of some crucial parts of the program, which has allowed a x5 speedup improvement
  • Don't depend on typing_extensions at runtime

New features

  • Added project-config show reporters command to show all available reporters
  • Added JMESPath functions for some file system operations: isfile, isdir, exists, mkdir, rmdir and glob
  • Added new actions for inclusion plugin: exludeLines and includeContent

v0.7.9

Released on 2022-12-06 - GitHub - PyPI

  • Added support for JSON5 files on Python3.11.

v0.7.8

Released on 2022-11-30 - GitHub - PyPI

Enhancements:

  • Optimize crossJMESPathsMatch verb.

v0.7.7

Released on 2022-10-01 - GitHub - PyPI

New features:

  • Added project-config show file. Pass a path to a file or an URL as argument and it will print a JSON-serialized version of the content, for example project-config show file pyproject.toml.

Bug fixes:

  • Fixed errors derived from the fact that files existence check has been being executed before the ifFilesExist conditional, which raises false positives if some of the files are the same and don't exist.

v0.7.6

Released on 2022-09-29 - GitHub - PyPI

Enhancements:

Bug fixes:

  • Fixes some encoding issues in Windows.
  • Fixes edge case exceptions when executing Python files to from JMESPath rules.

v0.7.5

Released on 2022-07-28 - GitHub - PyPI

New features:

  • Allow to install the project-config CLI from NPM with npm install python-project-config.
  • Add new custom JMESPath function regex_escape().

v0.7.4

Released on 2022-07-21 - GitHub - PyPI

Enhancements:

v0.7.3

Released on 2022-07-18 - GitHub - PyPI

Bug fixes:

  • Handle uncatched exception in some subexpression fix queries.

v0.7.2

Released on 2022-07-18 - GitHub - PyPI

Bug fixes:

  • Fixed error autofixing subexpression with indexes.

New features:

  • Added custom JMESPath functions getenv() and setenv() to manipulate environment variables.

v0.7.1

Released on 2022-07-15 - GitHub - PyPI

Bug fixes:

  • Auto fixing of constants in subexpressions.
  • Show that file existence and absent errors are fixable.

New features:

  • New custom JMESPath functiongh_tags() to get the latest tags of a github repository.

v0.7.0

Released on 2022-07-15 - GitHub - PyPI

New features:

  • Added project-config fix subcommand to apply manual and automatic fixes to errors. See best practices guide.
  • Added new custom JMESPath function os() to get the platform in which the current execution is running.
  • Added new option --only-hints / only_hints = true to only show hints rather than messages in errors.

v0.6.0

Released on 2022-07-11 - GitHub - PyPI

New features:

v0.5.0

Released on 2022-07-08 - GitHub - PyPI

New features:

Enhancements:

  • Concurrent fetching for faster caching of remote style files when they have not been cached yet.

v0.4.0

Released on 2022-07-04 - GitHub - PyPI

Deprecations:

  • The custom JMESPath function regex_matchall has been deprecated and will be removed in v1.0.0. Rewrite regex_matchall('^foo$', ['foo', 'bar']) as op(length(['foo', 'bar'][?regex_match('^foo$', @)]), '==', length(['foo', 'bar'])).

New features:

Enhancements:

  • Better errors catching fetching and serializing files.
  • Values validation in inclusion plugin actions.

v0.3.1

Released on 2022-06-30 - GitHub - PyPI

Bug fixes:

  • Fix error fetching styles when rootdir not specified.

v0.3.0

Released on 2022-06-30 - GitHub - PyPI

New features:

  • Accept recursive globs in files properties of rules.
  • New verb excludeContent to assert that content does not exist in files.
  • Allow to specify hints in rules.
  • Add show plugins command.
  • Allow to specify custom colors in CLI reporters.
  • Allow to configure CLI execution from configuration file.

Bug fixes:

  • Fix error processing multiple conditionals in the same rule.
  • Fix encoding error on Windows.

Enhancements:

  • Allow to pass options in flexible order to CLI.
  • Set environment variable PROJECT_CONFIG while CLI is running.
  • Added --no-cache option to CLI.
  • Retry connections in requests.

v0.2.0

Released on 2022-06-23 - GitHub - PyPI

Bug fixes:

  • Fixed default reporter not outputting actions when executing project-config show style
  • Fixed some errors serializing .editorconfig files
  • Fixed absolute file paths resolving in Windows

Improvements:

  • Improved error message showing not found local extended relative styles filenames.
  • A lot of improvements in documentation

New features:

  • Added show cache subcommand to output the cache directory location.
  • Allowed to add third party reporters through plugins entrypoints
  • Included pytest plugin in distribution for easy testing of third party plugins

v0.1.0

Released on 2022-06-22 - GitHub - PyPI

First beta release