This is an archive of the discontinued LLVM Phabricator instance.

[libc++] Add a CMake target to re-generate files and revamp CONTRIBUTING.rst
ClosedPublic

Authored by ldionne on Jul 15 2021, 7:56 AM.

Details

Summary

As we automate more and more things in the library, it becomes useful for
contributors to have a single target for running all the automation as
part of their workflow. This commit adds a new libcxx-generate-files
target that should re-generate all the auto-generated files in the library.

As a fly-by, I also revamped the documentation on Contributing to account
for this new target and present it as a bullet list of things to check
before committing. I also added a few things that are often overlooked
to that list, such as updating the synopsis and the status files.

Diff Detail

Event Timeline

ldionne created this revision.Jul 15 2021, 7:56 AM
ldionne requested review of this revision.Jul 15 2021, 7:56 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 15 2021, 7:56 AM
Herald added a reviewer: Restricted Project. · View Herald Transcript
ldionne added a subscriber: cjdb.Jul 15 2021, 7:58 AM

@cjdb I saw the script you added in D105932, saw it was missing from the documentation, and told myself: we need a single source of truth for running all the scripts now. This is it. Once this ships, can you rebase D105932 on top?

ldionne accepted this revision.Jul 15 2021, 9:06 AM
This revision is now accepted and ready to land.Jul 15 2021, 9:06 AM
This revision was landed with ongoing or failed builds.Jul 15 2021, 9:07 AM
This revision was automatically updated to reflect the committed changes.

Nice improvement. I noticed you already committed it after I started reviewing. But LGTM, just a few nits.

libcxx/docs/Contributing.rst
14

I think it would be nice to refer new contributors to the libcxx Discord channel.

41–42

Maybe a linebreak after the first ?

Quuxplusone added inline comments.
libcxx/utils/CMakeLists.txt
19

I'd strongly prefer "one name for one thing": name the targets consistently with what scripts they run.
So:
libcxx-generate-header-inclusion-tests
libcxx-generate-header-tests
libcxx-generate-feature-test-macro-components

Otherwise LGTM.