Visualizing Fortran Projects with fpm: Create Stunning Module Dependency Charts

When I generate the JSON for a project with an application, the application dependencies all show the version of the project. So the dependencies look correct in the module dependency listing but it shows them all having version “10.0” (the version of the application) in the “packages” section in, for example the following project:

prep.json
{"package-name": "prep","compiler": {"id": 1,"fc": "gfortran","cc": "gcc","cxx": "g++","echo": false,"verbose": false},"archiver": {"ar": "ar -rs ","use-response-file": false,"echo": false,"verbose": false},"fortran-flags": " -Wall -Wextra -fPIC -fmax-errors=1 -g -fcheck=bounds -fcheck=array-temps -fbacktrace -fcoarray=single -fPIC","c-flags": "","cxx-flags": "","link-flags": "","build-prefix": "build/gfortran","include-dirs": [],"link-libraries": [],"external-modules": ["ifport","dfport"],"include-tests": false,"module-naming": false,"deps": {"unit": 6,"verbosity": 1,"dep-dir": "build/dependencies","cache": "build/cache.toml","ndep": 8,"dependencies": {"prep": {"name": "prep","path": ".","version": "10.0.0","proj-dir": "./.","done": true,"update": false,"cached": false,"package-dep": ["M_CLI2","M_io","M_strings","M_list","M_history","M_match","M_attr"]},"M_CLI2": {"name": "M_CLI2","git": {"descriptor": "revision","url": "https://github.com/urbanjost/M_CLI2.git","object": "8bcaa128543a864c9a6f7a1a90140063cb4c6a9a"},"version": "3.2.0","proj-dir": "build/dependencies/M_CLI2","revision": "8bcaa128543a864c9a6f7a1a90140063cb4c6a9a","done": true,"update": false,"cached": false,"package-dep": []},"M_io": {"name": "M_io","git": {"descriptor": "revision","url": "https://github.com/urbanjost/M_io.git","object": "6016310be982e63244b49ebe407cae063bdf0b0c"},"version": "0.1.0","proj-dir": "build/dependencies/M_io","revision": "6016310be982e63244b49ebe407cae063bdf0b0c","done": true,"update": false,"cached": false,"package-dep": []},"M_strings": {"name": "M_strings","git": {"descriptor": "revision","url": "https://github.com/urbanjost/M_strings.git","object": "f4d8d0d5501c6e38cc1e13847d7465f32e450ec4"},"version": "2.0.0","proj-dir": "build/dependencies/M_strings","revision": "f4d8d0d5501c6e38cc1e13847d7465f32e450ec4","done": true,"update": false,"cached": false,"package-dep": []},"M_list": {"name": "M_list","git": {"descriptor": "revision","url": "https://github.com/urbanjost/M_list.git","object": "9518e2f6c78fa0d7a93023cd3e3e415c87f66b99"},"version": "0.1.0","proj-dir": "build/dependencies/M_list","revision": "9518e2f6c78fa0d7a93023cd3e3e415c87f66b99","done": true,"update": false,"cached": false,"package-dep": []},"M_history": {"name": "M_history","git": {"descriptor": "revision","url": "https://github.com/urbanjost/M_history.git","object": "b4957ee7294d9d35a4db7d4c4232664a0c23b7ae"},"version": "1.0.0","proj-dir": "build/dependencies/M_history","revision": "b4957ee7294d9d35a4db7d4c4232664a0c23b7ae","done": true,"update": false,"cached": false,"package-dep": "M_strings"},"M_match": {"name": "M_match","git": {"descriptor": "default","url": "https://github.com/urbanjost/M_match.git"},"version": "0.1.0","proj-dir": "build/dependencies/M_match","revision": "cb6c7b4fe04ba5b12fe969c72cc443c4b462a429","done": true,"update": false,"cached": false,"package-dep": []},"M_attr": {"name": "M_attr","git": {"descriptor": "default","url": "https://github.com/urbanjost/M_attr.git"},"version": "1.1.3","proj-dir": "build/dependencies/M_attr","revision": "6446990a4aacf56f31476e05fdf8785abe389941","done": true,"update": false,"cached": false,"package-dep": []}}},"packages": {"prep": {"name": "prep","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "././src/M_expr.f90","digest": 9079910666963191706,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_expr","parent-modules": [],"modules-used": ["m_strings","m_list"],"include-dependencies": [],"link-libraries": []},"src_2": {"file-name": "app/prep.f90","exe-name": "prep","digest": 6816355690338427700,"unit-scope": "FPM_SCOPE_APP","unit-type": "FPM_UNIT_PROGRAM","modules-provided": "prep__internal","parent-modules": [],"modules-used": ["m_io","m_cli2","m_strings","m_strings","m_list","m_expr","m_match","m_match","m_attr","m_cli2","m_strings","m_io","m_attr","prep__internal"],"include-dependencies": [],"link-libraries": []},"src_3": {"file-name": "example/rundemos.f90","exe-name": "rundemos","digest": 5710589156200657371,"unit-scope": "FPM_SCOPE_EXAMPLE","unit-type": "FPM_UNIT_PROGRAM","modules-provided": [],"parent-modules": [],"modules-used": "m_io","include-dependencies": [],"link-libraries": []},"src_4": {"file-name": "example/tester.f90","exe-name": "tester","digest": -6195101102750800957,"unit-scope": "FPM_SCOPE_EXAMPLE","unit-type": "FPM_UNIT_PROGRAM","modules-provided": [],"parent-modules": [],"modules-used": ["m_history","m_expr"],"include-dependencies": [],"link-libraries": []},"src_5": {"file-name": "test/test_prep.f90","exe-name": "test_prep","digest": 1347894846610260569,"unit-scope": "FPM_SCOPE_TEST","unit-type": "FPM_UNIT_PROGRAM","modules-provided": [],"parent-modules": [],"modules-used": ["m_io","m_strings"],"include-dependencies": [],"link-libraries": []}}},"M_CLI2": {"name": "M_CLI2","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_CLI2/src/M_CLI2.F90","digest": 4536481841380779445,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_cli2","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}},"M_io": {"name": "M_io","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_io/src/M_io.F90","digest": 5565703977455328866,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_io","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}},"M_strings": {"name": "M_strings","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_strings/src/M_strings.F90","digest": -3264617332331618976,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_strings","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []},"src_2": {"file-name": "build/dependencies/M_strings/src/M_strings_oop.f90","digest": -6712179978652875538,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_strings_oop","parent-modules": [],"modules-used": ["m_strings","m_strings","m_strings","m_strings","m_strings","m_strings","m_strings"],"include-dependencies": [],"link-libraries": []}}},"M_list": {"name": "M_list","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_list/src/M_list.f90","digest": -4945545611491799567,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_list","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}},"M_history": {"name": "M_history","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_history/src/M_history.f90","digest": -7124903223066487145,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_history","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}},"M_match": {"name": "M_match","version": "10.0.0","module-naming": false,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_match/src/M_match.f90","digest": 1700603805762013126,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_match","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}},"M_attr": {"name": "M_attr","version": "10.0.0","module-naming": true,"preprocess": {},"fortran": {"implicit-typing": false,"implicit-external": false,"source-form": "free"},"sources": {"src_1": {"file-name": "build/dependencies/M_attr/src/M_attr.f90","digest": 6511427470723894961,"unit-scope": "FPM_SCOPE_LIB","unit-type": "FPM_UNIT_MODULE","modules-provided": "m_attr","parent-modules": [],"modules-used": [],"include-dependencies": [],"link-libraries": []}}}}}