Files
MIND/docs/other_docs/reporting.md
Casvt 6fa9c10f2a Doc update (#67)
* Updated README

* Added EXPOSE to Dockerfile for Docker Desktop

* Refactored docker compose file

* Updated CONTRIBUTING

* Docs update

* Added docs for sending files

* Added styling of scroll bar

* Fixed various colors

* Fixed Dockerfile exposed port

* Updated api docs for merging

* Attempt at fixing merge problems
2024-03-10 14:17:03 +01:00

118 lines
7.1 KiB
Markdown

# Reporting
This page covers how to get in contact, which platform to use and how to properly share information like logs and errors.
## Choosing a Platform
If you have a question, visit the [Discord server](https://discord.gg/nMNdgG7vsE).
If you experience behaviour that you are unsure of if it's correct, check the ['General Information' page](../general_info/workings.md).
If you are sure that something is going wrong (bug) or is missing (feature), create a [GitHub issue](https://github.com/Casvt/MIND/issues).
## Reporting a Bug
If you experience behaviour that is not correct, you should make a 'bug report':
1. Enable [debug logging](../settings/admin_settings.md#logging-level) in the settings.
2. Reproduce the error (this way it will occur with debug logs enabled).
3. Collect all the relevant logs. You can download the debug logs from the last debug session by clicking the 'Download Debug Logs' button in the admin panel. Preferably starting from when you started reproducing, but _AT LEAST_ the complete error (A.K.A. traceback).
4. On the [GitHub issues page](https://github.com/Casvt/MIND/issues), make a new issue and choose the 'Bug report' template. Fill in each field in the template with the information requested.
5. Make sure to properly format code and errors! Otherwise it's not readable. See the tip below.
### Formatting code and errors
!!! tip "Formatting code and errors in GitHub"
Note: the logs and errors are from Kapowarr, but that does not have an impact on the subject and goal of this text.
If you want to share logs (that are not the debug logs in the downloaded file), type the following when making a GitHub issue:
```
[2024-01-20 11:20:29][MainThread][INFO] Starting up Kapowarr
[2024-01-20 11:20:29][MainThread][INFO] Kapowarr running on http://0.0.0.0:5656/
[2024-01-20 11:20:29][Thread-1][INFO] Added task: Update All (1)
[2024-01-20 11:20:30][Task Handler][INFO] Finished task Update All
```
It will look like this:
```
[2024-01-20 11:20:29][MainThread][INFO] Starting up Kapowarr
[2024-01-20 11:20:29][MainThread][INFO] Kapowarr running on http://0.0.0.0:5656/
[2024-01-20 11:20:29][Thread-1][INFO] Added task: Update All (1)
[2024-01-20 11:20:30][Task Handler][INFO] Finished task Update All
```
If you want to share code or errors, type the following when making a Github issue:
```python
Traceback (most recent call last):
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 1455, in wsgi_app
 response = self.full_dispatch_request()
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 869, in full_dispatch_request
 rv = self.handle_user_exception(e)
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 867, in full_dispatch_request
 rv = self.dispatch_request()
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 852, in dispatch_request
 return self.ensure_sync(self.view_functions[rule.endpoint])(\*\*view_args)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 64, in wrapper
 return method(*args, \*\*kwargs)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 207, in wrapper
 result = method(*args, \*\*kwargs)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 398, in api_library_import
 result = propose_library_import(limit, only_english)
File "/usr/serverApps/Kapowarr/backend/library_import.py", line 174, in propose_library_import
 search_results = run(__search_matches(
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
 return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
 return future.result()
File "/usr/serverApps/Kapowarr/backend/library_import.py", line 37, in __search_matches
 responses = await gather(*tasks)
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 597, in search_volumes_async
 return self.__process_search_results(query, results)
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 483, in __process_search_results
 results = [self.__format_volume_output(r) for r in results]
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 483, in
 results = [self.__format_volume_output(r) for r in results]
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 303, in __format_volume_output
 result['volume_number'] = int(volume_result.group(1))
ValueError: invalid literal for int() with base 10: 'i'
```
It will look like this:
```python
Traceback (most recent call last):
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 1455, in wsgi_app
response = self.full_dispatch_request()
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 869, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 867, in full_dispatch_request
rv = self.dispatch_request()
File "/home/nogardvfx/.local/lib/python3.8/site-packages/flask/app.py", line 852, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 64, in wrapper
return method(*args, **kwargs)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 207, in wrapper
result = method(*args, **kwargs)
File "/usr/serverApps/Kapowarr/frontend/api.py", line 398, in api_library_import
result = propose_library_import(limit, only_english)
File "/usr/serverApps/Kapowarr/backend/library_import.py", line 174, in propose_library_import
search_results = run(__search_matches(
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/usr/serverApps/Kapowarr/backend/library_import.py", line 37, in __search_matches
responses = await gather(*tasks)
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 597, in search_volumes_async
return self.__process_search_results(query, results)
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 483, in __process_search_results
results = [self.__format_volume_output(r) for r in results]
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 483, in
results = [self.__format_volume_output(r) for r in results]
File "/usr/serverApps/Kapowarr/backend/comicvine.py", line 303, in __format_volume_output
result['volume_number'] = int(volume_result.group(1))
ValueError: invalid literal for int() with base 10: 'i'
```
See the difference? That's why it's important to properly format logs and code when sharing them.