Standardize a method to gracefully handle missing files
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 22/100
Research direction
This is an epic for project-wide missing-file handling, not a single change. The body only names fonts/import files as an example of a crash in the render loop. Survey existing file reads, then agree a pattern (check results, log, placeholders, disable features, or abort to a safe state). Done is a documented convention plus first uses in those paths; no specific files or tests are named.
Written by the indexing model from the issue text.
Description
This is more of an epic, and surely will be a recurring theme throughout the project...
Given how data-driven and customizable this game is intended to be, we can expect that files will sometimes be missing, even if they're part of our own distribution. For example I ran into an issue when switching branches where some fonts or at least their import files were missing, and this brought down half of the render loop. Whenever we read a file we should assume that it may fail, and try to deal with it. Depending on the file, this may include any combination of:
- explicitly check the result before continuing
- use the null conditional operator
?.to access it - LOG IT at a high level (this should eventually be shown in-game)
- default to a placeholder/empty reference at the lowest level possible
- disable the feature
- if it's absolutely critical, abort back to the nearest safe state
- Dominant language
- C#
- Stars
- 662
- Forks
- 67
- Avg merge
- 5d 10h
- Merged PRs (30d)
- 24
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from C7-Game/OpenCiv3
-
Add a Godot splashOpengodot good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 2 days
-
Exclude git files from build artifactsPossibly taken A pull request linked to this issue is open or already merged. Opengood first issue infrastructure
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 2 days
-
Add a zoom reset shortcutPossibly taken A pull request linked to this issue is open or already merged. Openenhancement godot good first issue graphics
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 2 days
-
bug godot
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 2 days
-
Make temporary popups stickyPossibly taken @stavrosfa claimed this 9 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 2 days
All issues in C7-Game/OpenCiv3
Similar issues
-
VB -> C#
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
icsharpcode/CodeConverter#1301 ·
Maintainers usually reply within 3 days
-
PettingZoo wrappers send only the first action component to every action dimensionPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Unity-Technologies/ml-agents#6341 ·
Maintainers usually reply within 1 day
-
Area: World-Readiness
Difficulty 1/5 Under an hour Newbie friendliness 90/100
microsoft/calculator#2522 ·
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Sonarr/Sonarr#9274 · 1 comment ·
Maintainers usually reply within 2 days
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 64/100