Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix #277903: new manpage #4265

Merged
merged 1 commit into from
Mar 22, 2019
Merged

Conversation

mirabilos
Copy link
Contributor

Completely rewritten manpage, with improved documentation for most aspects of the program, and documentation of the better batch conversion (see PR 4166)

Fixes: https://musescore.org/en/node/277903

@mirabilos
Copy link
Contributor Author

https://musescore.org/en/node/277903#comment-872505 has a preview of how the new manpage looks, to ease review.

@shoogle
Copy link
Contributor

shoogle commented Dec 6, 2018

Nice job!

It would be great if the online handbook's command line options page simply rendered the latest version of the man page from the repository, like CMake's does.

@mirabilos
Copy link
Contributor Author

mirabilos commented Dec 6, 2018 via email

@shoogle
Copy link
Contributor

shoogle commented Dec 6, 2018

A short term solution might be to convert to Markdown (possibly via HTML) and just paste that into the handbook.

every version has its own manpage

The solution to this could be to have the latest development version in the developer's handbook and the latest stable release in the ordinary handbook. Or we could do what CMake do and make every version available (see the dropdown in the top-left).

@mirabilos
Copy link
Contributor Author

Hmm. https://musescore.org/en/handbook/command-line-options contains a couple things more I cannot or won’t map in the manpage:

  • Windows®-specific things
  • obvious things like that the executable has to be in $PATH
  • hyperlinks to other parts of the documentation

It also contains some of the automatic QT command line options.

@shoogle how about I just keep these two in sync manually? Perhaps using the Markdown output of mdocml as a base, but integrating the handbook-specific things.

I’ve updated the PR with some information found on https://musescore.org/en/handbook/command-line-options I did not yet have in the manpage (very minor things only).

@shoogle
Copy link
Contributor

shoogle commented Dec 7, 2018

@shoogle how about I just keep these two in sync manually? Perhaps using the Markdown output of mdocml as a base, but integrating the handbook-specific things.

I'd be more than happy with this! The automated updates was more of a wish than a serious suggestion.

By the way, if we did go down the automation route, platform specific options could be documented or commented out using CMake's configure_file(), as is done for the portable AppImage options. There is probably room in the handbook for a how-to page about command line use for newbies (to explain things like PATH) that is separate to the manpage, but they can stay together for now.

@mirabilos
Copy link
Contributor Author

mirabilos commented Dec 7, 2018 via email

@shoogle
Copy link
Contributor

shoogle commented Dec 7, 2018

a Unix manual page has a somewhat defined “scope”

I'm more interested in putting information in the most logical place, and preferably all in once place, rather than how things are usually done. It makes no difference to me whether the Unix man page is generated from the handbook or the handbook generated from the man page, as long as there is one definitive source of information about command line usage, rather than two conflicting sources as there are now. Windows users would obviously use the online PDF/HTML version rather than a local version.

But I should have been more clear when I said "there is room for a how-to [...] that is separate to the manpage, but they can stay together for now". When I said that I wasn't suggesting you should put the Windows information in the man file right away. All I was saying is that when you paste Markdown into the Handbook you can leave the Windows stuff intact at the top, but if we ever do decide to automate the process then the Windows stuff will need to go either in the manpage itself, or on a separate page in the Handbook, so it doesn't get overwritten each time the script runs to update the Unix documentation.

@thomasbonte
Copy link
Contributor

thomasbonte commented Dec 8, 2018 via email

@mirabilos
Copy link
Contributor Author

@shoogle that’s close to what I was planning, ok, so we use different words but seem to mean roughly the same thing ;-)

@thomasbonte ok, works for me

@Jojo-Schmitz
Copy link
Contributor

Need to extend this, due to c63d1c4

@mirabilos
Copy link
Contributor Author

Extended it with the new options.

@mirabilos
Copy link
Contributor Author

I’ve updated Handbook 3: Command line options with this… it was massively manual editing work because MuseScore.org does not implement Markdown correctly.

Manually keeping them in sync, it is, then.

@mirabilos
Copy link
Contributor Author

In sync with 3.0.1 (plus PR #4166 ) now

@Jojo-Schmitz
Copy link
Contributor

Jojo-Schmitz commented Jan 24, 2019

That manpage can't get synced with the online manual, because the latter needs to cover Windows and Mac too, not just Linux, like the former does

@shoogle
Copy link
Contributor

shoogle commented Jan 24, 2019

It would actually be possible to extend QCommandLineParser and have it generate a manual directly from the C++ source code. This way it would always be up to date, and it would even be fully translatable via the existing translation infrastructure. It would take a bit of effort to setup though, so it will have to wait for another day.

@mirabilos
Copy link
Contributor Author

mirabilos commented Jan 24, 2019 via email

@shoogle
Copy link
Contributor

shoogle commented Jan 24, 2019

A proper implementation would extend QCommandLineParser to add full documentation and a function to generate an actual manpage (i.e. one with proper formatting), not just run the raw contents of --help through help2man.

But I agree that is definitely out of scope for this PR.

@mirabilos
Copy link
Contributor Author

mirabilos commented Jan 24, 2019 via email

@mirabilos
Copy link
Contributor Author

@anatoly-os ping?

@mirabilos
Copy link
Contributor Author

ping?

@mirabilos
Copy link
Contributor Author

@anatoly-os ping?

@shoogle
Copy link
Contributor

shoogle commented Mar 7, 2019

I believe Anatoly is working through the PRs primarily in order, oldest first, as there are still some open from November and before.

BTW @mirabilos, you should definitely join the MuseScore Telegram chat as that's where all discussions take place now. It's actually really busy - almost too busy in fact, but fortunately you can disable all notifications except when someone @mentions you, a bit like in IRC. It's open source and works on mobile too, plus there is no spam.

@mirabilos
Copy link
Contributor Author

mirabilos commented Mar 7, 2019 via email

@Jojo-Schmitz
Copy link
Contributor

There's a desktop client for telegram too

@shoogle
Copy link
Contributor

shoogle commented Mar 7, 2019

The phone number thing is a bit of a bummer but it does prevent people from creating lots of fake accounts and spamming everywhere like in IRC. If you value privacy Telegram has end-to-end encryption in secret chats (though not in public chats for the reasons explained here). It's basically an open source version of WhatsApp.

@mirabilos
Copy link
Contributor Author

mirabilos commented Mar 7, 2019 via email

@anatoly-os
Copy link
Contributor

@dmitrio95 could you please review and give your opinion?

Copy link
Contributor

@dmitrio95 dmitrio95 left a comment

Choose a reason for hiding this comment

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

The new manpage looks great, thanks @mirabilos!
I left just one question regarding MuseScore directories placement, maybe the listed path needs a correction.

build/Linux+BSD/mscore.1.in Outdated Show resolved Hide resolved
@mirabilos
Copy link
Contributor Author

mirabilos commented Mar 15, 2019 via email

Completely rewritten manpage, with improved documentation for most
aspects of the program, and documentation of the better batch con‐
version (see PR 4166). The new mscore.1.preview.sh shell script is
intended to be used for previewing changes, by developers.
@mirabilos
Copy link
Contributor Author

@dmitrio95 fixed and rebased, thanks for the review!

@mirabilos
Copy link
Contributor Author

@anatoly-os ready for merge? ☻

@anatoly-os anatoly-os merged commit faffc93 into musescore:master Mar 22, 2019
@mirabilos mirabilos deleted the new-manpage branch March 25, 2019 14:51
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.

None yet

6 participants