# Migration and upgrading

Generally, migration between major versions has two sides to it:

* What's changed in Radix itself
* What's changed in Bootstrap

This is a time-consuming process and not a scripted approach. The ideal suggested approach is a manual migration, meaning start fresh and move everything from your old theme into the new one:

* Upgrade your parent Radix theme to the latest version
* Create a new sub-theme
* Move over your custom `components` into your new theme
* Update the bootstrap variables
* Update utility-classes in each component
* Define a `[COMPONENT-NAME].component.yml` file
* Migrate your `*.theme` files into your new theme
* Migrate and possibly update your `*.JS` file
* Build your theme and test it

### The Bootstrap side

For instance, the Radix `3.x` comes with Bootstrap 3, Radix `4.x` comes with Bootstrap 4, and Radix `5.x` with Bootstrap 5. First off you need [the migration documentation on Bootstrap](https://getbootstrap.com/docs/5.0/migration/)

migrating means that you need to:

* Check your deprecated `classes` and update them accordingly
* Check your deprecated `variables` and `mixins` , etc... and update them accordingly.
* Remove any `jQuery` code and dependencies
* Upgrade your node packages like `popperJS`&#x20;
* Replace your `Libsass` with the `Dart Sass`
* For the Sass part, check the breaking changes in the [Bootstrap docs](https://getbootstrap.com/docs/5.0/migration/#sass)&#x20;
* etc...

### The Radix side

Radix has switched to using Drupal core's SDC, so a lot has changed, with that in mind, we are still using rather the same component approach that we had as before, so it's not that hard to recreate our components.

Mind the deprecated components and newly added ones, search for `*.twig` within your template files and see if all of those components are updated and in place.


---

# 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://docs.trydrupal.com/radix/misc/migration-and-upgrading.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.
