Repository navigation
Replies: 71 comments 3 replies
|
Thanks for launching this discussion. It is a matter of fact that the QMS documentation needs new ideas to revive it. In your text and in the AI supplement to it there are plenty of ideas/statements I would like to comment about. But this needs some careful thinking and some time. A first comment: some of the parts you list as hand-written are created by me with help of scripts. But the scripts are never made public. |
|
Here are some additional remarks (English translation mainly created with Copilot):
Next a few comments concerning the AI part using some of its statements as headings:
Summary
|
|
It's completely understood that you can't take the complete responsibility. In fact I think no one can. I want to get the work on the documentation more into the direction like writing code. Adding or filling chapters is a PR. If you change the code and this has impact on the docs you have to fix the docs withing the code PR. But for that writing docs has to be human and AI friendly. I had a lengthy discussion with the AI and Sphinx really seems to be the best choice. Summary by AI: Our requirements are:
Sphinx is the only generator that covers all four:
On formatting: MyST plus sphinx-design gives admonitions, tabs, grid cards, figures with numbered captions, list tables and a glossary. Cross references are checked at build time, so a link to a removed section breaks the build instead of rotting silently. End AI content. This needs some groundwork to automate getting screenshots and animations. I already filed a ticket #1217 . And I would start a framework on my private fork, so we can play and test before this hits maproom officially. I would also like to experiment with automated translations. The challenge will be to keep this super easy, so everyone can participate without a headache. I would suggest I do the ground work first. Then we test. And then we can start discussion on the new TOC structure. But it wouldn't hurt if you develop a strong opinion on that in the meanwhile. |
|
I spent some time to hack a demo. https://github.com/kiozen/qmapshack/tree/QMS-1217_demo This is about how to take screenshots in a way that can be updated, when the UI changes. There is a small readme in It has it's limitations. And probably still needs a lot of fine tuning. I did not review the code and let the AI do it's thing. This is just to collect experience and to find out if it is usable. One finding already: It will be impossible to capture everything with this, e.g. tool tips. Or mouse cursor based overlays. This is why there is a manual mode, too. Of course this will be subject to getting stall. But the tool has The goal is to make that as easy as possible. The current code is good, but not perfect. It needs to be refined once we are confident that this might work for the future and is worth spending effort to refine and improve. Just give it a try! Everyone welcome. Start with your own page to test. |
|
I refined the tool a bit more. WRITING.md should explain all. If not it is badly written 😉 |
|
My impressions after my first attempts at using the tool but not yet based on the latest version of
I’ll keep experimenting with the tool and will certainly have more comments, questions, and requests, but it’ll take some time. |
|
A lot of good questions. I try to answer them with some general explanations: The goal would be to do all image creation with that tool in a way that can be replayed at any time. And thus updated with a reasonable effort. I am not sure if that goal is 100% reachable. For now I removed the function to attach any screenshot and to test for stall manual screenshots. However I added scenarios. And the possibility of taking rectangular screenshots of scenarios. This won't cover everything, too. But quite another load of it. In the end it will be a decision if we really need to do screenshots of every aspect. Or focus documentation on the most important stuff and provide the mechanism for that. Documentation will be a PR in the future. The process will be less complex as for bugs and enhancement. If the snapshot tool lacks a feature in the process, a developer, most likely me, will add a commit to the documentation PR fixing it. Data and maps: Configuration is already stored by chapter. Same has to be done for data. And everything will be in the repo. That said, you can't use full map sets. But you can use a small dummy tile and blanks to document map creation and handling. And there will be a baseline of data. So you do not have to add data to each chapter. Also language, theme color, fonts need to be addressed. It would be cool to have the docs depending on the system theme. And it would be cool to have automated translations of the docs. But this can escalate in size and effort quite fast. |
|
@kiozen: I wanted to see a map and opened the dialog to set a map path. Here is what I got:
Is the path shown in this window correct? I don't see a map. And I don't like this path on my system. |
|
Data and maps per chapter are not implemented yet. There should be the OSM TMS map as baseline |
|
@kiozen: "Click a track on the map and a small row of buttons appears over it, in a speech bubble pointing at the track." - I did this after activating my map. Here is the result:
Not very nice! Ctrl+Shift+F9 gives the same layout. Comment: I changed from fullscreen to a smaller GUI size! |
|
you have to stick to the scenario. and the scenario is not highlighting the track. You can always verify if it is done right if you do "./shot.py chapter ". This must produce the same shots as you have done interactively. |
I don't understand this phrase. Certainly, because I do not yet understand what a scenario is and how to handle a scenario. And there might be a second reason for my misunderstanding: A wrong interpretation of the scenario description due to missing preconditions for using the scenario. This brings me to my next remark: Assume, I start a new page/chapter and I want some images in a form not yet used/implemented. As an example: I want some part of the GUI with special data (a user-selected region). Currently, I read: I'm not sure if this will be an easy task. I take the image because it says more than 1000 words. And this step just seems to need the 1000 words, i.e., the precise and short description of what I want to see in the image can be hard work (it must be clearly understandable by the person implementing the scenario). In the mentioned example I even have to describe the exact location of the selected region on the GUI. But this location is bound to my computer and my system, isn't it?. How can it be reproduced on another system? Where is my misunderstanding? Another remark: The directory |
|
Sorry for the stream of comments. Here is one more: I run:
|
|
your way to call all of this is strange. Doesn't the recommended way from the WRITING.md work? |
|
@kiozen: what can I learn from the output of the subcommand The other help text says Are the widgets/classes listed in the output those where I can shoot an image? Certainly not. |
|
"list" is of no real use. I removed it. "explore" and "inspect" is for debugging. Also of no real use. Generally speaking the items listed are named widgets that do not need a real scenario. e.g. The workspace setup dialog. The can be opened, their child widgets selected and you can take a shot of the child with ctrl+shift+F9 Everything else that needs preparation by UI interaction needs a scenario. e.g. expand the tree of a project. In general scenarios are tricky. I spent most of the time to fix bugs to reproduce scenarios. And I am certain there are even more bugs. This whole automated screenshot stuff has it's limits. It's pretty annoying to find all the quirks and to find out what is possible and what is not possible. And I do not have a good feeling if it comes to stability when future code changes are done. But never the less I do not see a way around automated, reproducible screenshots. If we drop it, documentation will go stall over time, because these shots are not easy to generate. You need to know the setup for each. However with the new tool it might go stall, too, because the tool gets broken and maintaining it takes too much time and effort. So the question is still: Is it worth it? Are we able to write good documentation with limited screenshots from the tool? Surely a picture says more than 100 words. But many pictures together with 1000 words do not make a good documentation either. The trick is to explain the not so obvious in a few images and text. And leave out the obvious. I pushed another batch of changes that hopefully address your findings. |
I start liking the tool. Especially, after understanding what is hidden behind the former Some/many(?) images can be taken manually and the will rarely change. I think it is time to switch the discussion/development to other topics of the documentation project. Here I have in mind: which documentation framework to use (Sphinx+MyST+?, ...), structure of the docu, style questions, and some others. Answers to these questions are a prerequisite for writing text for the docu without revising it permanently. I experimented a bit with Sphinx (RTD, furo, Qt output, ...). I pulled together a draft of a style guide. I use a test page when working with the image tool. Here can be my next contributions.
Thanks! Helped a lot! Opens the way to take much more snapshots. |
|
@kiozen: let me raise a rather typical style question. This can help to understand how to deal with such things in the future. You might have noticed that we use slightly different terminology: you prefer
You use Now, there is a conflict which should/must be resolved. In any case, quite some changes are necessary either in text or in code. The GUI and its description (my variant of it) should use equal terminology. What would be a good approach to resolve such terminology conflicts? |
|
@kiozen: for me one essential part is still missing in the Image shooter tool: how to insert and use some data (tracks, maps, dem, ...) necessary to get good snaps. Example: try to explain the various routing options without images or without suitable tracks and maps. |
|
Here is the plan:
So this will consume my development time for the next weeks. And will stall any real documentation. Imho Sphinx and all that is needed for it is already decided. If I want to have HTML pages as well as Qt internal help files, it is the best option. I just do not have any idea how to integrate that. CMake target? Independent Python script? No clue yet. I am a huge fan of a style guide. But I have no real opinion on a style. Usually I am very pragmatic on such things and choose what ever is already defined. E.g. for the c++ formatting I used Google style. The important part: It must be possible to enforce it automatically. This is easy with code. Much harder with prose. Imho there must be a solution that can be done with any AI. Usually this works by having an MD file with the style guide, point the AI to it, remind the AI constantly to use it. And when reviewing a doc PR this has to be checked with AI. All possible. But a huge drawback for everyone writing docs without AI. However I do not really see any feasible alternative that can be done with reasonable effort. If we prefer certain wording that must be defined in the style guide, too. That leads me to the content of the new documentation. One general caveat of documentation: No one is reading the docs. Well at least not, if it is too much prose and it does not get to the point fast. I think this is the problem of the Wiki. It's a huge collection of trivial, important and outdated information. There are some gems hidden below quite a crust and thus hard to find. So what is important information? I am the opinion that most stuff in QMapShack is intuitive. Sure many will object. But let's be honest:
Of course UX can be improved. Always. I think the UI has made a step forward the last year. This has to be continued. Better fix the UX, rather than trying to document bad UX. So do we really have to document this trivial stuff? And if we do, has it to be presented in the front row? There is nothing wrong with a page that lists all actions with their icon and a short explanation. But there is no need to make it jump to the user on first sight. So in general next to writing the docs from scratch we should also focus on:
But if we do all of that, what's left to document? Concepts - QMapShack has a few concepts that are very basic to understanding the app. e.g. the layers in the canvas and their draw order. The concept that the data of these layers is not linked to another layer, e.g. DEM not linked to maps, routing not linked to maps. Or the concept to focus items to get actions either by clicking or by context menu, etc. Data preparation - We are not able to provide ready to go data. The perfect way would be how it is done for BRouter with the wizard. But we can't do that for maps, DEM, etc. I added some help lately withe the overlay stuff. But this will never be perfect and covering everything. Workspace and database - This is probably a topic many new users struggle with. Other apps handle the topic different. For most users the constrains of a database are not obvious. They think in filesystems. And there are many non-intuitive constrains, e.g. data must be loaded from the database to the workspace to be changed. No direct change of data in the database (including some exceptions). And probably many more. These are just the most prominent in my head. Another idea in my head is to add help buttons wherever a complex UX is encountered, e.g. range selection. This button should open the chapter in the local help. But that requires code changes, etc, and is for later. Maybe it's a good point to keep in mind while structuring and writing documentation. And the biggest challenge will be to write a good, easy to read documentation. I had quite a share on that using AI. Maybe it's just Claude Code, but AI tends to write excessive prose with a very overloaded style. It's lecturing, writing history lessons, start using it's own terms, guessing rather than facts, and hiding the point under a huge heap of blabla. And honestly, the wiki, written by humans, often suffers the same problem. So it really boils down to identify the stuff that really needs documentation and to document it in just a few, simple sentences. Admittedly this is a huge challenge. |
From my CMake experience: There was an old copy script to collect all required files for the Windows version. I rebuilt this step and use now a CMake build project. Runs smoothly. The Sphinx build is in principle a Make run with some parameters. The parameters involve the output type (HTML, Qt help, ...). This can certainly be implemented in a CMake run. What else should be included in this integration? Retaking all snapshots with
I don't believe that any AI can do this. I asked my Copilot and my ChatGPT if there is an API which I can use for this purpose. Copilot: no API at all. ChatGPT: API if you pay.
Possible yes. I submitted both the style guide and a Markdown file to my (simple?) AI and got some evaluation result (you may have seen it). But this was a manual process. My attempts to use AI to create or optimize code or text were not so convincing. Some times good, sometimes miserable. The result has to be checked manually. This is my experience.
Maybe, a proposal: I had again a look at the existing Quick start page. This page describes what QMS is, how to get and install it, how to launch it. It gives some initial ideas how to use it. And it is read! Check with GitHub! Why not taking a revised version of this page as the main page and supplement it by a few additional pages with more details for interesting and not so obvious topics: Installation details for various systems, interaction of workspace and database and device, use of routing engines, use of track filters, etc. This approach has more advantages: it is just one page. The revision can be done with a reasonable volume of work. It can be easily translated to other languages, too. The revision should include a clear hint to use the various forms of tooltips in the GUI (which need from time to time an improved wording). |
|
I pushed another update of the tool. As usual WRITING.md is the source of truth. The update is now implementing the complete writer flow. The goal is to commit only those images that really change. So if you generate the test page on your Windows PC and publish, no images should be in the commit. As long as you did not change the shots via the tool. |
|
Yes, check against the style guide is a manual process. But it should be done by AI rather than a human. And yes the quick start page is important 😄 But it's needs heavy rewriting. There is a lot of reading right from the start with a lot of information that a novice user will have a hard time to find out what is important and what to do. But it's for sure a good start. Each section should get to the point in a few bullet points that have a visible gain for the user. It's ok to provide links into the more detailed chapters at the end of a section. In the beginning this will redirect to the online Wiki. And as time goes by into chapter pages of the new documentation. This is really an experience that I have made the past few months working with AI. AI shits your screen with bloated text, trying to explain every detail at once and overloading the reader with many new terms and notions. If you have to read that 8h straight your brain starts to hurt. Funny enough if you insist to get to the point, AI is able to boil it down to just a few sentences. And from that point on you can ask for details if that was too brief. But in most cases that brief answer is what you wanted to see. The Wiki is pretty much the same: bloated, very detailed. Hard to find out what's the point. In contrast I answered questions in a much more focused and condensed manner on the Naviboard and referencing the Wiki for more details. So same problem and pattern. In the end this boils down to:
And stick to single, short sentences or bullet points rather than on lengthy prose. |
|
Btw, I rework the tool again. Still not satisfied by the flow. |
|
Ok, rework done. I think that was in improvement, Writing.md is your friend. One thing. The shot tool is now called ./shot.py page no "doc" or other funny stuff anymore |
|
@kiozen: Comment to In part Assume a Windows user wants to contribute to the docu. Then the quoted phrase implies that he must be able to build QMS and to pull together all files necessary to run QMS in the documentation mode. Or: For Windows and interested people a QMS documentation mode package must be distributed. Or: Include the documentation mode in the normal distribution. |
|
@kiozen: Do I get the Publish idea correctly:
|
|
My own post prompted me to think further about the development of QMS and its documentation. Here are a few general points:
|
|
Ok, that took a while but now the tool is in a PR As usual WRITING.md is the source of truth. I did a lot of testing but I am sure there are still a lot of glitches to find. Please add any findings as comment to the PR. The next 3 weeks I will have limited time to work on this and to response. So be patient. 😉 |



