Support PNPM-based multi-repositories as projects

  • Needs as new Lifecycle
  • Reads pnpm-workspace.yml for information about project structure.
  • Match pnpm tasks to Gradle Tasks.
  • Optionally could traverse the tree to create tasks to match PNPM subproject packages.
  • Gradle --continue must pass --no-bail to pnpm -r run.
  • --reverse and ``--resume-frommust be options on tasks that executepnpm -r run`.
  • build and test in workspace must map to Assemble and Test tasks.
  • Workspace task names like build and test are by convention, but it must be possible to override those names for cases where the convention is not followed.
  • Use a rule for running script in a package within a workspace. Need to read from pnpm-workspace.yaml, thus can only be done by a rule, which will invoke an early resolving of srcDir in source set. The only other way is to register all possible tasks in afterEvaluate.
  • Need to be able to evaluate wildcards in packages.
  • Have ability to scan packages for changes in order to determine up to date status for toplevel tasks.
Edited by Schalk W. Cronjé