Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve WireViz
title: "[bug] "
labels: 'bug'
assignees: ''

---

<!-- Please add a brief summary of your issue to the title above, after the
"[bug]" prefix -->

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
Comment on lines +18 to +21

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

These template steps seem to fit to a GUI application, but WireViz is more often used as a CLI tool or imported as a Python library. Maybe suggest a few alternative lists of steps so the user can use what fits best and delete the others?

Maybe also remind the user to supply other info according to CONTRIBUTING.md - e.g.
"The relevant input files unless (preferably) you can demonstrate the same issue using one of the example files. If your input file is large or complex, please try to find a smaller/simplified input that still can reproduce the same issue."


**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.
Comment on lines +26 to +27

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Maybe also suggest copy of text output from WireViz in the terminal, including exception traceback and other error messages, any output file with unexpected contents, etc.?


**Desktop (please complete the following information):**
- WireViz version:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- WireViz version:
- WireViz version (`wireviz -V`):

WireViz supports the -V option (since v0.2)

- Graphviz version (`dot -V`):
- Python version: (`python -V`):
- Operating System and version:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- Operating System and version:
- Operating System and version:
- In Windows (`ver`):
- In macOS (`sw_vers`):
- In modern Linux or FreeBSD (`cat /etc/os-release`):

Maybe you find a better way to write these alternatives to help the user to find the information we need?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

One option to be sure you get the info you need/want is to collect it yourselves. For example...

requests has a help submodule that collects relevant system information

>>> from pprint import pp
>>> import requests.help
>>> pp(requests.help.info())
{'platform': {'system': 'Linux', 'release': '7.0.10-201.fc44.x86_64'},
 'implementation': {'name': 'CPython', 'version': '3.14.5'},
 'system_ssl': {'version': '30500050'},
 'using_pyopenssl': True,
 'using_charset_normalizer': False,
 'pyOpenSSL': {'version': '26.1.0', 'openssl_version': '30500050'},
 'urllib3': {'version': '2.7.0'},
 'chardet': {'version': '6.0.0.post1'},
 'charset_normalizer': {'version': '3.4.4'},
 'cryptography': {'version': '48.0.0'},
 'idna': {'version': '3.11'},
 'requests': {'version': '2.33.1'}}

pyproj has something similar...

>>> import pyproj
>>> pyproj._show_versions.show_versions()
pyproj info:
    pyproj: 3.7.2
PROJ (runtime): 9.8.1
PROJ (compiled): 9.7.1
  data dir: /usr/share/proj
user_data_dir: /home/ferd/.local/share/proj
PROJ DATA (recommended version): 1.24
PROJ Database: 1.6
EPSG Database: v12.029 [2025-10-02]
ESRI Database: ArcGIS Pro 3.6 [2025-12-01]
IGNF Database: 3.1.0 [2019-05-24]

System:
    python: 3.14.5 (main, May 11 2026, 00:00:00) [GCC 16.1.1 20260501 (Red Hat 16.1.1-1)]
executable: /usr/bin/python3
   machine: Linux-7.0.10-201.fc44.x86_64-x86_64-with-glibc2.43

Python deps:
   certifi: 2026.1.4
    Cython: 3.2.4
setuptools: 80.10.2
       pip: 26.0.1

If something like that were added to WireViz, you'd still have to have more detailed requests for information, for users of older versions. But you could instruct up-to-date users to do something like,

<!-- Or just open an interactive Python session,
     run the following commands, and paste the output:

import wireviz.debug
print(wireviz.debug.sysinfo())

-->

...and you'd be sure to get exactly the relevant data you need. In time, as versions that lacked the module aged out of support, the template could be simplified to just ask for info collected that way, always.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I agree. I added a simple version of this for a particular problem we had earlier: https://github.com/wireviz/WireViz/blob/v0.4.1/src/wireviz/wireviz.py#L424

I have considered adding such info to the output of wireviz -V, but I fear it might be too verbose. Maybe something like wireviz -VV is better, and we would then also probably need to execute os.system("dot -V") or subprocess.run("dot -V".split()) to print the Graphviz version.

However, as you write, we still need to help users provide this info for a while after adding such a feature because they might not run the latest version.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

and we would then also probably need to execute os.system("dot -V") or subprocess.run("dot -V".split()) to print the Graphviz version.

You could, but the graphviz module will do it for you.

>>> import graphviz
>>> graphviz.version()
(14, 1, 4)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I have now created PR #507 that adds printing more version information. It's still a draft, so improvements might be added. I plan to include versions of installed package dependencies. Maybe I also should support a function returning a dict with keys for each version item. That could be useful when WireViz is used as a library, and the text print from CLI -VV could be a structured print of that dict instead of the adhoc text output included in the currently first commit.


**Additional context**
Add any other context about the problem here.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/2-feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[feature] "
labels: 'enhancement'
assignees: ''

---

<!-- Please add a brief summary of your request to the title above, after the
"[feature]" prefix -->

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/3-doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Documentation issue
about: Help us improve the WireViz documentation
title: "[doc] "
labels: 'documentation'
assignees: ''

---
<!-- Please add a brief summary of your issue to the title above, after the
"[doc]" prefix -->

**What documentation page(s) does this involve?**
Links to the relevant documentation files, e.g. [docs/README.md][].

**Describe the problem**
A clear and concise description of the documentation issue.

**Describe your suggested improvement**
A clear and concise summary of how the documentation could be better.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Additional context**
Add any other context about the problem here.

2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
blank_issues_enabled: true

11 changes: 11 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- Where appropriate, prefix your issue title with one of these
category prefixes, followed by a space:

[internal] - When suggesting code improvements that don't change
any output.
[meta] - For issues about the development or contribution process.

For [bug], [feature], or [doc] issues, please use the corresponding
issue templates if possible, as they provide more guidance on what
information to include. -->