# Migration Guide: 9.7.4 → 9.8.0

Version **9.8.0** brings a new tool to add custom items to <head>.

This release is a breaking change for users who had configured `ext_css_list` or `ext_js_list`.

---

## Summary

### Added

- New `setHeadElements`, `getHeadElements` and `addHeadElement` to `OConfig`.
- Option to define global custom elements on application configuration via `head_elements`.

### Changed

- Configuration options `ext_css_list` and `ext_js_list` will stop working.
- These configuration options won't break the `Config.json` file, but they will be ignored.
- New `head_elements` option added to `Config.json` file.

### Removed

- Configuration options `ext_css_list` and `ext_js_list` will stop working.
- These configuration options won't break the `Config.json` file, but they will be ignored.
- `OConfig` methods `setExtCSSList`, `getExtCSSList`, `addExtCssList`, `setExtJSList`, `getExtJSList` and `addExtJsList` removed.

---

## Impact on Existing Projects

Users who had `ext_css_list` or `ext_js_list` options defined on `Config.json` will have to change as they won't work anymore.

For example:

```json
{
	"ext_css_list": ["https://example.com/example.css"],
	"ext_js_list": ["https://example.com/example.js"]
}
```

Will have to change to:

```json
{
	"head_elements": [
		{
			"item": "link",
			"attributes": {
				"rel": "stylesheet",
				"href": "https://example.com/example.css"
			}
		},
		{
			"item": "script",
			"attributes": {
				"src": "https://example.com/example.js"
			}
		}
	]
}
```

---

## Purpose of This Update

This documentation update aims to:

- Provide a global option to add custom elements to <head>
- Instead of having separate ways to add external CSS o JS files, now users will be capable of adding any kind of item: CSS, JS, meta tags, canonical links...

---

## Backward Compatibility

Users with `ext_css_list` or `ext_js_list` will see those links stop working and are not loaded on their application.

---

## Developer Action Required

If a user has `ext_css_list` or `ext_js_list`, they will have to update those to the new `head_elements` configuration option.

---

## Notes

Future versions may reference this documentation baseline when introducing architectural or behavioral changes.
