miurahr / aqtinstall

aqt: Another (unofficial) Qt CLI Installer on multi-platforms
https://aqtinstall.readthedocs.io/en/latest/
MIT License
913 stars 84 forks source link

Some documentation archives not found by list-doc #753

Closed rectalogic closed 8 months ago

rectalogic commented 8 months ago

Describe the bug aqt list-doc mac 6.6.1 only shows some archives

To Reproduce

$ aqt list-doc mac 6.6.1
qdoc qmake qt5 qtassistant qtcmake qtconcurrent qtcore qtdbus qtdesigner qtdistancefieldgenerator qtdoc qtgui qthelp qtlabsplatform qtlinguist qtnetwork qtopengl qtplatformintegration qtprintsupport qtqml qtqmlcore qtqmlmodels qtqmltest qtqmlworkerscript qtqmlxmllistmodel qtquick qtquickcontrols qtquickdialogs qtsql qtsvg qttestlib qtuitools qtwaylandcompositor qtwidgets qtxml

Expected behavior Expected to also see qtmultimedia, qt3d, qtlottie and so on.

Desktop (please complete the following information):

Additional context It appears aqt downloads https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt6_661_src_doc_examples/Updates.xml and looks for PackageUpdate with <Name>qt.qt6.661.doc</Name> and then uses the <DownloadableArchives> from that. But this is only a subset of the archives available. Should it be looking for any <Name> that begins with the qt.qt6.661.doc prefix? e.g. <Name>qt.qt6.661.doc.qtmultimedia</Name>

 <PackageUpdate>
  <Name>qt.qt6.661.doc</Name>
  <DisplayName>Qt 6.6.1 Documentation</DisplayName>
  <Description>Qt 6.6.1 documentation</Description>
  <Version>6.6.1-0-202311210520</Version>
  <ReleaseDate>2023-11-21</ReleaseDate>
  <Dependencies>qt.tools</Dependencies>
  <Virtual>true</Virtual>
  <Script>installscript.qs</Script>
  <SortingPriority>1</SortingPriority>
  <DownloadableArchives>qt5-documentation.tar.xz, qdoc-documentation.tar.xz, qma
ke-documentation.tar.xz, qtassistant-documentation.tar.xz, qtconcurrent-document
ation.tar.xz, qtcmake-documentation.tar.xz, qtcore-documentation.tar.xz, qtdbus-
documentation.tar.xz, qtdesigner-documentation.tar.xz, qtdistancefieldgenerator-
documentation.tar.xz, qtdoc-documentation.tar.xz, qtgui-documentation.tar.xz, qt
help-documentation.tar.xz, qtlabsplatform-documentation.tar.xz, qtlinguist-docum
entation.tar.xz, qtnetwork-documentation.tar.xz, qtopengl-documentation.tar.xz, qtplatformintegration-documentation.tar.xz, qtprintsupport-documentation.tar.xz, qtqml-documentation.tar.xz, qtqmlcore-documentation.tar.xz, qtqmlmodels-documentation.tar.xz, qtqmltest-documentation.tar.xz, qtqmlworkerscript-documentation.tar.xz, qtqmlxmllistmodel-documentation.tar.xz, qtquick-documentation.tar.xz, qtquickcontrols-documentation.tar.xz, qtquickdialogs-documentation.tar.xz, qtsql-documentation.tar.xz, qtsvg-documentation.tar.xz, qttestlib-documentation.tar.xz,qtuitools-documentation.tar.xz, qtwaylandcompositor-documentation.tar.xz, qtwidg
ets-documentation.tar.xz, qtxml-documentation.tar.xz</DownloadableArchives>
  <UpdateFile CompressedSize="90025640" OS="Any" UncompressedSize="215996156"/>
  <SHA1>c7346d37c10f017566d5db905dd01bf23325ac4f</SHA1>
 </PackageUpdate>
ddalcino commented 8 months ago

Those sound like modules to me. Try this instead:

$ aqt list-doc mac 6.6.1 --modules

There's definitely some room for us to explain this a little better in the documentation, particularly in the 'Getting Started' section. I think that section is mainly focused on installing tools and Qt, and largely ignores source/doc/examples. You are welcome to take a shot at improving it.

rectalogic commented 8 months ago

Thanks, you are right.

ddalcino commented 8 months ago

IMHO this is a legitimate issue with the docs at docs/getting_started.rst, and should not be closed. You're not the only person that's going to run into this issue; some of these commands are difficult to use without more helpful tutorials.

Thank you for pointing this out.

rectalogic commented 8 months ago

I'll reopen. I'm afraid I'm still too confused to write helpful docs. I'm not clear what the difference is between an archive and a module.

$ aqt list-doc mac 6.6.1
qdoc qmake qt5 qtassistant qtcmake qtconcurrent qtcore qtdbus qtdesigner qtdistancefieldgenerator qtdoc qtgui qthelp qtlabsplatform qtlinguist qtnetwork qtopengl qtplatformintegration qtprintsupport qtqml qtqmlcore qtqmlmodels qtqmltest qtqmlworkerscript qtqmlxmllistmodel qtquick qtquickcontrols qtquickdialogs qtsql qtsvg qttestlib qtuitools qtwaylandcompositor qtwidgets qtxml
$ aqt list-doc mac 6.6.1 --modules
qt3d qt5compat qtactiveqt qtbluetooth qtcharts qtdatavis3d qtgraphs qtgrpc qthttpserver qtimageformats qtlocation qtlottie qtmultimedia qtnetworkauth qtnfc qtpdf qtpositioning qtquick3d qtquick3dphysics qtquickeffectmaker qtquicktimeline qtremoteobjects qtscxml qtsensors qtserialbus qtserialport qtshadertools qtspeech qtvirtualkeyboard qtwebchannel qtwebengine qtwebsockets qtwebview

So qtmultimedia is in the modules list, which archive is it associated with? Is there a way to tell, or do I even need to care?

Also the install-doc help says:

  --archives [ARCHIVES ...]
                        Specify subset of archives to install. Affects the
                        base module and the debug_info module. (Default: all
                        archives).

So this only impacts the base and debug_info modules - but those aren't even listed as modules by list-doc

Should list-doc/install-doc deal with archives at all? It seems like maybe list-doc should just list modules by default, not archives. And install-doc should accept modules to install?

miurahr commented 8 months ago

install-doc manual explains that it can take --modules or --archives in optional, and when not specified, it installs all the base documents.

modules are additional modules against a base archives.

There is qt3d module that consist with archive file 6.6.1-0-202311210527qt3d-documentation.tar.xz. It is 1:1 relationship so when specified a module , aqt engine looks for an archive file that has a name consist of qt3d

There is a base module, that is not listed as modules, that consist with archive files such as qt5-documentation.tar.xz, qdoc-documentation.tar.xz, qmake-documentation.tar.xz, ..... which has names consit of qdoc, qmake, qt5, qtcore and so on.

When user install document with default option, all the base archives are installed. When user want to additional document, he/she can use list-doc --modules command and run isntall-doc --modules something . When user want to install subset document of a base module, such as qmake only, so he/she check archive name with command list-doc then run install-doc --archives qmake

It seems to be better for a default behavior to show modules not archive for ordinary usage.

There is another idea that default behavior to show both modules and archive.

miurahr commented 8 months ago

list-doc manual page said

By default, list-doc will print a list of archives available for installation using the install-doc command_, with the --archives option.