Project imports

Imports can read other project files and merge them as a sub-project into the current file. With this statement you can easily manage multiple projects while keeping track of shared resources.

Example

main.yaml:

project:
  name: Main Project
  start: 2020-06-01

imports:
  - resources.yaml
  - subproject.yaml

subproject.yaml:

project:
  name: Main Project
  start: 2020-06-01

imports:
  - resources.yaml

tasks:
  - task: subtask1
    name: My task
    efforts: 2d
    assign: dev

resources.yaml:

resources:
  - resource: dev
    name: Developer

In this example, you can schedule subproject.yaml on its own, but you can also schedule main.yaml, which has subproject.yaml imported and will schedule all tasks and resources of each imported project.

In case of clashing resources (i.e. resources with the same identifier coming from different files), the resource in the imported file will be discarded.

TaskFalcon will make sure to detect import loops (e.g. file a.yaml importing file b.yaml and b.yaml importing file a.yaml).

It is possible to have a cascading hierarchy of imports over multiple files.

When importing tasks from a different project file, all task IDs will be prefixed with the name of the file. In the above examples subtask1 will have the full id subproject.subtask1. This is necessary to avoid collisions.