Skip to content

feat(launcher): add Tk-based launcher command and wrapper script#2769

Open
xxhoeckyxx wants to merge 3 commits into
strictdoc-project:mainfrom
xxhoeckyxx:derhoecki/feat/launcher
Open

feat(launcher): add Tk-based launcher command and wrapper script#2769
xxhoeckyxx wants to merge 3 commits into
strictdoc-project:mainfrom
xxhoeckyxx:derhoecki/feat/launcher

Conversation

@xxhoeckyxx
Copy link
Copy Markdown

GUI Launcher: Start/Stop Server, Exports, Logs & Project Config

Hello everyone,

this is a third proposal featuring a slightly more substantial addition 🙂

I’ve developed an additional GUI launcher using tkinter that allows users to start and stop the server via a graphical user interface.
It also provides a file export feature, where both the export path and the file format can be selected.

Background

At the moment, the server runs locally on every user’s machine, and not everyone feels comfortable working with the command line.
The launcher is intended to provide a simple and user-friendly alternative.

Additional Features

The GUI also allows users to:

  • display the server logs at the click of a button
  • edit the configuration data of individual projects directly from the UI

Note:
This feature is particularly important for our internal use, which is why I wanted to share it with you.

As always, feedback is very welcome 🙂

Best regards,
Christopher

Copy link
Copy Markdown
Collaborator

@stanislaw stanislaw left a comment

Choose a reason for hiding this comment

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

Please rebase (instead of merge) this branch against the latest main branch and squash all your commits to just one. Otherwise, it is harder to review the overall changeset.

When the branch is rebase/squashed to just one commit with your actual change, I will do the next round of review. For now, I left some very obvious comments.

@@ -0,0 +1,152 @@
import subprocess
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.

Let's consolidate the entire Launcher codebase in the folder strictdoc/features/launcher. This should apply to all files from this PR that are related to this feature.



def _ensure_git_workspace(self) -> bool:
if not self._ensure_workspace():
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.

You should be running invoke lint locally to make sure that your Python files have correct indentation. See the Dev Guide about this and other things.

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.

Actually, the full check is invoke check which includes lint and test under the hood.

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.

I'm still working on the invoke check - hopefully I'll be able to upload it today, but I'd like to have the changes by Wednesday at the latest.

messagebox.showerror("Git error", str(exc))
return False

if completed.returncode != 0 or completed.stdout.strip().lower() != "true":
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.

Instead of extracting this Git-related functionality to a separate file, let's keep it inside your main launcher.py for now. The file will be bigger but I prefer to have separate files where their interfaces are clearly separated. The issue with this file is that it seems to be about Git but in fact it is still coupled to UI-relevant things like messagebox.showerror etc.

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.

This role was ultimately not suitable for our company, so I moved it to a separate file. That way, it’s easier to comment it out or remove it. Maybe I could rename the feature to something more descriptive so it’s clear that it’s part of the user interface, or should we just remove this feature entirely? Or move all UI files to a separate folder, as you suggested in your post above. Just let me know what you prefer, and I’ll adjust it accordingly ;)

Comment thread tools/strictdoc_tk_launcher.py Outdated
@stanislaw stanislaw added this to the 2026-Q2 milestone May 15, 2026
@xxhoeckyxx xxhoeckyxx force-pushed the derhoecki/feat/launcher branch 2 times, most recently from 3f6c37f to f6b9775 Compare May 18, 2026 07:16
Christopher Hoeck added 3 commits May 19, 2026 14:26
Refactor code structure for improved readability and maintainability

edited workspace entry
ttk Combobox now had recent_workspaces with a length of 5 entries

added auto show up after fail
added color in Logs

- The Tk-based wrapper script for the StrictDoc launcher has been removed because it is no longer needed.
- The launcher has been moved to a separate feature folder.
…have now been resolved; only 3 still fail due to missing dependencies, and 7 others time out.
@xxhoeckyxx xxhoeckyxx force-pushed the derhoecki/feat/launcher branch from e39807a to 68aa304 Compare May 19, 2026 12:33
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.

2 participants