# Breaking Changes

Information about breaking changes.

## From `1.x` to `2.x`

Please read [Issue #56](https://github.com/thiagodp/concordialang/issues/56).

## From `0.x` to `1.x`

### **Concordia Compiler**

1. It changed the way that all the plug-in operations are handled. See [Issue #34](https://github.com/thiagodp/concordialang/issues/34) for details.
2. The behavior of the following plug-in commands were affected:

| COMMAND            | NOW                                                                           | BEFORE                                                                                               |
| ------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `plugin-list`      | It lists all the plug-ins **installed for the application**.                  | It listed all the plug-ins **available** in the compiler.                                            |
| `plugin-install`   | It installs a **plug-in and its dependencies**.                               | **Only the plugin's dependencies** were installed, since the plug-in was embedded in the compiler.   |
| `plugin-uninstall` | It uninstalls a **plug-in and its dependencies** using `npm`.                 | **Only the plugin's dependencies** were uninstalled, since the plug-in was embedded in the compiler. |
| `plugin-info`      | It shows information about a plug-in **installed for the application**.       | It shows information about a plug-in **available** in the compiler.                                  |
| `plugin-serve`     | It starts a testing server using a plug-in **installed for the application**. | It started a testing server **available** in the compiler.                                           |

👉 See the [Command Documentation](https://app.gitbook.com/s/-LyZeGFeFI9v0gasbqLP/upgrade/commands.md) to know the commands' syntax.

### **Concordia Language**

No compatibility breaks.

### **Other relevant changes**

External tools used by plug-ins are now installed locally, per project, instead of installed globally. Their direct execution (without using Concordia) is now possible through NPX. For instance, the command `codeceptjs run test.js` must now be executed as `npx codeceptjs run test.js`. This change also allows the installation of different versions of external tools, when needed.

### FAQ

1. *Were there any changes in commands' syntaxes?*

   No, there were not.
2. *Is my configuration file still compatible?*

   It depends. All the properties are still compatible, except for `"plugin"`. Whether your configuration file has that property, you should [update it](/concordialang/upgrade/migration-guide.md).
3. *Is it possible now to install or uninstall a plug-in with NPM ?*

   Yes, it is possible to do both now.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://concordialang.gitbook.io/concordialang/upgrade/breaking-changes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
