This is an archive of the discontinued LLVM Phabricator instance.

[docs] Build and publish documentation for the runtimes using LLVM_ENABLE_RUNTIMES
AbandonedPublic

Authored by ldionne on Sep 21 2022, 6:31 AM.

Details

Summary

Since LLVM_ENABLE_PROJECTS=libcxx;libcxxabi;libunwind are not supported
anymore, the correct way to build the documentation for the runtimes is
to use a CMake invocation rooted at <monorepo>/runtimes instead of using
a bootstrapping build. This is somewhat annoying because it requires the
addition of another top-level job for publishing the docs, however this
seems to be the cleanest way to achieve this.

Based on the discussion falling out of https://reviews.llvm.org/D132480.

Event Timeline

ldionne created this revision.Sep 21 2022, 6:31 AM
Herald added a project: Restricted Project. · View Herald Transcript
ldionne requested review of this revision.Sep 21 2022, 6:31 AM

I *think* this should resolve the issues we saw with https://reviews.llvm.org/D132480. However, I have no idea how to test this, so I'm not sure what's the best way to proceed here.

I *think* this should resolve the issues we saw with https://reviews.llvm.org/D132480. However, I have no idea how to test this, so I'm not sure what's the best way to proceed here.

If @andreil99 is able to speculatively try this patch out on the impacted documentation bots, that will hopefully tell us if the changes work?

The patch as is wouldn’t work.

UnifiedTreeBuilder.getCmakeBuildFactory does not support src_to_build_dir as this patch expects.
The path to built documentation is different.
And there is a few other small things here and there.

Andrei made needed changes and the builders are staged. Here is the runtime one - https://lab.llvm.org/staging/#/builders/229.

The patch as is wouldn’t work.

UnifiedTreeBuilder.getCmakeBuildFactory does not support src_to_build_dir as this patch expects.
The path to built documentation is different.
And there is a few other small things here and there.

Andrei made needed changes and the builders are staged. Here is the runtime one - https://lab.llvm.org/staging/#/builders/229.

Awesome, thanks! I'm a bit confused though, I'm not seeing any changes pushed to llvm-zorg? Is that what you mean by staging? In any case, please feel free to make the necessary changes, but please let me know so I can abandon this revision in case it is superseded!

Don't worry, I'll take it from here.

If you could check the build steps and check the published libcxx and libunwind documentation to make sure everything works as expected, that would help.
https://lab.llvm.org/staging/#/builders/229

Don't worry, I'll take it from here.

If you could check the build steps and check the published libcxx and libunwind documentation to make sure everything works as expected, that would help.
https://lab.llvm.org/staging/#/builders/229

Sounds great, thanks! I am checking the logs at https://lab.llvm.org/staging/#/builders/229/builds/13 right now:

  • The CMake configuration seems OK, but -DLLVM_ENABLE_ASSERTIONS=OFF is being passed and it's superfluous. It doesn't hurt, though, if it's simpler for you to keep it.
  • The ninja command to build the docs look OK.
  • I wasn't able to find where the staging docs are published, so I couldn't check the output. I'll do that if you let me know where they are!

The docs are published to the normal places: https://libcxx.llvm.org/ and https://libcxxabi.llvm.org/ respectively.

ldionne abandoned this revision.Sep 29 2022, 10:34 AM

The docs are published to the normal places: https://libcxx.llvm.org/ and https://libcxxabi.llvm.org/ respectively.

Great, everything looks correct then!