depl 2.3.6

Toolkit for a bunch of local and remote CI/CD actions
Documentation
# Migrations guide

> Actual project config version: `8`.
>
> Actual global config version: `5`.

Press `q` to exit.

## From `2.0.0` to `2.1.0`

Migrations will be applied automatically after first project edit.

1. `is_secret` variables' field is now optional (`false` by default).

## From `1.5.0` to `2.0.0`

1. PreBuild/Build/PostBuild, Pack/Deliver/Install and ConfigureDeploy/Deploy/PostDeploy action types are gone now. Also, all actions should have only one custom command definition for now. Please, manually redefine your actions as Staged (with `stage: build/deploy` option).
2. All pipelines should use not complete actions definitions as before, but their `UsedAction` form. Used actions can contain variable assignments as only additional information. Please, manually redefine your pipelines.

## From `1.4.4` to `1.5.0`

Migrations will be applied automatically.

1. `artifacts` and `place_artifacts_into_project_root` are now moved to each Pipeline (and renamed into `artifacts` and `artifacts_placements` fields).
2. `ssh_private_key_file` fields on `RemoteHost` are now optional.

## From `1.4.1` to `1.4.2`

1. Manually check all your `add_to_storage` actions (`AutoVersionExtractFromRule`): them now look like this:

```json
[
  {
    "type": "add_to_storage",
    "short_name": "my-project",
    "auto_version_rule": {
      "type": "plain_file",
      "path": "file-with-current-version.txt"
    }
  },
  {
    "type": "add_to_storage",
    "short_name": "my-project-2",
    "auto_version_rule": {
      "type": "cmd_stdout",
      "cmd": <!-- {custom command} -->
    }
  }
]
```

Formally, you should now specify `type` field of `auto_version_rule` object.

## From `1.4.0-beta-3` to `1.4.0-beta-4`

1. Manually check all your configuration files for programming languages and targets' OSes. Replace `null` values with strings in the lower register (for example, `"rust"`, `"linux"`, etc.).

## From `1.4.0-beta-1` to `1.4.0-beta-2`

1. Rename `run_strategies` inside your `containered_opts` to `cache_strategies` (project configurations).

## From `<=1.3.5` to `1.4.0-beta-1`

Migrations will be almost fully applied automatically on configuration save. Deployer will be able to work with old configuration formats (`"version": 2`).

1. All actions will be typed internally with `type` field and `snake_case` (example: `{ "type": "build", ... }`).
2. `deploy-config.json` and `deploy-global.json` will be upgraded to `"version": 3`.
3. Variables, requirements, placements and other structs are changed, see the documentation.
4. Check action will become Test, original Test will be migrated into PostBuild.

### Need manual changes:

1. Cannot automatically migrate targets and programming languages; fill them by yourself.

## From `<=1.3.4` to `1.3.5`

1. Use `deployer run` instead of `deployer build`. Also use `deployer run --run-at` instead of `--build-at`.
2. Rename inner `BuildEnvironment` to `RunEnvironment` and replace `build_dir` with `run_dir`.

## From `<=1.2.1` to `1.3.0`

1. Edit `deploy-config.json` and rename `inplace_artifacts_into_project_root` to `place_artifacts_into_project_root`.
2. Remove `tags` field inside your deploy-like and `Observe` actions.
3. `deploy-config.json` and `deploy-global.json` will be upgraded to `"version": 2`.