Changelog

View Source

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

v0.2.1 (2025-03-14)

  • Allow having multiple workspaces under the same git repo.

v0.2.0 (2025-02-07)

This version requires at least elixir v1.16

Added

  • workspace.run: support specifying execution order through the --option flag.

    Till now workspace.run was executing the tasks in alphabetical order. A new --order cli option is added that support setting it to preorder. This will perform a depth first search on the project graph and return the projects in post-order, e.g. outer leaves are returned first respecting the topology of your workspace.

  • workspace.run: support filtering by root paths through the --path flag.

  • workspace.run: support filtering by --dependency and --dependent similarly to workspace.list.

  • Support passing most repeated CLI arguments as a comma separated list, for example you can now do:

    $ mix workspace.run -t format -p p1,p2,p3
    
  • workspace.check: support running specific checks through the --check option

  • workspace.check: support grouping checks.

    You can now configure the group of each check in your workspace config, with the group option. Checks with the same group will be printed together on the CLI output, under a group header.

    Additionally you can specify groups_for_checks with which you can modify the default look and feel of each check group, for example:

    groups_for_checks: [
      package: [
        style: [:light_blue_background, :black],
        title: " 📦 Package checks"
      ],
      documentation: [
        style: [:yellow_background, :black],
        title: " 📚 Documentation checks"
      ]
    ]
  • workspace.list: support filtering by root paths through the --path flag.

  • Promoted helper testing utilities to a Workspace.Test module.

Deprecated

  • Check definitions without an id is deprecated. ids can be used for filtering the checks that will be executed.

Removed

  • Workspace.Utils.Path.relative_to/2 has been removed. After requiring at least elixir 1.16 you can now use Path.relative_to/3 instead with the force: true option.

Fixed

  • Escape base and head references in git commands.

  • workspace.test.coverage: respect ignore_modules from coverage report

v0.1.2 (2024-09-30)

Added

  • workspace.list: support filtering by dependents through the --dependent flag. You can now list all projects that are direct dependencies of a given project:

    mix workspace.list --dependent my_project
    
  • workspace.list: support filtering by dependencies through the --dependency. Using this flag you can list only those projects that have the given direct dependency:

    mix workspace.list --dependency a_project
    
  • workspace.list: add --maintainer for filtering projects with the given maintainer

v0.1.1 (2024-07-04)

Added

  • workspace.run: add --export option for exporting execution results as a json file
  • workspace.run: log execution time per project
  • workspace.list: add --relative-paths option for exporting relative paths with respect to the workspace path instead of absolute paths (the default one).

Removed

  • workspace.run: remove --execution-mode flag

v0.1.0 (2024-05-13)

Initial release.