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

convert dot files' relative path to absolute #821

Merged
merged 2 commits into from
Mar 3, 2022
Merged

convert dot files' relative path to absolute #821

merged 2 commits into from
Mar 3, 2022

Conversation

2bndy5
Copy link
Contributor

@2bndy5 2bndy5 commented Mar 1, 2022

This PR will resolve #818

Add generated examples/specific/dot_graphs/xml/dotfile.dot to gitignore since doxygen 1.9.3 now copies the dotfile(s) to XML_OUTPUT

Considering the path to conf.py, make a dot file's relative path absolute using the project's XML_OUTPUT.

Notes

This PR's CI is still using Doxygen v1.8.17 (which uses absolute paths for dot files), but I have locally tested these changes using Doxygen v1.9.3 (which introduced using relative paths for dot files). Therefore, backward compatibility is preserved.

@2bndy5 2bndy5 changed the title convert relative path to absolute convert dot files' relative path to absolute Mar 1, 2022
# use self.project_info.project_path as the XML_OUTPUT path,
# and make it absolute with consideration to the conf.py path
dot_file_path = os.path.abspath(
self.app.confdir + os.sep + self.project_info.project_path() + dot_file_path
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it any more preferable to use os.path.join here? I'm guessing not but I'm not sure why :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK. I didn't try it. I was more concerned with concatenating relative paths.

  • app.confdir is an absolute path.
  • project_info.project_path() might be absolute or relative. This may differ depending on how users configure breathe_projects.
  • dot_file_path is clearly compensated for absolute or relative paths (the point of this PR).

After giving this more thought, I should probably add a conditional statement for if project_path() yields an absolute path.

Copy link
Contributor Author

@2bndy5 2bndy5 Mar 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also didn't check if project_path() automatically ensures there is a trailing path delimiter (os.sep).

Copy link
Contributor Author

@2bndy5 2bndy5 Mar 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the docs, I think os.path.abspath() might be a better solution for cross-platform compatibility. os.path.join() seems to have a different tactic when encountering absolute paths (specifically noted for Windows).

Additionally, os.path.abspath() will reduce multiple consecutive path delimiters (//) into 1 path delimiter (/). So, there's no need to check if project_path() has a trailing path delimiter when using os.path.abspath().

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated this to more intuitively handle user input in project_path().

Copy link
Collaborator

@michaeljones michaeljones left a 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. Though happy to learn about the path thing.

2bndy5 added 2 commits March 2, 2022 11:39
Add generated dotfile.dot to gitignore since doxygen 1.9.3 copies the dotfile(s) to XML_OUTPUT

Considering the path to conf.py, make a dot file's relative path absolute using the project's XML_OUTPUT.
Use users' input as root path component if breathe_projects (in conf.py) specifies an absolute path for the project's XML_OUTPUT (not recommended for hosting from a web server).

Otherwise, concatenate the path to conf.py with subsequent relative paths to the dot file (resulting in a clean absolute path).
@vermeeren
Copy link
Collaborator

@2bndy5 Is this considered ready for merging? Seems fine to me also.

@2bndy5
Copy link
Contributor Author

2bndy5 commented Mar 3, 2022

Yeah, I can't foresee any other points of error.

@vermeeren vermeeren self-assigned this Mar 3, 2022
michaeljones pushed a commit that referenced this pull request Mar 3, 2022
@michaeljones michaeljones merged commit 5b568ab into breathe-doc:master Mar 3, 2022
@2bndy5 2bndy5 deleted the support-relative-path-to-dotfile branch March 3, 2022 16:13
@2bndy5 2bndy5 mentioned this pull request Mar 6, 2022
github-actions bot added a commit to Diapolo10/lidar-projekti that referenced this pull request Mar 1, 2023
Bumps [breathe](https://github.com/michaeljones/breathe) from 4.34.0 to
4.35.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/breathe-doc/breathe/blob/main/CHANGELOG.rst">breathe's
changelog</a>.</em></p>
<blockquote>
<h2>Change Log</h2>
<p>Inspired by <code>Keepachangelog.com
&lt;http://keepachangelog.com/&gt;</code>__.</p>
<ul>
<li>
<p>2023-02-28 - <strong>Breathe v4.35.0</strong></p>
<ul>
<li>Pull lone literal blocks in paragraphs up to produce correct
doctree.
<code>[#833](breathe-doc/breathe#833)
&lt;https://github.com/michaeljones/breathe/pull/833&gt;</code>__</li>
<li>Fix tests for changes in Sphinx 5.3.
<code>[#865](breathe-doc/breathe#865)
&lt;https://github.com/breathe-doc/breathe/pull/865&gt;</code>__</li>
<li>Bump Python requirement to 3.7.
<code>[#866](breathe-doc/breathe#866)
&lt;https://github.com/breathe-doc/breathe/pull/866&gt;</code>__</li>
<li>Support Sphinx 6.
<code>[#885](breathe-doc/breathe#885)
&lt;https://github.com/breathe-doc/breathe/pull/885&gt;</code>__</li>
<li>Support <code>:sort:</code> option to sort sections by name.
<code>[#879](breathe-doc/breathe#879)
&lt;https://github.com/breathe-doc/breathe/pull/879&gt;</code>__</li>
</ul>
</li>
<li>
<p>2022-06-20 - <strong>Breathe v4.34.0</strong></p>
<ul>
<li>Treat .unparsed as plain text.
<code>[#806](breathe-doc/breathe#806)
&lt;https://github.com/michaeljones/breathe/pull/806&gt;</code>__</li>
<li>Remove unneeded type: ignore annotations.
<code>[#813](breathe-doc/breathe#813)
&lt;https://github.com/michaeljones/breathe/pull/813&gt;</code>__</li>
<li>Fix internal <code>NodeFinder</code> visitor for when non-Docutils
nodes are
present in the content of a directive.
<code>[#812](breathe-doc/breathe#812)
&lt;https://github.com/michaeljones/breathe/pull/812&gt;</code>__</li>
<li>Rename lint workflow.
<code>[#814](breathe-doc/breathe#814)
&lt;https://github.com/michaeljones/breathe/pull/814&gt;</code>__</li>
<li>Type check pygments and limit docutils stub version.
<code>[#819](breathe-doc/breathe#819)
&lt;https://github.com/michaeljones/breathe/pull/819&gt;</code>__</li>
<li>Convert dot files' relative path to absolute.
<code>[#821](breathe-doc/breathe#821)
&lt;https://github.com/michaeljones/breathe/pull/821&gt;</code>__</li>
<li>CI, update Sphinx versions to test.
<code>[#834](breathe-doc/breathe#834)
&lt;https://github.com/michaeljones/breathe/pull/834&gt;</code>__</li>
<li>CI, update for Sphinx 5.0.1.
<code>[#846](breathe-doc/breathe#846)
&lt;https://github.com/michaeljones/breathe/pull/846&gt;</code>__</li>
<li>Fix inconsistency in example.
<code>[#843](breathe-doc/breathe#843)
&lt;https://github.com/michaeljones/breathe/pull/843&gt;</code>__</li>
<li>Fix C# enum rendering crash.
<code>[#849](breathe-doc/breathe#849)
&lt;https://github.com/michaeljones/breathe/pull/849&gt;</code>__</li>
<li>Drop Sphinx 3 support, add Sphinx 5 support.
<code>[#850](breathe-doc/breathe#850)
&lt;https://github.com/michaeljones/breathe/pull/850&gt;</code>__</li>
<li>CICD: Disable python 3.6 for Sphinx master tests.
<code>[#853](breathe-doc/breathe#853)
&lt;https://github.com/michaeljones/breathe/pull/853&gt;</code>__</li>
<li>Populate default include text-node's data field instead of
raw-source.
<code>[#828](breathe-doc/breathe#828)
&lt;https://github.com/michaeljones/breathe/pull/828&gt;</code>__</li>
</ul>
</li>
<li>
<p>2022-02-14 - <strong>Breathe v4.33.1</strong></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/breathe-doc/breathe/commit/4e9f55eadc91d96ac155a24c3634359b511a82cd"><code>4e9f55e</code></a>
version: release v4.35.0</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/b4564e9b7f654cc23907f4e346ed79f1447a9cba"><code>b4564e9</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/michaeljones/breathe/issues/885">#885</a>
from breathe-doc/sphinx-6</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/42585399bf666b0c673b222291c4886700ec283e"><code>4258539</code></a>
Remove &lt;7 constraint from setup.py</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/86298ccf2fd8ead0867a2ac74ac894a9ef25bb67"><code>86298cc</code></a>
Remove &lt;7 constraint from requirement file</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/81a92d8ea06fe4dd43cea85282b1ad092e58c3c4"><code>81a92d8</code></a>
Update changelog with latest changes</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/687a3278e894b461df3ea00d6c6b2da140757728"><code>687a327</code></a>
Adjust constraint in production requirements.txt</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/00b29e83541c2f4b16b1c0bd4d1abfb0c2a31834"><code>00b29e8</code></a>
Adjust constraint setup.py</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/ef4e245804759d44ae54fc832b4d5155837f0720"><code>ef4e245</code></a>
Add Sphinx 6.1.3 to test matrix</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/c4013f49c1a99b70c12d45325d5f413a9c7f7960"><code>c4013f4</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/michaeljones/breathe/issues/879">#879</a>
from schlatterbeck/sort-groups</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/d75073d73c9bec4954d691d50d30704fd09a4a14"><code>d75073d</code></a>
Bump clang again</li>
<li>Additional commits viewable in <a
href="https://github.com/michaeljones/breathe/compare/v4.34.0...v4.35.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=breathe&package-manager=pip&previous-version=4.34.0&new-version=4.35.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
github-actions bot added a commit to MaRDI4NFDI/open-interfaces that referenced this pull request Mar 6, 2023
Bumps [breathe](https://github.com/michaeljones/breathe) from 4.34.0 to
4.35.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/breathe-doc/breathe/blob/main/CHANGELOG.rst">breathe's
changelog</a>.</em></p>
<blockquote>
<h2>Change Log</h2>
<p>Inspired by <code>Keepachangelog.com
&lt;http://keepachangelog.com/&gt;</code>__.</p>
<ul>
<li>
<p>2023-02-28 - <strong>Breathe v4.35.0</strong></p>
<ul>
<li>Pull lone literal blocks in paragraphs up to produce correct
doctree.
<code>[#833](breathe-doc/breathe#833)
&lt;https://github.com/michaeljones/breathe/pull/833&gt;</code>__</li>
<li>Fix tests for changes in Sphinx 5.3.
<code>[#865](breathe-doc/breathe#865)
&lt;https://github.com/breathe-doc/breathe/pull/865&gt;</code>__</li>
<li>Bump Python requirement to 3.7.
<code>[#866](breathe-doc/breathe#866)
&lt;https://github.com/breathe-doc/breathe/pull/866&gt;</code>__</li>
<li>Support Sphinx 6.
<code>[#885](breathe-doc/breathe#885)
&lt;https://github.com/breathe-doc/breathe/pull/885&gt;</code>__</li>
<li>Support <code>:sort:</code> option to sort sections by name.
<code>[#879](breathe-doc/breathe#879)
&lt;https://github.com/breathe-doc/breathe/pull/879&gt;</code>__</li>
</ul>
</li>
<li>
<p>2022-06-20 - <strong>Breathe v4.34.0</strong></p>
<ul>
<li>Treat .unparsed as plain text.
<code>[#806](breathe-doc/breathe#806)
&lt;https://github.com/michaeljones/breathe/pull/806&gt;</code>__</li>
<li>Remove unneeded type: ignore annotations.
<code>[#813](breathe-doc/breathe#813)
&lt;https://github.com/michaeljones/breathe/pull/813&gt;</code>__</li>
<li>Fix internal <code>NodeFinder</code> visitor for when non-Docutils
nodes are
present in the content of a directive.
<code>[#812](breathe-doc/breathe#812)
&lt;https://github.com/michaeljones/breathe/pull/812&gt;</code>__</li>
<li>Rename lint workflow.
<code>[#814](breathe-doc/breathe#814)
&lt;https://github.com/michaeljones/breathe/pull/814&gt;</code>__</li>
<li>Type check pygments and limit docutils stub version.
<code>[#819](breathe-doc/breathe#819)
&lt;https://github.com/michaeljones/breathe/pull/819&gt;</code>__</li>
<li>Convert dot files' relative path to absolute.
<code>[#821](breathe-doc/breathe#821)
&lt;https://github.com/michaeljones/breathe/pull/821&gt;</code>__</li>
<li>CI, update Sphinx versions to test.
<code>[#834](breathe-doc/breathe#834)
&lt;https://github.com/michaeljones/breathe/pull/834&gt;</code>__</li>
<li>CI, update for Sphinx 5.0.1.
<code>[#846](breathe-doc/breathe#846)
&lt;https://github.com/michaeljones/breathe/pull/846&gt;</code>__</li>
<li>Fix inconsistency in example.
<code>[#843](breathe-doc/breathe#843)
&lt;https://github.com/michaeljones/breathe/pull/843&gt;</code>__</li>
<li>Fix C# enum rendering crash.
<code>[#849](breathe-doc/breathe#849)
&lt;https://github.com/michaeljones/breathe/pull/849&gt;</code>__</li>
<li>Drop Sphinx 3 support, add Sphinx 5 support.
<code>[#850](breathe-doc/breathe#850)
&lt;https://github.com/michaeljones/breathe/pull/850&gt;</code>__</li>
<li>CICD: Disable python 3.6 for Sphinx master tests.
<code>[#853](breathe-doc/breathe#853)
&lt;https://github.com/michaeljones/breathe/pull/853&gt;</code>__</li>
<li>Populate default include text-node's data field instead of
raw-source.
<code>[#828](breathe-doc/breathe#828)
&lt;https://github.com/michaeljones/breathe/pull/828&gt;</code>__</li>
</ul>
</li>
<li>
<p>2022-02-14 - <strong>Breathe v4.33.1</strong></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/breathe-doc/breathe/commit/4e9f55eadc91d96ac155a24c3634359b511a82cd"><code>4e9f55e</code></a>
version: release v4.35.0</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/b4564e9b7f654cc23907f4e346ed79f1447a9cba"><code>b4564e9</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/michaeljones/breathe/issues/885">#885</a>
from breathe-doc/sphinx-6</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/42585399bf666b0c673b222291c4886700ec283e"><code>4258539</code></a>
Remove &lt;7 constraint from setup.py</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/86298ccf2fd8ead0867a2ac74ac894a9ef25bb67"><code>86298cc</code></a>
Remove &lt;7 constraint from requirement file</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/81a92d8ea06fe4dd43cea85282b1ad092e58c3c4"><code>81a92d8</code></a>
Update changelog with latest changes</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/687a3278e894b461df3ea00d6c6b2da140757728"><code>687a327</code></a>
Adjust constraint in production requirements.txt</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/00b29e83541c2f4b16b1c0bd4d1abfb0c2a31834"><code>00b29e8</code></a>
Adjust constraint setup.py</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/ef4e245804759d44ae54fc832b4d5155837f0720"><code>ef4e245</code></a>
Add Sphinx 6.1.3 to test matrix</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/c4013f49c1a99b70c12d45325d5f413a9c7f7960"><code>c4013f4</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/michaeljones/breathe/issues/879">#879</a>
from schlatterbeck/sort-groups</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/d75073d73c9bec4954d691d50d30704fd09a4a14"><code>d75073d</code></a>
Bump clang again</li>
<li>Additional commits viewable in <a
href="https://github.com/michaeljones/breathe/compare/v4.34.0...v4.35.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=breathe&package-manager=pip&previous-version=4.34.0&new-version=4.35.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
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

Successfully merging this pull request may close these issues.

doxygen 1.9.3 doesn't use abs path for \dotfile cmd
3 participants