Files
allwpilib/upstream_utils
Ryan Blue 1fd1dc31b7 [upstream_utils] Clean up and enable foonathan memory docs (#6990)
Group memory doxygen into one module.

Remove concept alias and add doxygen definitions for foonathan memory.

\concept was added as a doxygen command in 1.9.2 and is meant to be applied to concepts. Inserting them into standard comment paragraphs causes doxygen to interpret the following text as a concept name and add it to the documentation, as well as remove the text from the paragraph.
In the upstream repo, this alias links to markdown documentation, so it's not usable for us anyways.

That, plus adding the doxygen definitions/aliases from upstream cleans up most of the errors/weird output from doxygen for foonathan memory.
2024-08-24 06:54:32 -07:00
..

Upstream utils

Layout

Each thirdparty library has a Python script for updating it. They generally:

  1. Check out a thirdparty Git repository to a specific commit or tag
  2. Apply patch files to the thirdparty repo to fix things specific to our build
  3. Copy a subset of the thirdparty files into our repo
  4. Comment out any header includes that were invalidated, if needed

upstream_utils.py contains utilities common to these update scripts.

Patches are generated in the thirdparty repo with git's format-patch command so they can be applied as individual commits and easily rebased onto newer versions. Each library has its own patch directory (e.g., lib_patches).

Updating thirdparty library version

The example below will update a hypothetical library called lib to the tag 2.0.

Start in the upstream_utils folder. Make sure a clone of the upstream repo exists.

./<lib>.py clone

Rebase the clone of the upstream repo.

./<lib>.py rebase 2.0

Update the upstream_utils patch files and the tag in the script.

./<lib>.py format-patch

Copy the updated upstream files into the thirdparty files within allwpilib.

./<lib>.py copy-src

Adding patch to thirdparty library

The example below will add a new patch file to a hypothetical library called lib (Replace <lib> with llvm, fmt, eigen, ... in the following steps).

Start in the upstream_utils folder. Make sure a clone of the upstream repo exists.

./<lib>.py clone

Update the clone of the upstream repo.

./<lib>.py reset

Navigate to the repo. If you can't find it, the directory of the clone is printed at the start of the clone command.

cd /tmp/<lib>

Make a commit with the desired changes.

git add ...
git commit -m "..."

Navigate back to upstream_utils.

cd allwpilib/upstream_utils

Update the upstream_utils patch files.

./<lib>.py format-patch

Rerun <lib>.py to reimport the thirdparty files.

./<lib>.py copy-src