Penstock

Guide / Share and move

Camunda 7 to Camunda 8

The migration assistant shows what in your Camunda 7 project does not carry over to Camunda 8, converts what it can, and writes a report you can hand on.

Free Looking and the report are free. Converting and worker skeletons need Pro, and Team in a pipeline.

Why and for whom

Camunda 7 Community Edition has reached its end of life. A team on it has to decide whether to move to Camunda 8, and then to do it: the diagrams, the decisions, the forms and the Java code behind them. The assistant does the reading and most of the converting, in your tool, next to the code.

It works on Camunda 7, Operaton and CIB seven projects. Both forks are read as a Camunda 7 source, because their diagrams use the same camunda: namespace.

What is free and what is Pro

PartPlan
Analysis: what does not carry over, why, what to do, who does itFree
The migration report, as Markdown and one HTML pageFree
Converting a diagram, decision or form, with the previewPro, Team in a pipeline
Job worker skeletons written from your delegatesPro

See what does not carry over

  1. Open a Camunda 7 diagram.
  2. Press Migrate to Camunda 8 on the toolbar. It is pinned for Camunda 7, Operaton and CIB seven diagrams. It can be unpinned into the More menu.
  3. The Problems tab of the sidebar opens on its Migrate to Camunda 8 group. It says, for example, 7 to do, 3 to check, 19 convert unchanged. Press Migrate to Camunda 8 again to close it.
  4. Read the groups, each with its count: Needs work (a person has to do it), Review after converting (Penstock converts it, you check it), and Convert unchanged, collapsed, for what converts exactly. A diagram with nothing wrong in the other groups still shows No problems found. at the top of the tab.
  5. Click a line. The element is selected on the canvas. Each line says what is wrong, why, and what to do.
A Camunda 7 diagram with Check and Migrate to Camunda 8 pressed. Three script tasks are outlined with a dashed blue line. The Problems tab reads No problems found and has the group Migrate to Camunda 8, a Convert button, 3 to do, 7 convert unchanged, and three findings The groovy script cannot run in Camunda 8
The migration group in the Problems tab, with a Convert button at its right, the count under it and the findings under that. The tasks that need work are outlined on the canvas.

The group looks at one diagram. For the whole project, all files at once, Penstock lists each file with its status (ready, converts, needs work, blocked), its findings, and the Java code with what each class becomes.

Migrate a whole project

JetBrains

Open the Penstock tool window and find Migrate to Camunda 8. It lists every file with its status and findings, and the Java code with what each class becomes. Right-click a file and choose Convert to Camunda 8…, or use Convert All… on the root.

VS Code

Not available in VS Code. The Camunda 7 to Camunda 8 conversion is not available in VS Code yet, and neither is the project list that shows it. Use penstock migrate on the command line.

Command line

$ penstock migrate .
ready       src/main/resources/approve-order.form  1 convert
needs work  src/main/resources/order-process.bpmn  1 to do, 8 convert
        error   migration/message-catch: Shipment confirmed: The message shipment-confirmed needs a correlation key. ...
        error   migration/delegate-expression: Send receipt: Delegate ${sendReceipt} becomes the job type sendReceipt. ...
ready       src/main/resources/shipping-method.dmn  1 convert

3 files to migrate for Camunda 8.8: 2 ready, 0 convert, 1 need work, 0 blocked.
Job workers to write: 2
  • migrate, migrate analyze: list what does not carry over. Exit code 1 if there is an error, or a warning with --fail-on warning. Free.
  • migrate convert: convert the files. It writes the Camunda 8 files into a camunda-8 folder next to the one given, or into --out <dir>, and leaves the originals as they are. Use --dry-run first. Pro, and Team in a pipeline.
  • migrate report: write the report. Free.
  • --target 8.5 to 8.9, --format text|json|sarif|github, --baseline, --update-baseline, --verbose.

The converted folder gets a penstock.yaml of its own that says engine: camunda-8, and the penstock.yaml of the Camunda 7 files is not touched. See Every command.

What the words mean

