Skip to content

Creating Packages Plugins For The Marketplace

Joey de l'Arago edited this page Feb 24, 2023 · 2 revisions

Getting Started

How to get started depends a lot on what kind of resources you want to include in your package. You can upload and publish your packages via https://contribute.ultimaker.com.

Plugins

To submit a plugin, first write and 'build' your plugin. You can find more information about this on Plugin Directory.

To publish a plugin, just make a zip archive from the root folder of your plugin. The root folder should have the same name as your package ID. Then use the UltiMaker portal to upload the source files in the "Edit release" screen.

Material Packages

Cura also supports packages that contain a set of material and quality files. These allow material manufacturers to extend Cura with the needed settings for their materials.

To publish a material/quality set, just make a zip archive from a folder containing all your material (.xml.fdm_material) and quality (.inst.cfg) files. Then use the UltiMaker portal to upload the source files in the "Edit release" screen.

For more information about the UltiMaker material support program, please contact plugins@ultimaker.com.

Requirements

  • When installing/installed Cura should never crash (also when there is no network or target application).
  • The package should be compatible with all operating systems Cura supports. In the case of a plugin, it can be 'disabled' by default on certain operating systems, but never crash.
  • The package shouldn't update itself 'outside of' our package infrastructure. We do want to check what gets distributed with Cura.
  • Check for virus/trojans (for example, use VirusTotal to check against many common virus scanners).
  • The contents of a package should not send user data.
  • The contents of a package should only touch their own preferences.
  • The package should have a license file in the root directory.
  • When a major update is done, there should be a changelog included in the package.
  • Max of 50 MB.
  • The owner of the package should be allowed to use all the software that is in the package.

Naming

Packages should not include the package type. Plugins however can include the plugin type. For example:

  • Bad: WebPrintingPlugin

  • Good: WebPrintingIntegration

  • Bad: RotatePlugin

  • Good: RotateTool

Packages should not have other metadata such as author names or version numbers included in the name. For example:

  • Bad: Custom Support by Ian

  • Good: CustomSupport

  • Bad: FilamentHousePLA v3 (Updated)

  • Good: FilamentHousePLA

Additional guidelines to follow in the future


Note: The key difference is that packages may contain plugins, but may contain other resources as well. This means packages are a sort of wrapper for plugins, and shouldn't affect how your plugin works, only how it is distributed to users.

Note: UltiMaker reserves the right to request changes via the portal.

Clone this wiki locally