-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
making consitent config imports from diagramAPI #4889
making consitent config imports from diagramAPI #4889
Conversation
✅ Deploy Preview for mermaid-js ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## develop #4889 +/- ##
===========================================
- Coverage 79.97% 79.40% -0.57%
===========================================
Files 164 164
Lines 13623 13815 +192
Branches 693 693
===========================================
+ Hits 10895 10970 +75
- Misses 2579 2696 +117
Partials 149 149
Flags with carried forward coverage won't be shown. Click here to find out more.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
Weird how changing the import fixes it. I wonder if updating Vite would help, since we're currently on version 4.3.9, which is a couple of months old:
Lines 178 to 180 in 1d9ce74
vite: | |
specifier: ^4.3.9 | |
version: 4.3.9(@types/node@18.16.0) |
By the way, once this gets merged (we can do this in another PR), do you think it makes sense to add an ESLint no-restricted-imports
rule like the following so that this doesn't happen again:
"no-restricted-imports": ["error", {
"patterns": [{
"group": ["*/config.js"],
"message": "Please import config functions from diagram-api/diagramAPI.js instead, see https://github.com/mermaid-js/mermaid/pull/4889."
}]
}]
42cea82
to
846fb3f
Compare
I had some problems resolving merge requests, but now everything should be fine. @aloisklink I tried the latest vite version, but this did not work. |
Drat, oh well, your PR also seems to work too. Normally I'd leave this PR open for another review, but since this PR has been open for a while, and you've changed a lot of files (which might cause merge conflicts if we leave it open), I'll merge this now! Thanks for the fix.
Hmmmm, it's probably easier to have it run on all files. Then for we could add a comment like
But that's something we can do in another PR! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [mermaid](https://togithub.com/mermaid-js/mermaid) | [`10.5.1` -> `10.6.0`](https://renovatebot.com/diffs/npm/mermaid/10.5.1/10.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/mermaid/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/mermaid/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/mermaid/10.5.1/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/mermaid/10.5.1/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mermaid-js/mermaid (mermaid)</summary> ### [`v10.6.0`](https://togithub.com/mermaid-js/mermaid/releases/tag/v10.6.0): 10.6.0 [Compare Source](https://togithub.com/mermaid-js/mermaid/compare/v10.5.1...v10.6.0) #### What's Changed - Add new chart xychart by [@​subhash-halder](https://togithub.com/subhash-halder) in [https://github.com/mermaid-js/mermaid/pull/4413](https://togithub.com/mermaid-js/mermaid/pull/4413) #### Fix - bug/4849\_center_axis_labels by [@​dreathed](https://togithub.com/dreathed) in [https://github.com/mermaid-js/mermaid/pull/4860](https://togithub.com/mermaid-js/mermaid/pull/4860) - Better handling of large flowcharts and long edges [@​knsv](https://togithub.com/knsv) #### Docs - Add new Atlassian integrations by [@​janjonas](https://togithub.com/janjonas) in [https://github.com/mermaid-js/mermaid/pull/4862](https://togithub.com/mermaid-js/mermaid/pull/4862) - docs: fix typo by [@​dennis0324](https://togithub.com/dennis0324) in [https://github.com/mermaid-js/mermaid/pull/4887](https://togithub.com/mermaid-js/mermaid/pull/4887) - Update notes on orientation in GitGraph documentation by [@​guypursey](https://togithub.com/guypursey) in [https://github.com/mermaid-js/mermaid/pull/4897](https://togithub.com/mermaid-js/mermaid/pull/4897) - Enhancment: twitter logo in doc by [@​chaursiyasanjeet](https://togithub.com/chaursiyasanjeet) in [https://github.com/mermaid-js/mermaid/pull/4925](https://togithub.com/mermaid-js/mermaid/pull/4925) - Update link for the Mermaid integration in JetBrains IDEs by [@​FirstTimeInForever](https://togithub.com/FirstTimeInForever) in [https://github.com/mermaid-js/mermaid/pull/4883](https://togithub.com/mermaid-js/mermaid/pull/4883) #### Chores - Wait for `marker_unique_id.html` E2E test to render before taking a screenshot by [@​aloi](https://togithub.com/aloi) sklink[https://github.com/mermaid-js/mermaid/pull/4847](https://togithub.com/mermaid-js/mermaid/pull/4847)4847 - Wait for `theme-directives.html` E2E test to render before taking a screenshot by [@​aloisklink](https://togithub.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/4846](https://togithub.com/mermaid-js/mermaid/pull/4846) - chore(deps): update all patch dependencies (patch) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4851](https://togithub.com/mermaid-js/mermaid/pull/4851) - chore(dev-deps): update `@typescript-eslint/*` plugins to v6 (major) by [@​aloisklink](https://togithub.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/4857](https://togithub.com/mermaid-js/mermaid/pull/4857) - chore: shorten `flow-huge.spec.js` test case using `.repeat` by [@​Yokozuna59](https://togithub.com/Yokozuna59) in [https://github.com/mermaid-js/mermaid/pull/4859](https://togithub.com/mermaid-js/mermaid/pull/4859) - Publish Live Editor previews for the `develop` & `next` branches by [@​sidharthv96](https://togithub.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/4841](https://togithub.com/mermaid-js/mermaid/pull/4841) - chore(deps): update all minor dependencies (minor) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4870](https://togithub.com/mermaid-js/mermaid/pull/4870) - chore(deps): update all patch dependencies (patch) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4869](https://togithub.com/mermaid-js/mermaid/pull/4869) - Commented out broken test by [@​nirname](https://togithub.com/nirname) in [https://github.com/mermaid-js/mermaid/pull/4913](https://togithub.com/mermaid-js/mermaid/pull/4913) - chore(deps): update all patch dependencies (patch) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4891](https://togithub.com/mermaid-js/mermaid/pull/4891) - fix(class): avoid duplicate definition of fill by [@​Mister-Hope](https://togithub.com/Mister-Hope) in [https://github.com/mermaid-js/mermaid/pull/4929](https://togithub.com/mermaid-js/mermaid/pull/4929) - chore(deps): update all minor dependencies (minor) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4892](https://togithub.com/mermaid-js/mermaid/pull/4892) - making consitent config imports from diagramAPI by [@​dreathed](https://togithub.com/dreathed) in [https://github.com/mermaid-js/mermaid/pull/4889](https://togithub.com/mermaid-js/mermaid/pull/4889) - fix(typos): Fix minor typos in the source code by [@​mribeirodantas](https://togithub.com/mribeirodantas) in [https://github.com/mermaid-js/mermaid/pull/4928](https://togithub.com/mermaid-js/mermaid/pull/4928) - chore(deps): update all patch dependencies (patch) by [@​renovate](https://togithub.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/4945](https://togithub.com/mermaid-js/mermaid/pull/4945) - Bump [@​babel/traverse](https://togithub.com/babel/traverse) from 7.22.10 to 7.23.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/4951](https://togithub.com/mermaid-js/mermaid/pull/4951) - Replace rehype-mermaidjs with rehype-mermaid by [@​remcohaszing](https://togithub.com/remcohaszing) in [https://github.com/mermaid-js/mermaid/pull/4970](https://togithub.com/mermaid-js/mermaid/pull/4970) #### New Contributors - [@​dreathed](https://togithub.com/dreathed) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4860](https://togithub.com/mermaid-js/mermaid/pull/4860) - [@​janjonas](https://togithub.com/janjonas) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4862](https://togithub.com/mermaid-js/mermaid/pull/4862) - [@​dennis0324](https://togithub.com/dennis0324) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4887](https://togithub.com/mermaid-js/mermaid/pull/4887) - [@​FirstTimeInForever](https://togithub.com/FirstTimeInForever) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4883](https://togithub.com/mermaid-js/mermaid/pull/4883) - [@​guypursey](https://togithub.com/guypursey) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4897](https://togithub.com/mermaid-js/mermaid/pull/4897) - [@​chaursiyasanjeet](https://togithub.com/chaursiyasanjeet) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4925](https://togithub.com/mermaid-js/mermaid/pull/4925) - [@​mribeirodantas](https://togithub.com/mribeirodantas) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/4928](https://togithub.com/mermaid-js/mermaid/pull/4928) **Full Changelog**: mermaid-js/mermaid@v10.5.1...v10.6.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/levaintech/contented). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
📑 Summary
A very important issue, since the local dev / test environment does not necessarily reflect production env when config is involved!
This PR changes all imports of config.js in the diagrams and the dagre-wrapper folder to importing the same functions (getConfig etc.) from diagramAPI. DiagramAPI is set to import the getConfig, setConfig etc. functions from config and exports them again.
Honestly I am not sure why it solves the issue but it does. Probably it has something to do with module resolution...
I could not verify @aloisklink 's reasons for this bug given here.
As far as I can see this only effects the local test build and local e2e tests. I assume the bundling for production is done a bit differently?
This PR helps to sync production - as seen in mermaidLive - and local dev testing.
In production (as in mermaidLive) this is not an issue (see below), I assume the bundling is done differently than for local testing.
Resolves #4345
📏 Design Decisions
Importing from a kind of proxi file (diagramAPI) instead of directy from config.js in directories dagre-wrapper and diagrams.
📋 Tasks
Make sure you
MERMAID_RELEASE_VERSION
is used for all new features.develop
branchAdditional Information
I ran into this issue while working on something else, trying to inject a configuration object into the createText function. I was super confused, because somehow I could not get it to work until I found out that getConfig returns sometimes the global config and sometimes a newly initialized defaultConfig. This depends on where getConfig is called from.
I also mentioned that there are failing local e2e tests on the unchanged develop branch. This PR solves this too.
To see that there is some reinitialization going on, just put a console.log in the global scope of config.ts. Run dev server and see the console of your test page: Your message gets logged twice! Once from mermaid and once from config (see the files in the browser of this issues description)
The problem can also be recreated by changing the flowchart.htmlLabels config in your local copy of dev/example.html:
see the car icon in the bottom right
leads to the local output:
While in the liveEditor the config:
leads to this correct output:
After the changes of the PR the local test file looks like it should:
After the PR we get a funny diagram-API file from the transpiler:
The imports of getConfig are still sometimes from diagramAPI and somtimes from mermaid, but since the config is not reset it works.
This solution does not seem very elegant, but it solves the issue...