Provide zipped javadoc archive from make
Erik Joelsson
erik.joelsson at oracle.com
Mon Apr 4 09:56:24 UTC 2016
Hello,
There is still an mkdir instead of $(MKDIR).
The comments don't read very well, here is a suggestion.
"Optional target which bundles all generated javadocs into a zip
archive. The dependency on docs is handled in Main.gmk. Incremental
building of docs is currently broken so if you invoke zip-docs after
docs, the docs are always rebuilt."
"Add the core docs as prerequisite to the archive to trigger a rebuild
if the core docs were rebuilt. Ideally any doc rebuild should trigger
this, but the way prerequisites are currently setup in this file, that
is hard to achieve."
/Erik
On 2016-04-01 16:55, Jiri Vanek wrote:
> On 03/31/2016 04:18 PM, Erik Joelsson wrote:
>> Hello,
>
> https://jvanek.fedorapeople.org/oracle/jdk8/webrevs/zip-javadocs/v3/
> https://jvanek.fedorapeople.org/oracle/jdk8/webrevs/zip-javadocs/v3/webrev.zip
>
>
> All should be fixed.
>
> *however* I did not tested it. I was working on another machine, and
> plain jdk8 (without u) was there... And it do not built on f23 anymore.
> Still I think best test will be to already include it to fedora RPMs
> and start to work on jdk9's version.
>
>>
>> The comment has not been updated after the dependencies changed.
>>
>> Please use $(MKDIR), $(RM) -f and $(LN).
>
> Right. I was so careful in v1 an now such an mistake.
>>
>> There is no need for the dash before rm since rm -f won't fail and we
>> haven't used it like that before in these makefiles.
>
> sure.
>>
>> Please don't remove the assembly dir after zipping. In general, we
>> keep intermediate files around for easier debugging of the build.
>
> As you command!
>>
>> On 2016-03-31 15:20, Jiri Vanek wrote:
> ...snip...
>> Note that the change for 9 will be quite different. The makefiles
>> have evolved quite a bit.
> good to know :)
>
>>>>
>>>
>> Yes, dependencies here are broken. I don't expect you to fix it in
>> this patch. It's rare that people build docs incrementally so it
>> hasn't been a priority to fix. For now, I suppose you can add back
>> the COREAPI_INDEX_FILE so that the zip is rebuilt if the coreapi docs
>> were rebuilt, but with a comment that dependencies are actually
>> broken and this is just a reasonable workaround. At least ordering is
>> properly handled in Main.gmk now.
>
> Should be done. Again thank you for support
>
> J.
>>
>> /Erik
>>>> * Please don't use temporary directories outside the build output
>>>> dir. Such directories always risk
>>>> being left behind by failed builds. We need the build to only
>>>> create files in the designated output
>>>> dir.
>>>
>>> fixed.
>>>
>>>> * --display-globaldots is not a good option to use in this context.
>>>> It won't work well with file
>>>> logging of the build and I doubt it's valid for all platforms we
>>>> build on.
>>>
>>> sure. Removed.
>>>
>>>
>>> Thanx!
>>> J.
>>>>
>>>> /Erik
>>>>
>>>> On 2016-03-29 18:24, Jiri Vanek wrote:
>>>>> Hello Again!
>>>>>
>>>>> Sorry for delay in reply.
>>>>>
>>>>> There is webrev
>>>>>
>>>>> https://jvanek.fedorapeople.org/oracle/jdk8/webrevs/zip-javadocs/v1/
>>>>> https://jvanek.fedorapeople.org/oracle/jdk8/webrevs/zip-javadocs/v1/webrev.zip
>>>>>
>>>>>
>>>>> with patch as was (moreover) agreed in this thread for *jdk8*
>>>>>
>>>>> As I was studying the makefiles, I think I did not violated to
>>>>> much conditions by this hunk of code:)
>>>>> I thought that 8 will be much more simple, but at the end it
>>>>> evolved to same "find all roots" as
>>>>> discussed for 9 and modules.
>>>>>
>>>>> The only thing I don't like in this patch is unsuitability of zip
>>>>> to zip directories with stripped
>>>>> path.
>>>>>
>>>>> I went by pushd/popd but I had seen you like cd in make files more.
>>>>>
>>>>>
>>>>> Thanx for any feedback!
>>>>>
>>>>> J.
>>>>>
>>>>> On 03/08/2016 03:50 PM, Erik Joelsson wrote:
>>>>>> I wouldn't go that far, but I won't have time to look into it for
>>>>>> a while yet at least.
>>>>>>
>>>>>> /Erik
>>>>>>
>>>>>> On 2016-03-08 15:34, Jiri Vanek wrote:
>>>>>>> Ping?
>>>>>>>
>>>>>>> Or is this going to be considered closed-wont "fix"?
>>>>>>>
>>>>>>> Thanx!
>>>>>>>
>>>>>>> J.
>>>>>>> On 02/29/2016 04:24 PM, Jiri Vanek wrote:
>>>>>>>> On 02/26/2016 08:05 PM, Jonathan Gibbons wrote:
>>>>>>>>> On 02/26/2016 03:49 AM, Jiri Vanek wrote:
>>>>>>>>>> On 02/25/2016 06:34 PM, Jonathan Gibbons wrote:
>>>>>>>>>>> On 02/25/2016 09:23 AM, Jiri Vanek wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I must be missing something. Dozens? Of varius runs of
>>>>>>>>>>>> javadoc?
>>>>>>>>>>>>
>>>>>>>>>>>> I thought that javadoc ending at the end in single drectory
>>>>>>>>>>>> is one single javadoc for java. If
>>>>>>>>>>>> you are referring to javadoc generated by "per module" then
>>>>>>>>>>>> one jjoined zip is enough for me.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Jiri,
>>>>>>>>>>>
>>>>>>>>>>> If you accept the premise that javadoc writes one
>>>>>>>>>>> stylesheet.css file per run of javadoc,
>>>>>>>>>>> take a
>>>>>>>>>>> look at the following list:
>>>>>>>>>>
>>>>>>>>>> Then my goal will be to crate a trget, which takes
>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/
>>>>>>>>>> and pack it to
>>>>>>>>>> build/linux-x86_64-normal-server-release/images/javadoc.zip
>>>>>>>>>>
>>>>>>>>>> It should contains also the "smaller api" you are mentioning
>>>>>>>>>> below? If not, then those should
>>>>>>>>>> appear in this zip too.
>>>>>>>>>>>
>>>>>>>>>>> $ find build/linux-x86_64-normal-server-release/images/docs/
>>>>>>>>>>> -name stylesheet.css
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/dynalink/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/attach/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/javac/tree/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/jconsole/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/jpda/jdi/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/javadoc/doclet/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/javadoc/old/doclet/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/javadoc/old/taglet/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jdk/api/nashorn/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/api/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/nio/sctp/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/plugin/dom/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/security/jaas/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/security/smartcardio/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/security/jgss/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/management/extension/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/net/httpserver/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/net/socketoptions/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> build/linux-x86_64-normal-server-release/images/docs/jre/api/accessibility/jaccess/spec/stylesheet.css
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The "main"/"Java SE" javadoc bundle that most are aware of
>>>>>>>>>>> is the shortest filename, in the
>>>>>>>>>>> middle
>>>>>>>>>>> of the list, but there are lots of other smaller APIs that
>>>>>>>>>>> get their own doc bundle. You can
>>>>>>>>>>> get at
>>>>>>>>>>> most of them in released doc sets through the top-level
>>>>>>>>>>> "brick wall" page, or by using your
>>>>>>>>>>> favorite
>>>>>>>>>>> search engine.
>>>>>>>>>>
>>>>>>>>>> Hmm.. Do you have some? javadoc offline search is quite
>>>>>>>>>> painful think. (Even with new search in
>>>>>>>>>> 9, which seems to have some troubles on local filesystem).
>>>>>>>>>> The best search engine I know is
>>>>>>>>>> (unluckily) https://github.com/judovana/JavadocOfflineSearch
>>>>>>>>>
>>>>>>>>> The point of the preceding list was to say that each directory
>>>>>>>>> containing stylesheet.css is the
>>>>>>>>> root
>>>>>>>>> of a separate, distinct, javadoc bundle. So the smaller APIs
>>>>>>>>> that get their own bundle are
>>>>>>>>> precisely the ones given in the preceding list, other than the
>>>>>>>>> main javadoc bundle.
>>>>>>>>>
>>>>>>>>> The point of the comment about the brick wall and search
>>>>>>>>> engines was to indicate how most people
>>>>>>>>> will find these doc bundles in normal use, when they don't
>>>>>>>>> have a cheat sheet like the list
>>>>>>>>> above.
>>>>>>>>
>>>>>>>> yes I got that. But Then this compressed shattered javadoc
>>>>>>>> needs more thoughts.
>>>>>>>>
>>>>>>>> What is expected format of distribution?
>>>>>>>> I can imagine: web accessible, unapcked "all docs" and "zipepd
>>>>>>>> "all docs".
>>>>>>>> But never several zips, or several directories.
>>>>>>>>
>>>>>>>> What is what I'm missing behind this effort to deliver javadocs
>>>>>>>> per-module?
>>>>>>>>
>>>>>>>>>
>>>>>>>>> As far as IDEs wanting to access javadoc bundles, I would
>>>>>>>>> expect that to make all the docs
>>>>>>>>> available, you would want to zip up *each* directory
>>>>>>>>> containing stylesheet.css given in the
>>>>>>>>> preceding list. If you just zip up the top API directory,
>>>>>>>>> sure, that will include all the files,
>>>>>>>>> but
>>>>>>>>> the reality is that the IDE will likely not have any way of
>>>>>>>>> knowing about the minor doc
>>>>>>>>> bundles in
>>>>>>>>> all jre/ and jdk/ directories and subdirectories.
>>>>>>>>
>>>>>>>> Indeed, when you pack top level javadoc directroy as top level
>>>>>>>> of archive (so javadco will become
>>>>>>>> zipped1.zip!javadoc) then indeed, Netbeasn refuse to load it
>>>>>>>> whole 9just few parts)
>>>>>>>>
>>>>>>>> However when you pack it that content of javadoc will be the
>>>>>>>> top of the archive
>>>>>>>> (zipped2.zip!{api,jdk,jre,platform}) then NB loads it fine.
>>>>>>>>
>>>>>>>> If even this is wrong, then as last approach is really to
>>>>>>>> restructuralise docs after theirs
>>>>>>>> generation/before zipping to structure where top level
>>>>>>>> directory will the "one with style"
>>>>>>>>
>>>>>>>> dynalink/stylesheet.css
>>>>>>>> spec/stylesheet.css
>>>>>>>> tree/stylesheet.css
>>>>>>>> spec/stylesheet.css
>>>>>>>> jdi/stylesheet.css
>>>>>>>> doclet/stylesheet.css
>>>>>>>> nashorn/stylesheet.css
>>>>>>>> api/stylesheet.css
>>>>>>>> spec/stylesheet.css
>>>>>>>> dom/stylesheet.css
>>>>>>>> spec/stylesheet.css
>>>>>>>> spec/stylesheet.css
>>>>>>>> ...
>>>>>>>>
>>>>>>>> But looking to the occurences of "spec" There is something
>>>>>>>> wrong with those assumptions :)
>>>>>>>>
>>>>>>>>
>>>>>>>> As for indexing and viewing tools - They works fine with both
>>>>>>>> zipepd1 and zipped2 (but there is
>>>>>>>> not
>>>>>>>> much to try)
>>>>>>>>
>>>>>>>> Seeing the impact of packaging, I think it is one more +1 to
>>>>>>>> add this packing target, so JDK's
>>>>>>>> javadoc is pacaked in known, "laodable" way.
>>>>>>>>
>>>>>>>> Thanx!
>>>>>>>> J.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> -- Jon
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanx a lot!
>>>>>>>>>> J.
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the build-dev
mailing list