Uh oh!
There was an error while loading. Please reload this page.
The Wiki has been a highly valuable source of information for years. There is a lot of work in it. Especially @wthaem spent countless hours on it. And many others, too. However the Wiki grew a bit outdated or partly stall over the years.
This is very unfortunate considering the time already spent on it. To update, it would require another batch of countless hours of manual labor. More than I ever would dare to ask from anyone.
So what is the future?
In the past month I used a lot of AI. At work and for this project. AI is a two sided sword. If you do not know what you want and have no instinct on how good code and documentation should look like, AI will lead you into a gopher hear and you will never get out of it again. However if you closely review each step and intervene on the first sight of unreadable, to complex results it is a real help. A good example is the icon and dark theme refactor of the 1.21.0 release. The topic nagged at me for years but I did not touch it because of the complexity. With AI it was possible in a reasonable time frame.
At my everyday work projects I already established a triad of workflows when solving a ticket. Fix the code, update the tests, update the docs. By that every PR has a up-to-date documentation. And AI can verify if a change needs an update of documentation. This works fairly well. Another benefit: I am no native speaker for English and I am not very good in writing documentation. AI is way better.
So I asked the AI if there is kind of hope for the Wiki. As usual take it with a grain of salt. This has not been refined and the AI got some details wrong. But the general outline is reasonable. That is the answer:
wiki-modernisation-plan.md
In short:
The idea to move everything into the project's docs folder is inducted by me. This is how github would prefer it today. Makes sense if you want to update docs in PRs.
The (huge) caveat:
The obvious one: You need AI that can tinker with files on your hard disk. And this is nothing you get for free. You need a subscription and this will cost you at least ~20€ a month. Too much to ask anyone to pay just for updating the documentation. If you have a subscription anyway it would be ok.
The next problem: I need help on that. My time budget is always on the edge. I still work and have a company to run. Answering tickets, review of PRs and tackling tasks in the code, that I do not want to ask anyone else for, consumes way too much time already.
I should decide on a framework for this. And I should create it too. Even created and maintained by AI it must be human editable and maintainable. So this needs some experience and knowledge. However if someone really is interested in this and volunteers it's ok for me, too.
The next step would be to outline a concept of the new documentation. This would be best if two or three people would decide on that in a constructive manner. This does not necessary require a local AI client. Once it is defined I can feed it in.
If the concept and a rough TOC structure is established the hard work starts. Filling in the chapters by collecting all data from the old Wiki, verify it and create a new pages. This is the part that depends heavily on AI.
If the new docs fill up, part of PR reviews will be to check if there is a need to update docs. If the author of the PR can't do it because of the lack of AI, I can do it while reviewing. This should be ok.
Well, this is the rough idea. Even with AI it will be a huge batch of work. However I consider it doable with the help of AI. So it boils down to: One or two volunteer to tackle this, willing to spend next to a lot time also money on an AI subscription, or already having one. I am well aware this is a lot to ask for and I can understand everyone declining. But I wanted to give it a try 😄
All reactions