Initial commit

This commit is contained in:
Guofang committed 2026-08-13 15:50:03 +08:00
commit 2a96844f99
8 files changed
+1264

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
# Project Instructions
## Source Dependencies
- Do not download or initialize Git submodules during source builds unless an explicit exception is listed below.
- Rely on the default non-recursive behavior of `git clone`; do not add submodule initialization or update steps.
- Declare and pin every source dependency version in the `Dockerfile` or another tracked project file.
- Do not use floating branches, unversioned archives, or implicit dependency downloads.
- Add each dependency as a separate, reviewable build step so its source and version remain visible.
- Append new dependency build steps after all existing dependency build steps. Do not insert or reorder steps in the existing build sequence, so previously successful build layers remain unchanged.
- The log4cplus build is allowed to fetch its required `ThreadPool` submodule as a shallow repository pinned by `REL_2_0_5` to commit `cc0b6371d3963f7028c2da5fc007733f9f3bf205`. Do not fetch unused log4cplus submodules.
- Boost is allowed to recursively clone its modular source submodules. The parent repository and every submodule must be shallow clones from the `boost-1.83.0` release tag.
## System Development Packages
- Do not install distribution-provided `-dev` packages for third-party libraries.
- Build third-party development dependencies from source at explicitly pinned versions.
- System `-dev` packages are allowed only for foundational platform infrastructure, such as glibc and Linux kernel headers.
- Document any new foundational `-dev` package exception in this file before adding it to the image.
- On Rocky Linux 9, `glibc-devel`, `kernel-headers`, and `libstdc++-devel` may be installed directly or as compiler dependencies because they are foundational C/C++ platform and toolchain components.
## Meta Libraries
- Pin all Meta/Facebook ecosystem libraries to the same date-based release tag.
- The current Meta release tag is `v2026.08.03.00`; use this exact tag for Folly and every subsequently added Meta library.
- Update the shared Meta release tag only when all Meta libraries in this project can be updated together.