[INFRA] Evaluate the Replacement of mxGraph
with a New Library
#3237
Labels
mxgraph integration
Something involving mxGraph (be aware of EOL)
Milestone
Overview
The
bpmn-visualization
project currently relies onmxGraph
for rendering. However,mxGraph
was declared end-of-life on November 9, 2020 (see the mxGraph End-of-Life Announcement). To ensure the project's sustainability and maintainability, it is crucial to replacemxGraph
with a new library.Criteria for Selection
Organizational Requirements
Open Source License: The library should have a permissive license, such as Apache 2.0 or MIT, to ensure no restrictions on the commercial or free software usage of
bpmn-visualization
.Community-Driven Development: The library must not be controlled by a single entity that could discontinue it unexpectedly.
Active Maintenance: Ideally, the library should have multiple maintainers. If there is only one maintainer, the Process Analytics and/or Bonitasoft teams should be able to contribute to its development.
Ease of Contribution: It should be straightforward to contribute fixes or improvements. Pull requests should be welcomed and merged in a timely manner, indicating an open and active contribution process.
Broad Community Base: The library should have a large and active community of users and contributors, fostering diverse perspectives and reducing reliance on a small core team. While GitHub stars may indicate popularity, they are not always a reliable metric for assessing community engagement.
Technical Requirements
Native TypeScript Support: The library should natively support TypeScript to align with modern development practices.
ES6 Module Support: Compatibility with ES6 modules for a streamlined integration with modern JavaScript environments.
Internal Model Support: The library should have an internal model built on top of its drawing capabilities to simplify customization and interaction management.
Quality and Testability: High-quality code with a focus on testability, making it easier for contributors to add features or fix issues effectively.
Lightweight with Tree Shaking Support: The library should be as small as possible and support tree shaking to remove unused code. If tree shaking is not supported, it should be on the library's development roadmap. Libraries often include editing features that are unnecessary for
bpmn-visualization
; these features should be easily removable.Feature Parity: The library must provide at least the same features as
mxGraph
to avoid regressions in functionality.Extensibility: The library should be as extensible as
mxGraph
, enabling future enhancements and customizations.Potential Candidates
Below is a non-exhaustive list of potential libraries to evaluate. Detailed analyses will be carried out in dedicated sub-issues:
mxGraph
with a similar API and context.The text was updated successfully, but these errors were encountered: