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

Future of types after mxgraph EOL announcement #12

Open
tbouffard opened this issue Nov 16, 2020 · 12 comments
Open

Future of types after mxgraph EOL announcement #12

tbouffard opened this issue Nov 16, 2020 · 12 comments

Comments

@tbouffard
Copy link
Member

tbouffard commented Nov 16, 2020

mxgraph has been announced as End Of Life on 2020-11-09, the mxgraph repository is now archived, the former development repository (mxgraph2) is no more available.
There are some attempts to make mxgraph still alive, see https://github.com/jsGraph/mxgraph and maxGraph/maxGraph#1

Maintaining the mxgraph types makes only sense if mxgraph is maintained. So let's have a look at community initiatives and see how we can help keeping mxgraph alive.

@hungtcs
Copy link
Member

hungtcs commented Nov 16, 2020

What a pity, up to now, mxgraph does not have a qualified substitute, I sincerely hope that mxgraph can stay active. I don't know what the official plan of jgraph is, it looks like draw.io is still active. My expectation for the future of mxgraph is:

  • refactor using typescript (help code robust and clear type)
  • support es module and tree shakable
  • remove redundant utils (mxUtils) replace with native functions(eg. forEach, map)
  • better documentation site and demos
  • drop java and dotnet (reduce weight, I don’t know how many people are using these features)

@tbouffard
Copy link
Member Author

@hungtcs I have recently discussed with some potential contributors, and there is some pending works under discussion (maxGraph/maxGraph#8) to implement various stuffs you expected for the future of mxGraph (some are already in the development branch):

I am closely in contact with the people willing to resurrect mxGraph, so I will push a lot for TypeScript support and the reuse of most of the work we have done in typed-mxgraph (an in its mxgraph-type-definitions father) with a target of archiving it afterwards.

@josiahhaswell
Copy link

Hey folks. We rely pretty heavily on mxGraph and forked the project over at https://github.com/aire-ux/mxgraph. We're planning on at least implementing bug-fixes and modernization efforts (we've already implemented support for shadowDOM). I had to fork this project to make it compatible with the new module-name.

I'm not really sure how this should look going forward. I really appreciate the work you folks have done so if you'd like to contribute over there I'd love to have you and would be happy to adopt whatever project conventions and rules people would like to see.

@tbouffard
Copy link
Member Author

@josiahhaswell as I already mentioned in maxGraph/maxGraph#1 (comment), I don't think having a new mxgraph fork in parallel to maxgraph is a good idea for the future.

About typed-mxgraph, having a new fork will also let us go back to a previous situation where individuals or company tried to maintain their own version of mxgraph types. I wrote about these issues a few months ago, see mxGraph Usage in TypeScript Projects.

But if we all agree that aire-ux/mxgraph is a transitional package not implementing big changes except bug fixes until maxgraph become more mature, we can probably make typed-mxgraph targets aire-ux/mxgraph and release a 2.x version baseline. That way we will be able to apply changes in both old mxgraph and aire-ux/mxgraph types (with branch merge for instance) and have a central place for all mxgraph types effort (no need for aire-ux/typed-mxgraph).
What do you thing about this proposal?

@josiahhaswell
Copy link

@tbouffard My biggest concern is that there are thousands of projects and developers who depend on both the structure and the implementation of the existing mxGraph, which is largely complete, well-supported, and bug-free. A huge and limiting issue with this plan is that developers are left without a functioning and maintained fork now and have been for over a year. Rewrites are well-and-good, but this is a beautifully-implemented and valuable project in its current incarnation and it's not guaranteed that a replacement will meet, much less exceed its proven value.

I would argue that creating wrappers over the existing functionality and gradually refactoring as opportunities present is going to be a more sustainable (and very importantly, safer) alternative to a direct rewrite. Sure, the codebase is a product of its time, but it is stable, documented, and well-understood, and from my perspectives those are the most valuable aspects of it.

PS: I'm integrating @aire-ux/typed-mxgraph with @aire-ux/mxgraph--the typings will be available upon installation

@josiahhaswell
Copy link

FYI folks--I've taken the liberty of integrating typed-mxgraph with @aire-ux/typed-mxgraph and this is available as of @aire-ux/mxgraph 4.2.6: https://www.npmjs.com/package/@aire-ux/mxgraph

@tbouffard
Copy link
Member Author

@josiahhaswell sorry for the late answer and thanks for your answers here and in the maxGraph which clarify your point.
I let the debate continue in maxGraph/maxGraph#1. As suggested there, I am pretty sure there is a place for both a new maxGraph and continuing mxGraph.

@cereschen
Copy link

Will the update continue?

@tbouffard
Copy link
Member Author

Will the update continue?

Can you be more specific please?
Are you asking if this repository (typed-mxgraph/typed-mxgraph) will be updated? The answer is yes if we get bug reports and Pull Requests.

Or are you asking about something else?

@cereschen
Copy link

Will the update continue?

Can you be more specific please? Are you asking if this repository (typed-mxgraph/typed-mxgraph) will be updated? The answer is yes if we get bug reports and Pull Requests.

Or are you asking about something else?

I found some inaccurate types, and luckily I've found a way to override them

@tbouffard
Copy link
Member Author

@cereschen if you find issues in types, please open an issue or pull request, we will review it and integrate if accurate.

@tbouffard
Copy link
Member Author

The first release of maxGraph, the mxGraph successor, was released earlier today. It is far for being complete but this is the first step.
More details in the release announce: maxGraph/maxGraph#147

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants