@@ -26,87 +26,107 @@ If you want to upgrade the current definition to a new version, use the followin
## Example:
* Current version: **0.12.1**
* New version: **0.18.1**
* In the `config.yml` change the field `version` from 0.12.1 to 0.18.1.
### 0.12.1 to 0.13.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.13.0**.
2. The only change is transforming the `control` field into `controls` in `questionnaires.yml` in questions.
3. Open `questionnaires.yml`. If the `control` field is present, change it to `controls` in every question.
4. The change enhances the control options, as shown in the [definition documentation](README.md). To keep the functionality the same, prepend the previous control with the number of correct answer with the colon, e.g. correct answer is 1, prepend `1: `
5. Save the file.
6. Check the `questionnaires.yml` against the `questionnaires.yml` structure in the [definition documentation](README.md).
### 0.13.0 to 0.14.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.14.0**.
2. The only change is allowing more `info` type channels.
3. Open `injects.yml` and add to every info type inject field `target` with the name of the current info type channel specified in `channels.yml`.
4. Save the file.
5. Check the `injects.yml` against the `injects.yml` structure in the [definition documentation](README.md).
### 0.14.0 to 0.15.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.15.0**.
2. The change lies in adding a new type of questionnaire, free-form. The new feature does not alter the current definition syntax.
* Current version: **0.18.1**
* New version: **0.23.3**
* In the `config.yml` change the field `version` from 0.18.1 to 0.23.3.
### 0.18.1 to 0.19.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.19.0**.
2. The change in common definitions is in the syntax of `activate_milestone`, `deactivate_milestone`, and `roles`, where simple strings are now fields which means list notation in square brackets, e.g., instead of `activate_milestone: X_final_milestone, X_intro_milestone` the syntax is as follows `activate_milestone: [ X_final_milestone, X_intro_milestone ]`.
So go through all the definition files and add square brackets `[]` around milestones or roles in the mentioned fields.
3. Open `objectives.yml` all `tags` fields using the syntax as in the previous change, so instead of `tags: apply, consult`, the designer has to write it in square brackets like this `tags: [ apply, consult ]`.
4. In milestones, if you use feature activation of milestones based on interaction with files, then you have to open `milestones.yml` and add square brackets around files in `file_names`, similarly as in previous points.
5. Lastly, all the labels in `questionnaires.yml` are also lists now, so put them in square brackets, as in previous points.
6. Check all the edited files against the structure in the [definition documentation](README.md).
### 0.19.0 to 0.19.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.19.1**.
2. The change lies in adding a new type of questionnaire, auto-free-form.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.19.1 to 0.20.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.20.0**.
2. The change lies in removing the team visible milestones feature, so if you have used this feature, remove the `team_visible` fields from `milestones.yml`.
3. Check the `milestones.yml` against the `milestones.yml` structure in the [definition documentation](README.md).
### 0.20.0 to 0.20.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.20.1**.
2. These two changes lie in adding new options for free-form and auto-free-form questionnaires, like limiting the input size and enabling custom text in tools buttons.
These new features do not alter the current definition syntax.
3. Skip the change.
### 0.15.0 to 0.15.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.15.1**.
2. The change lies in the addition of confirmation buttons to injects. It is only a new feature that does not alter the current definition syntax.
### 0.20.1 to 0.20.2
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.20.2**.
2. The change lies in adding a new type of questionnaire, multiple-choice.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.15.1 to 0.15.2
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.15.2**.
2. The change contains adding the field `description` to `config.yml`, `objectives.yml`, `channels.yml`, `milestones.yml`, `roles.yml` and `questionnaires.yml`. As seen in the [definition documentation](README.md), the fields are optional, so it is up to the designers to include more information in the definition.
3. Another change is addition of filed `display_name` to `channels.yml`, `milestones.yml` and `roles.yml`. Again, this new field is set to the previously set name, meaning the designer chooses to improve the definition.
4. Check the affected files against the structure in the [definition documentation](README.md).
### 0.15.2 to 0.16.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.16.0**.
2. First, optional fields `target_audience` and `prerequisites` are added to the `config.yml`. The designer can choose to add this information.
3. Next, the `subject` field is added to the email templates in the `emails.yml`. Add the field `subject` to every email template with a meaningful subject.
4. Save the files.
5. Check the `emails.yml` against the `emails.yml` structure in the [definition documentation](README.md).
6. Check the `config.yml` against the `config.yml` structure in the [definition documentation](README.md).
7. The significant change lies in changing how the learning activities are bound together with milestones. Now the milestones are written to the `objectives.yml` instead of activities being written to the `milestones.yml`.
8. Add field `milestones` to every activity, with the name of the milestones previously bearing the name of the activity.
9. After connecting all activities with milestones, open `milestones.yml` and remove every field `activity`.
10. Check the `milestones.yml` against the `milestones.yml` structure in the [definition documentation](README.md).
11. Check the `objectives.yml` against the `objectives.yml` structure in the [definition documentation](README.md).
### 0.16.0 to 0.17.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.17.0**.
2. The change lies in adding the field `category` to `tools.yml`. If you previously used a category in `tools.yml` with the notation **category_toolName**, it is now mandatory to write the category in a separate field.
3. Add the field `category` to every tool with a category, remove the category from the name, and write it to the new field.
4. The next change is removing the field `description` from `questionnaires.yml`. Open `questionnaires.yml` and remove the field description from every questionnaire.
5. The last change is adding the new field `content` to the `questionnaires.yml`. The change allows for more information to be embedded in questionnaires. You can skip this change.
6. Save the files.
7. Check the `tools.yml` against the `tools.yml` structure in the [definition documentation](README.md).
8. Check the `questionnaires.yml` against the `questionnaires.yml` structure in the [definition documentation](README.md).
### 0.17.0 to 0.17.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.17.1**.
2. The change lies in adding embedding options into content fields. The change does not alter the current definition.
### 0.20.2 to 0.20.3
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.20.3**.
2. The change lies in adding a scoring option for the exercises by assigning a `score` to milestones.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.17.1 to 0.17.2
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.17.2**.
2. Fixed embedding in email templates. No change is required.
### 0.20.3 to 0.21.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.21.0**.
2. In the common definitions, the field `file_name` has been renamed to `attachments`, and the syntax has changed; the attachments are now a list, so they must be enclosed in square brackets.
3. So go through all the definition files, replace the `file_name` field with `attachments`, and enclose its content into square brackets, e.g. `file_name: file.pdf` to `attachments: [ file.pdf ]`.
4. Check all the edited files against the structure in the [definition documentation](README.md).
### 0.21.0 to 0.22.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.22.0**.
2. The changes lie in adding the `instructor_notes` field to `config.yml` and adding the possibility of making the overlay endless.
These new features do not alter the current definition syntax.
3. Skip the change.
### 0.17.2 to 0.18.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.18.0**.
2. The first change is adding the `content` field to `default_response` in tools.
3. Fix `default_response` according to [definition documentation](README.md).
4. Check the `tools.yml` against the `tools.yml` structure in the [definition documentation](README.md).
5. The second change lies in adding the optional field `requires_input` to `tools.yml`. This new feature allows you to use tools without input parameters. So, it is up to the designer if such a change is desired.
6. Otherwise, skip the change.
### 0.18.0 to 0.18.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.18.1**.
2. The change lies in adding an optional `note` to `questionnaires.yml`. This feature only adds additional information to questionnaires, so it is up to the designer.
3. Otherwise, skip the change.
### 0.22.0 to 0.22.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.22.1**.
2. The change lies in adding a signing feature to the emails.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.22.1 to 0.22.2
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.22.2**.
2. The change lies in adding optional internal file storage for trainees; the designers can put various files like incident handling manuals there for trainees to use during the exercise.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.22.2 to 0.22.3
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.22.3**.
2. The change lies in enabling questionnaires to be submitted after the exercise is over or after it has been stopped.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.22.3 to 0.23.0
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.23.0**.
2. Multiple optional `display_name` fields were added in the definition. These fields do not change the syntax of the definition and could be skipped.
3. The only vital change is in the `questionnaires.yml`. The title has been renamed, and the new required field `name` was added.
4. To upgrade questionnaires, rename the field `title` to `name` in every questionnaire to preserve current behavior.
5. Check the `questionnaires.yml` against the `questionnaires.yml` structure in the [definition documentation](README.md).
### 0.23.0 to 0.23.1
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.23.1**.
2. The change lies in adding optional fields to learning activities in `objectives.yml`.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.23.1 to 0.23.2
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.23.2**.
2. The change lies in adding a new feature to questionnaires; the questionnaires can now be repeatable.
The new feature does not alter the current definition syntax.
3. Skip the change.
### 0.23.2 to 0.23.3
1. In the [CHANGELOG](CHANGELOG.md), find the first subsequent definition version to the current version, which is, in this case, **0.23.3**.
2. There is no change, only removing the unintended limit for the number of correct answers in the multiple-choice questionnaires.
* Create a new .zip archive and upload it to the IXP.
* The upload process will check the definition for errors.