Status of a fileMeaning
ReadyNothing to do.
ConvertsPenstock converts it. The leftovers are a check.
Needs workA person has to do part of it.
BlockedIt uses something Camunda 8 has no form for.
A finding is markedMeaning
ConvertsPenstock converts it exactly.
To checkPenstock converts it. A person checks the result. The finding stays after converting.
To doPenstock leaves it and marks it on its element. A person does it.

In a pipeline

The analysis runs without the editor, so it can gate a pipeline while a project still has Camunda 7 diagrams in it.

OptionWhat it does
--target <version>The Camunda 8 version to check against, 8.8 by default.
--format text|json|sarif|githubThe findings as a table, as JSON with a count of effort and the blockers, as SARIF, or as annotations on the changed lines. SARIF and annotations are Pro, and Team in a pipeline.
--fail-on error|warningWhat makes the exit code 1. Errors always do. With warning a warning does too.
--baseline, --update-baselineFail only on what is new since the last --update-baseline, which writes penstock-migration-baseline.json in the project root. Pro, and Team in a pipeline.
--verboseAlso lists the notes, the things that only carry over as they are.

What it looks at

Convert

Pro

  1. In the Migrate to Camunda 8 group of the Problems tab, press Convert. Your tool can also convert a file or all files of a project.
  2. The diagram opens twice, side by side, in the visual diagram diff: before and after, each centred in its own pane under one title. The preview also names the folder the Camunda 8 files will go into, camunda-8 next to the converted folder, and you can change it there and with --out. Nothing is written yet.
  3. Read what changed, then press Convert. The Camunda 7 files stay as they are, and the new ones carry a penstock.yaml of their own that says engine: camunda-8.
  4. Converting into a folder that already holds converted files is not a dead end: the preview offers Replace the files in <folder>, with a warning when the folder is not under version control, and writes over them only when you tick it.

What Penstock cannot convert exactly stays in the file, marked on its element with a conversion:message that the Camunda Modeler reads too. It also stays a finding. Converting twice changes nothing more.

Job worker skeletons

Pro

Each Java delegate, external task handler or listener is followed to its source, with the file and line and what it becomes. Penstock can write a skeleton next to the code: a Spring job worker, a Node worker or a Python worker. The skeleton is written from the variables the code reads and writes and the BPMN errors it throws. Penstock never writes over a file.

Write a skeleton in your tool

JetBrains

In the tool window, open Migrate to Camunda 8, then Code. Right-click an item and choose Job Worker Skeleton… (Spring), Node Worker Skeleton… or Python Worker Skeleton…. Pro.

VS Code

Not available in VS Code. Job worker skeletons are written from the JetBrains IDE and are not available in VS Code yet. penstock migrate prints how many job workers there are to write.

Command line

Not available on the command line. Skeletons are written from the IDE. penstock migrate prints how many job workers there are to write.

The report

The report is Markdown and one self-contained HTML page.

Write the report in your tool

JetBrains

Press Migration Report on the root of Migrate to Camunda 8 in the tool window.

VS Code

Press Migration Report on the root of Migrate to Camunda 8 in the Penstock view.

Command line

$ penstock migrate report .
wrote migration-report.md
wrote migration-report.html

Use --out <dir> to choose the folder.

The HTML is one self-contained page for a manager: scope, what the move costs (job workers to write, expressions to rewrite, scripts to replace, listeners to move, forms to rebuild, called processes, decisions), files with their status, and the code.

What it does not do

Common problems

There is no Migrate to Camunda 8 button.
It shows for Camunda 7, Operaton and CIB seven diagrams. A Camunda 8 or Classic BPMN diagram has none. The group says Nothing to convert: this is not a Camunda 7 diagram.
Convert asks me to buy Pro.
Converting is a Pro feature. The analysis and the report are free. See Plans and licence.
After converting, the check still lists findings.
Those are the ones a person has to do or check. They stay on their element until you fix them.
"Unknown target".
Use 8.5, 8.6, 8.7, 8.8 or 8.9.
"There is nothing to migrate".
No Camunda 7 diagram, decision or form was found in the path you gave.