Contents
參與開發 / Contributing
- 支援範圍:只支援 PostgreSQL 17 與 18。請不要加入舊版相容碼。
- 建置:PGXS。換 PG 版本前要先
make clean,因為.so依版本編譯。 - 測試:
- 每個 PR 都要通過
make installcheck。 - 改動時鐘相關功能時,有 preload 和沒有 preload 各跑一次(
global測試有兩份預期結果)。 - TimescaleDB 相關改動請加跑
WITH_TIMESCALEDB=1。
- 每個 PR 都要通過
- 新功能要附上
test/sql/*.sql與test/expected/*.out。更新 expected 檔前,請逐行檢查差異。 docs/EXAMPLES.md的內容取自test/sql/examples.sql與test/expected/examples.out;修改實例時,兩邊要一起更新(測試是準則:先改examples.sql並重新產生examples.out,再同步到文件),然後執行make check-docs確認一致。CI 的「Docs examples」流程也會自動檢查。- 新增或修改功能時,請在同一個 commit 更新
docs/COVERAGE.md(物件、涵蓋的回歸測試、驗證版本、缺口)。改動前可先查該文件的「變更影響指南」決定要重跑哪些測試。 - 效能數字請寫進
docs/TESTING.md,並註明環境與執行次數。只放實際量測的數字,不放估算值。 - 程式風格:沿用 PostgreSQL 的 C 風格(tab 縮排、宣告放在區塊開頭),編譯時不能有警告(CI 用
-Werror)。 - 授權:送出的貢獻以 PostgreSQL License 授權。
English: PG 17/18 only. Every change must pass make installcheck, both with and without shared_preload_libraries when touching clocks. Add regression tests for new features, update docs/COVERAGE.md in the same commit, keep the build warning-free (CI uses -Werror), and report only measured numbers. Contributions are under the PostgreSQL License.