# The Novulo Composer

**URL:** <https://community.novulo.com/t/the-novulo-composer/148>\
**Category:** Wiki\
**Tags:** implementation, getting-started\
**Created:** [May 1, 2024, 1:58pm UTC](https://community.novulo.com/t/the-novulo-composer/148 "2024-05-01T13:58:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![k.molokova](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@k.molokova](https://community.novulo.com/u/k.molokova)\
**Post date:** [May 1, 2024, 1:58pm UTC](https://community.novulo.com/t/the-novulo-composer/148/1 "2024-05-01T13:58:07Z")

</div>

**[The composer application](https://composer.novulo.com/)**

## What is the Novulo Composer?

The [Composer](https://composer.novulo.com/composer/default.aspx) is the start of your new application. Here, you select which components will be part of your model, and start a Deployment order to generate and install the application.

> Tip: check the [terminology](https://community.novulo.com/t/novulo-terminology/357) for definitions of ‘component’ and ‘composition’.

To assist you in making your composition, the Composer has a connection with the [Novulo Appserver](https://community.novulo.com/t/navigating-novulo-application-server/133) and Novulo Network to access all relevant component information, such as:

- Component revisions
- [Reference architecture dependencies](https://community.novulo.com/t/concepts-and-features-an-introduction/132)
- Release notes

Using a **shopping cart** , a user can select components and check the validity of the composition according to component requirements and cart settings. You can make manual changes, or use our composer algorithms to create update suggestions. In the end, the validity of your composition will always be checked before sending it to Deployment.

## Opening or starting a shopping cart

1. **Open the Composer.** You need to log in with your Novulo credentials or with Novulo Support (NNetwork SSO)

2. **Open or start a cart**

- When **updating an existing model**

- When **creating a new model**

 ![2024-05-01 16_07_07-Dashboard __ Novulo Composer - Novulo](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/1X/f74dcdc89e0482524a11648ea9e6bb151ba28f17.png)  
 ![2024-05-01 16_08_47-Dashboard __ Novulo Composer - Novulo](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/1X/28f5669ea4fb18d51348ba2a2c6ac45f6089119b.png)

Notice the difference: starting a new cart always creates a “fresh” update based on the latest version of your model; loading a previous cart can be useful if you made cart changes (added a component(s), changed some revisions, etc.) that aren’t deployed yet, but still need to be deployed.

 ![composer](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/1X/330bf25850e2714c65b2f8ec2976002d80eabf69.png)  
You can also find your (coworkers) shopping cart history in the carts table.

## Making your composition

1. **Configure your shopping cart settings**

2. **Make or change your composition**

- **Manually in the Products\[1\] grid**

 ![afbeelding](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/2X/8/83324c503eb02fa909e69241c056c9eb8be33020.png)  
 ![2024-05-01 16_16_25-19037 - Training Kate Molokova __ Novulo Composer - Novulo](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/1X/bf6c966bb27bac6bf9a0bd1b88874aa94fb813f6.png)  
 ![2024-05-01 16_15_54-19037 - Training Kate Molokova __ Novulo Composer - Novulo](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/1X/a8d17a45d3dbe7a4355166a83f1f312565496e5b.png)

- **Using update suggestions.** See the next topic for more details

 ![afbeelding](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/2X/0/0e1e6a58cf76e725092b3006fc81ec0e70439d2b.png)

## Processing update suggestions

An update suggestion is a collection of **actions** to execute on your cart, along with **errors** that might be present after executing those actions.

There are five types of actions:

1. **Add** : adds a new component
2. **Upgrade** : updates an existing component
3. **Downgrade** : downgrades an existing component to a suggested (earlier) revision
4. **Remove** : removes a component
5. **Add while replacing** : adds a new component and removes a component

The two types of errors are always related to your [concepts, features and process components](https://community.novulo.com/t/concepts-and-features-an-introduction/132). One of those is either:

1. **Not produced**
2. **Produced multiple times**

We also saw that there are three types of suggestions:

1. **Reference architecture dependencies** suggestions are empty if your composition is valid, or result in errors if not. These errors can then be solved by any of the four actions
2. **Latest revisions with status** suggestions result in upgrade actions, and possibly errors if those upgrade actions would cause them
3. **Update based on another composition** suggestions result in any of the four actions that are necessary to change your composition into the other. Beware: it also suggests remove actions if you’re using a component that the other composition doesn’t

### Executing actions

1. Select the actions you want to execute
  - Beware: the current amount/lack of errors takes _all_ actions into acount. If you only execute a subset, you should re-check the errors a final time

2. Click “Execute on cart”
  - If one of the actions was a replace action, only the add-part was executed, and a new remove action has been created. Select and execute this one as well

3. To re-check errors, use the “Check errors” button on the “Controls” panel
  - The behaviour of the “Check errors” button changes based on the dropdown in front
    - “Don’t automatically add cart actions” only re-checks the errors
    - “Automatically add products to fix errors” re-checks the errors and then tries to solve them by adding components
    - “Automatically add products to fix errors v2” re-checks the errors and then tries to solve them by adding components found with a more sophisticated algorithm
    - “Automatically remove products to fix errors” re-checks the errors and then tries to solve them by removing components

 ![image](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/2X/7/7c8e334178b8c7ce058687e71d9d26638595987b.png)

### Solving errors manually

1. Open the error
2. Choose which component-status you want your solutions to have
  - Bèta gives solutions that result in Bèta components or higher
  - NB might result in more solutions (as there are more components NB or higher), but is a riskier update

3. Click “Reload fixes”
4. Choose the correct fix for your composition
  - Fixes can either upgrade, add, downgrade or remove components in your cart
  - Fixes aim to either add a missing producer, or remove all consumers; both solve the error, but you usually don’t want to remove a bunch of your components!
  - If you have to choose between multiple producing components, you can always check the components in the Architect. For extra convenience, you can add the “Architect Starter link” column!

5. Click “Use fix and reload errors” to add the fix as an action to your suggestion and immediately re-check the errors
  - The action still needs to be executed; but we recommend first solving all errors and then executing all resulting actions
  - We recommend re-checking the errors after each fix, because one fix could solve multiple errors at once, or result in new errors to solve

 ![afbeelding](https://canada1.discourse-cdn.com/flex008/uploads/novulo/original/2X/c/c8634f866848ebbbbc64188e5ccfb350a17c2fee.png)

## Performing checks

Besides making sure all dependencies are satisfied, the Composer also checks other compatibility properties of your composition.

1. **Component sequence rules** checks the sequence of your products. For instance, “Novulo Algemene instellingen en overzichten” must always be the first component in your cart
2. **Component statuses and architect versions** checks whether the statuses and architect versions of your selected product versions match what is [configured in the cart settings](https://community.novulo.com/t/the-novulo-composer/148#p-299-making-your-composition-3)
3. **Plug-in compatability** checks all the plug-in versions that are used in your products. Some plug-in versions have backwards-compatability issues, meaning that if one product uses one version of a plug-in; all other products must use that version (or higher) too
4. **To-do items** are internal release notes written by the component developers. If you are upgrading a product to a higher version, and a to-do item is written for one of the passed versions, you have to read the to-do item and mark it as read

Click on the deployment link to start [deployment.](https://community.novulo.com/t/the-novulo-deployment/153)

The result of the Novulo Composer is a GUIDs selection of components and datasets in a certain revision. This can be sent to Novulo Deployment. When sending the components from the Composer to Novulo Deployment, an integration string is being sent.

Check also [How can I set up a new application?](https://community.novulo.com/t/implementing-a-new-application/862)

 

* * *

1. Components are also called “Products” in the Composer and NNetwork 

2. Component revisions are also called “Product versions” in the Composer
