Project:LLVM/Contributing
From Gentoo Wiki
Jump to:navigation
Jump to:search
LLVM maintenance in Gentoo is quite specific, for a number of reasons:
- Upstream only maintains the newest branch at a time, but a lot of software requires old versions, so we end up maintaining all these old branches for years.
- Building and testing LLVM packages takes a lot of time.
- Any changes that could result in rebuilds may mean that a lot of users will have to spend significant time rebuilding multiple versions.
- On top of that, the whole thing is quite fragile.
For this reasons, if you'd like to contribute to the ebuilds, then please bear the following in mind:
- We do not accept downstream patches for the currently maintained versions. Please either send a patch upstream or — if the thing absolutely needs to be done downstream — figure out a patch-free solution that's not too hacky (a simple sed, a wrapper script). Downstream patches for old versions are acceptable, provided that they are simpler than backporting the proper fix from newer versions.
- We do not accept patches in FILESDIR, we do patchsets instead. For testing, keep your patches in /etc/portage/patches. For submission, please either just tell us (e.g. on a bug) which upstream commits to cherry-pick, or attach git-friendly patches that we can git am.
- Ideally, draft every new change on a single version (ideally, the newest .9999), and send that for early review. Don't waste your time patching other versions until the approach is approved.
- Patch only the newest version of every slot. For the main slot, it's fine to do just .9999 — we copy it to every successive snapshot.
- Revbumps are expensive. Ideally, we'll advise you whether to revbump or not (and how) while reviewing your draft change (the one you should make for the newest version only).