Fortran-FOSS-Programmers / ford

Automatically generates FORtran Documentation from comments within the code.
https://forddocs.readthedocs.io
GNU General Public License v3.0
402 stars 131 forks source link

"external" links broken? #617

Closed jacobwilliams closed 5 months ago

jacobwilliams commented 6 months ago

I'm trying to understand how the "external" thing works (which I only just discovered!)

Running ford on the two projects in the external_project example, I don't get any errors, but the link for the remote objects are not clickable in the dependency diagram:

Screenshot 2024-01-23 at 12 30 03 PM

Should they be?

haraldkl commented 6 months ago

Yes they should. See for example the treelm docu, it has a node pointing to the aotus_module, which is external to that project. load_tem has a link to aot_get_val, which is external to the treelm project.

That documentation was generated with FORD in version 6.1.17.

haraldkl commented 6 months ago
Traceback (most recent call last):
  File "/FORD/6.2.0/usr/local/bin/ford", line 8, in <module>
    sys.exit(run())
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/__init__.py", line 646, in run
    main(proj_data, proj_docs, md)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/__init__.py", line 630, in main
    docs = ford.output.Documentation(proj_data, proj_docs_, project, page_tree)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/output.py", line 158, in __init__
    self.graphs.register(item)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/graphs.py", line 1255, in register
    self.data.register(obj)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/graphs.py", line 194, in register
    collection[obj] = NodeType(obj, self, hist)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/graphs.py", line 372, in __init__
    node = gd.get_node(proto, newdict(hist, obj, self))
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/graphs.py", line 212, in get_node
    collection, _ = self._get_collection_and_node_type(obj)
  File "/FORD/6.2.0/usr/local/lib/python3.8/dist-packages/ford/graphs.py", line 172, in _get_collection_and_node_type
    raise BadType(
ford.graphs.BadType: "Unrecognised object type 'str' when constructing graphs"

I think that error was fixed in #488 + #494, though somehow it replaces the urls now and instead assumes the links to be internal. The treelm project is affected by #501, so FORD 6.2.1-6.2.3 run into the reported KeyError. In version 6.2.4 the URL linking to the external project documentation is gone.

ZedThree commented 6 months ago

Oh yes, this should definitely work! I'm afraid it will be a week or two before I can look at this, but it's on my radar