-
Notifications
You must be signed in to change notification settings - Fork 127
Description
The win32 package is big, but not ridiculously so. The lib\src
directory is only 3.3MB in size.
But dart doc
is now failing on pub.dev with the following error:
DocumentationTooBigException: Reached 2147483648 bytes in the output directory.
#0 PubResourceProvider._aboutToWriteBytes (package:pub_dartdoc/src/pub_hooks.dart:61:7)
#1 _File.writeAsBytesSync (package:pub_dartdoc/src/pub_hooks.dart:145:15)
#2 _File.writeAsStringSync (package:pub_dartdoc/src/pub_hooks.dart:151:5)
#3 DartdocFileWriter.write (package:dartdoc/src/dartdoc.dart:72:10)
...
Log details here: https://pub.dev/documentation/win32/4.1.1/log.txt
Yes -- this 3.3MB of Dart code has generated over 2 gigabytes of auto-generated documentation!
Looking at the output files, there are 10,000+ documentation pages. The primary problem is that we generate a single file for even the most trivial content (e.g. a constant), and that file itself contains a reference to every other constant.
For example, the line const WM_PAINT = 0x000F;
is transformed into the following 500KB+ HTML file (renamed to .txt
so GitHub will let me attach it):
WM_PAINT-constant.html.txt
There is about 200 bytes of meaningful content in this file. Most of the file is a list of <a>
refs to other similar files:
...
<li><a href="../winrt/WM_SETTEXT-constant.html">WM_SETTEXT</a></li>
<li><a href="../winrt/WM_SETTINGCHANGE-constant.html">WM_SETTINGCHANGE</a></li>
<li><a href="../winrt/WM_SHOWWINDOW-constant.html">WM_SHOWWINDOW</a></li>
<li><a href="../winrt/WM_SIZE-constant.html">WM_SIZE</a></li>
<li><a href="../winrt/WM_SIZECLIPBOARD-constant.html">WM_SIZECLIPBOARD</a></li>
<li><a href="../winrt/WM_SPOOLERSTATUS-constant.html">WM_SPOOLERSTATUS</a></li>
<li><a href="../winrt/WM_STYLECHANGED-constant.html">WM_STYLECHANGED</a></li>
...
I hope we can make some changes to tidy this up quickly, since my package currently has no working documentation :( In addition, this must be expensive for us in hosting costs.
/cc @kevmoo