Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INFRA] Evaluate the Replacement of mxGraph with a New Library #3237

Open
tbouffard opened this issue Jan 8, 2025 · 0 comments
Open

[INFRA] Evaluate the Replacement of mxGraph with a New Library #3237

tbouffard opened this issue Jan 8, 2025 · 0 comments
Labels
mxgraph integration Something involving mxGraph (be aware of EOL)
Milestone

Comments

@tbouffard
Copy link
Member

tbouffard commented Jan 8, 2025

Overview

The bpmn-visualization project currently relies on mxGraph 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 replace mxGraph 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:

  • maxGraph: A fork of mxGraph with a similar API and context.
  • G6: A graph visualization library with rich features.
  • Two.js: https://two.js.org/
  • Logic Flow: A library with BPMN support. Documentation available at Logic Flow BPMN Extension
@tbouffard tbouffard added the mxgraph integration Something involving mxGraph (be aware of EOL) label Jan 8, 2025
@tbouffard tbouffard added this to the 0.46.0 milestone Jan 8, 2025
@tbouffard tbouffard changed the title [INFRA] Evaluate the Replacement of mxGraph with a New Library [INFRA] Evaluate the Replacement of mxGraph with a New Library Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mxgraph integration Something involving mxGraph (be aware of EOL)
Projects
None yet
Development

No branches or pull requests

1 participant