Hi Tassilo,
thank you for your response.
- Would integrating and testing your community extensions against 7.24.0 CE be sufficient to guarantee they continue to work with 7.24.X? If not, why?
Even if Camunda stops releasing new software, there might be changes in the ecosystem requiring changes in the engine code, which must be adopted in the extension. So the extensions are not solely depend on Camunda Java API, but use a lot of ecosystem code too (we usually use Spring Boot). In addition, our extensions are running a large amount of unit and integration tests. I’ll give you an example: at freeze time Camunda 7.24 will be based on SpringBoot 3.5.0 (released tomorrow), but in Nov 25 SpringBoot 3.6.0 will follow… Projecting further we will get every May/November a new minor event/odd release of SpringBoot. Don’t know when (and don’t know how many 3.x releases will follow), but a chance is quite large that stuff will break in the next five years, because of changes in the Spring Boot. The same applies to the entire stack of dependencies - Jackson, Jersey, JAX-B, Commons-io, MyBatis, Log4j, etc - if they introduce breaking changes, you will probably adopt them during the LTS of Camunda 7.
(I’m aware that most libs are there for quite long time, but you will probably provide support for the EE customers with updated versions in the engine and its ecosystem integration). Since most EE customers will go in-step with latest updates of the ecosystem, I need a best proof that the extensions work - and the best way to do so is to build it with latest EE version. In fact - we have a maven profile
for doing that in most extension and test it locally (since we have a Camunda EE licence as a Camunda Partner).
- Which concrete C7 artifacts do your community extensions depend on? Do they assume C7 uses specific third-party library versions?
We have several extensions (around a dozen) and they depend on different parts of Camunda artefacts. Let me group them together in a following way:
- extensions for process applications and improved support: depend directly on
camunda-engine
, camunda-spring
(mostly using camunda-spring-boot-starter-xxx
), camunda-commons-typed-values
and camunda-xxxx-model
.
- extensions for testing:
camunda-engine
, camunda-bpm-assert
- for integration testing of remote C7 we are using docker images of camunda.
- Do your community extensions bundle C7 artifacts?
No, we never bundle camunda artefacts. Even in Maven dependencies we try to use provided scope
as much as possible.
We are aware of the fact, that in case of a incompatible change (introduced by EE or by the ecosystem) our examples inside of extension will loose their applicability for CE customers. This is fully accepted from our side - we want to provide support for our EE customers during the LTS support of Camunda 7 only. If something gets incompatible we will flag this fact in the extension by marking it “incompatible to 7.24”.
These extensions can continue to reside in the Community Hub, with you as maintainers. We don’t plan to archive any C7 Community Extensions or Community Hub repositories.
These are good news. I think we will still migrate them back to have a standard approach and reduce work on our side (Spring Boot upgrade once instead of currently about 12 times…). One of the extensions (camunda-test-coverage
) will probably be split into two parts (c7 and c8), and c8 will remain on hub until CPT supports coverage measuring out of the box (and then will be archived).
Mockito is very close to Camunda 7 Engine, is heavily used in customer projects and would benefit from the common abstraction (sharing data objects with e.g. camunda-bpm-jgiven
and some others) and the Camunda 7 REST Client Spring Boot
and Custom Batch
would be the last left on the hub then - so it is easier for us to bundle all together and consolidate in holunda-io.
There is another one (migration: fluent migration contributed by our guys which will be either archived or transferred to holunda-io too. I don’t think someone is using it at all…
We still have time to prepare all this and would slowly migrate the artefacts including relocation notices both in Maven Central and the release notes / repositories infos…
So still curious if we can arrange a read access for particular repository (GH org holunda-io managed and owned by Holisticon AG) to the EE JAR artefacts and EE docker images…
By the way - I checked for all C7 extension on Hub. Excluding the ones I would move there will remain the following:
- keycloak (live)
- mail (live)
- micronaut (live)
- camel (zombie)
- grpc-external-task (PoC from Camunda team)
- graphql (zombie)
- osgi (zombie)
Hope my answers help you.
Cheers,
Simon