Skip to content

What’s New

UCC 6

This section describes the changes introduced in version 6.0.0 of addonfactory-ucc-generator. The main emphasis of this update is on eliminating outdated, deprecated, and discouraged features. These changes help streamline the codebase, improve maintainability, and ensure that only supported and recommended functionality remains available for developers.

List of Changes

  • Dropped support for Python 3.7
  • Removed support for the .uccignore feature
  • Removed --ui-source-map option from the UI
  • Removed custom menu component from the UI
  • Removed AMD require for custom components
  • Removed oauth_field parameter in OAuth entities from the UI
  • Removed placeholder usage

Dropped support for Python 3.7

Current version supports Python 3.9 and above. Related libraries and dependencies have also been updated accordingly.

python = ">=3.9,<3.14"
jinja2 = ">=3.1.6,<4"
jsonschema = "^4.25.0"
packaging = ">=25.0"

Removed support for .uccignore

This feature was deprecated starting from v5.53.0 and has now been removed in UCC 6.

Attempting to use it will result in a build error and the process will exit with code 1.

Equivalent functionality can be achieved using additional_packaging.py, specifically with the cleanup_output_files feature to remove files after the source code is copied.

Removed support for --ui-source-map flag

The --ui-source-map build command flag is no longer supported.

Removed custom UI menu component

Feature was deprecated and removed as it can be replaced by Multilevel Menu feature.

Previous configuration:

{
  "inputs": {
    "title": "Inputs",
    "description": "Manage your data inputs",
    "services": [],
    "table": {
      "actions": ["edit", "delete", "clone"],
      "header": [],
      "moreInfo": []
    },
    "menu": {
      "src": "custom_menu",
      "type": "external"
    }
  }
}

and example code:

class CustomMenu {

    /**
    * Custom Menu
    * @constructor
    * @param {Object} globalConfig - Global configuration.
    * @param {element} el - The element of the custom menu.
    * @param {function} setValue - set value of the custom field.
    */
    constructor(globalConfig, el, setValue) {
        this.globalConfig = globalConfig;
        this.el = el;
        this.setValue = setValue;
        this.services = {};
    }

    render() {
        this.el.innerHTML = '<button type="button">Click Me! I am a button for custom menu</button>'
        this.el.onclick = () => {
            this.setValue({
                service: "example_input_one" // The value of service can be the name of any services, specified in the globalConfig file.
            })
        }
    }
}
export default CustomMenu;

Similar effect can be achieved with groupsMenu feature.

"groupsMenu": [
{
    "groupName": "example_input", 
    "groupTitle": "Click Me! I am a button for custom menu"
}
],

Removed AMD require for custom components

We do not recommend to use requireJS approach anymore. Since new version we recommend to use only Standard or Context approach.

As a result of this update, custom references must now include both the src and type properties and be structured as follows:

{
    "src": "component_file_name",
    "type": "external"
}

Removal of oauth_field parameter from OAuth

The oauth_field is no longer needed in oauth entities, as right now everything is based on field property itself. We advise to remove oauth_field property from globalConfig.json but if it will end up there, we will remove it during building process.

Removed placeholder

The placeholder attribute has been removed. We recommend using the “help” attribute as an alternative.