You are viewing documentation for our open source project which is maintained by the community. If you want to get started building assistants with Rasa please check out our latest [documentation here](/content/docs/index.html).

This page contains information about changes between major versions and how you can migrate from one version to another.

## Rasa 2.7 to 2.8  
##### caution  
This release **breaks backward compatibility of machine learning models**. It is not possible to load models trained with previous versions of Rasa Open Source. Please re-train your assistant before using this version.

### Deprecations  
#### Tracker Featurizers  
`training_states_actions_and_entities` method of `TrackerFeaturizer`, `FullDialogueTrackerFeaturizer` and `MaxHistoryTrackerFeaturizer` classes is deprecated and will be removed in Rasa Open Source 3.0 . If you had a custom tracker featurizer which relied on this method from any of the above classes, please use `training_states_labels_and_entities` instead.  
`training_states_actions` method of `TrackerFeaturizer`, `FullDialogueTrackerFeaturizer` and `MaxHistoryTrackerFeaturizer` classes is deprecated and will be removed in Rasa Open Source 3.0 . If you had a custom tracker featurizer which relied on this method from any of the above classes, please use `training_states_labels` instead.

#### State Featurizer  
`encode_all_actions` method of `SingleStateFeaturizer` class is deprecated and will be removed in Rasa Open Source 3.0 . It is recommended to use the method `encode_all_labels` instead.

### Incremental Training  
Users don't need to specify an additional buffer size for sparse featurizers anymore during incremental training.

Space for new sparse features are created dynamically inside the downstream machine learning models - `DIETClassifier`, `ResponseSelector`. In other words, no extra buffer is created in advance for additional vocabulary items and space will be dynamically allocated for them inside the model.

This means there's no need to specify `additional_vocabulary_size` for [`CountVectorsFeaturizer`](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/components#countvectorsfeaturizer) or `number_additional_patterns` for [`RegexFeaturizer`](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/components#regexfeaturizer). These parameters are now deprecated.

### Machine Learning Components  
The option `model_confidence=linear_norm` is deprecated and will be removed in Rasa Open Source `3.0.0`.

Rasa Open Source `2.3.0` introduced `linear_norm` as a possible value for `model_confidence` parameter in machine learning components such as `DIETClassifier`, `ResponseSelector` and `TEDPolicy`. Based on user feedback, we have identified multiple problems with this option. Therefore, `model_confidence=linear_norm` is now deprecated and will be removed in Rasa Open Source `3.0.0`. If you were using `model_confidence=linear_norm` for any of the mentioned components, we recommend to revert it back to `model_confidence=softmax` and re-train the assistant. After re-training, we also recommend to [re-tune the thresholds for fallback components](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/fallback-handoff#fallbacks).

## Rasa 2.5 to 2.6  
### Forms  
#### New `ignored_intents` parameter in Forms  
There is a new parameter under Forms called `ignored_intents`. This parameter can be used to prevent any required slots in a form from being filled with the specified intent or intents. Please see the [Forms documentation](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/forms) for examples and more information on how to use it in your `domain.yml` file.

Before, if a user did not want to fill any slots of a form with a specified intent they would have to define it under the `not_intent` parameter for every slot mapping as shown in the following example :

```yaml
domain.yml
forms:
  restaurant_form:
    cuisine:
      - type: from_entity
        entity: cuisine
        not_intent: chitchat
    num_people:
      - type: from_entity
        entity: number
        intent: [inform, request_restaurant]
        not_intent: chitchat
    feedback:
      - type: from_entity
        entity: feedback
        not_intent: chitchat
```

By introducing the `ignored_intents` parameter, we now only need to define it in one place and it will affect all the slots of the form :

```yaml
domain.yml
forms:
  restaurant_form:
    ignored_intents: chitchat
    required_slots:
      cuisine:
        - type: from_entity
          entity: cuisine
      num_people:
        - type: from_entity
          entity: number
          intent: [inform, request_restaurant]
      feedback:
        - type: from_entity
          entity: feedback
        - type: from_text
```

## Rasa 2.4 to 2.5  
### Machine Learning Components  
#### `DIET`, `TED`, and `ResponseSelector`  
The former `weight_sparsity` parameter of the `DIETClassifier`, `TEDPolicy`, and the `ResponseSelector`, is now deprecated and superseded by the new `connection_density` parameter. The old `weight_sparsity` is roughly equivalent to `1 - connection_density`, except at very low densities (high sparsities).

To avoid deprecation issues, you should set `connection_density` to `1 - your former weight_sparsity setting` throughout the config file. (If you left `weight_sparsity` at its default setting, you don't need to do anything.)

#### SpaCy 3.0  
Rasa now supports spaCy 3.0. This means that we can support more features for more languages but this also introduced a breaking change. SpaCy 3.0 deprecated the `spacy link <language model>` command. So from now on you need to use the [the full model name](https://spacy.io/models) in the `config.yml` file.

**Before**  
```yaml
language: en
pipeline:
  - name: SpacyNLP
```
**Now**  
```yaml
language: en
pipeline:
  - name: SpacyNLP
    model: en_core_web_md
```

**Fallback**  
To make the transition easier, Rasa will try to fall back to a medium spaCy model whenever a compatible language is configured for the entire pipeline in `config.yml`, even if you don't specify a `model`. This fallback behavior is temporary and will be deprecated in Rasa Open Source 3.0.0.

We've updated our docs to reflect these changes. All examples now show a direct link to the correct spaCy model. We've also added a warning to the [SpaCyNLP](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/components#spacynlp) docs that explains the fallback behavior.

## Rasa 2.3 to Rasa 2.4  
### Deprecating `template` for `response`  
NLG Server  
- Changed request format to send `response` as well as `template` as a field. The `template` field will be removed in Rasa Open Source 3.0.0.
- The terminology `template` is deprecated and replaced by `response`. Support for `template` from the NLG response will be removed in Rasa Open Source 3.0.0. Please see [here](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/nlg) for more details.

`rasa.core.agent`  
- The terminology `template` is deprecated and replaced by `response`. Support for `template` from the NLG response will be removed in Rasa Open Source 3.0.0. Please see [here](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/nlg) for more details.

`rasa.core.nlg.generator`  
- `generate()` now takes in `utter_action` as a parameter.
- The terminology `template` is deprecated and replaced by `response`. Support for `template` in the `NaturalLanguageGenerator` will be removed in Rasa Open Source 3.0.0.

`rasa.shared.core.domain`  
- The property `templates` is deprecated. Use `responses` instead. It will be removed in Rasa Open Source 3.0.0.
- `retrieval_intent_templates` will be removed in Rasa Open Source 3.0.0. Please use `retrieval_intent_responses` instead.
- `is_retrieval_intent_template` will be removed in Rasa Open Source 3.0.0. Please use `is_retrieval_intent_response` instead.
- `check_missing_templates` will be removed in Rasa Open Source 3.0.0. Please use `check_missing_responses` instead.

Response Selector  
- The field `template_name` will be deprecated in Rasa Open Source 3.0.0. Please use `utter_action` instead. Please see [here](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/components#selectors) for more details.
- The field `response_templates` will be deprecated in Rasa Open Source 3.0.0. Please use `responses` instead. Please see [here](https://legacy-docs-oss.rasa.com/docs/rasa/2.x/components#selectors) for more details.

## Rasa 2.3.3 to Rasa 2.3.4  
##### caution  
This is a release **breaking backwards compatibility of machine learning models**. It is not possible to load previously trained models if they were trained with `model_confidence=cosine` or `model_confidence=inner` setting. Please make sure to re-train the assistant before trying to use it with this improved version.
