shpaass / yafc-ce

Powerful Factorio calculator/analyser that works with mods
GNU General Public License v3.0
40 stars 15 forks source link

Remove local stacktrace paths #170

Closed shpaass closed 3 weeks ago

shpaass commented 3 weeks ago

Problem: The exception stacktraces contain the paths of the one who built the release.

Solution: use Directory.Build.props to sanitize them.

The solution was mentioned by @Dorus in #164: The StackExchange question The article The theory behind Directory.Build.props is described there.

The commit contains the following parts:

  1. The change itself. It was done by creating Directory.Build.props and adding a specific string to it. That triggered the automatic change in FactorioCalc.sln.

  2. An improvement to the Contributors Guide. It was too small for its own commit.

  3. An update to the changelog.

Quality Assurance

To check if things work, I've added a line that threw a generic exception when one opened a milestone editor. The stack trace was as follows:

test of path

   at Yafc.MilestonesEditor.Build(ImGui gui) in X:\Yafc\Windows\MilestonesEditor.cs:line 36
   at Yafc.UI.ImGui.DoGui(ImGuiAction action) in X:\Yafc.UI\ImGui\ImGuiBuilding.cs:line 189
   at Yafc.UI.ImGui.BuildGui(Single width) in X:\Yafc.UI\ImGui\ImGuiBuilding.cs:line 214
   at Yafc.UI.ImGui.CalculateState(Single width, Single pixelsPerUnit) in X:\Yafc.UI\ImGui\ImGui.cs:line 134
   at Yafc.PseudoScreen.Build(ImGui gui, Vector2 screenSize) in X:\Yafc\Widgets\PseudoScreen.cs:line 25
   at Yafc.MainScreen.BuildContent(ImGui gui) in X:\Yafc\Windows\MainScreen.cs:line 213
   at Yafc.UI.WindowMain.BuildContents(ImGui gui) in X:\Yafc.UI\Core\WindowMain.cs:line 38
   at Yafc.UI.Window.Build(ImGui gui) in X:\Yafc.UI\Core\Window.cs:line 206
   at Yafc.UI.ImGui.DoGui(ImGuiAction action) in X:\Yafc.UI\ImGui\ImGuiBuilding.cs:line 189
   at Yafc.UI.ImGui.BuildGui(Single width) in X:\Yafc.UI\ImGui\ImGuiBuilding.cs:line 214
   at Yafc.UI.ImGui.CalculateState(Single width, Single pixelsPerUnit) in X:\Yafc.UI\ImGui\ImGui.cs:line 134
   at Yafc.UI.Window.Render() in X:\Yafc.UI\Core\Window.cs:line 115
   at Yafc.UI.Ui.Render() in X:\Yafc.UI\Core\Ui.cs:line 197

The line that threw the exception was deleted before making the PR. Fixes #164