Skip to content

Undo#21

Draft
gburd wants to merge 8 commits into
masterfrom
undo
Draft

Undo#21
gburd wants to merge 8 commits into
masterfrom
undo

Conversation

@gburd
Copy link
Copy Markdown
Owner

@gburd gburd commented Mar 26, 2026

No description provided.

@github-actions github-actions Bot force-pushed the master branch 30 times, most recently from 9355586 to 9cbf7e6 Compare March 30, 2026 18:18
@github-actions github-actions Bot force-pushed the master branch 22 times, most recently from c08b44f to 7c5c2d3 Compare April 2, 2026 22:10
gburd added 8 commits May 17, 2026 01:35
  - Hourly upstream sync from postgres/postgres (24x daily)
  - AI-powered PR reviews using AWS Bedrock Claude Sonnet 4.5
  - Multi-platform CI via existing Cirrus CI configuration
  - Cost tracking and comprehensive documentation

  Features:
  - Automatic issue creation on sync conflicts
  - PostgreSQL-specific code review prompts (C, SQL, docs, build)
  - Cost limits: $15/PR, $200/month
  - Inline PR comments with security/performance labels
  - Skip draft PRs to save costs

  Documentation:
  - .github/SETUP_SUMMARY.md - Quick setup overview
  - .github/QUICKSTART.md - 15-minute setup guide
  - .github/PRE_COMMIT_CHECKLIST.md - Verification checklist
  - .github/docs/ - Detailed guides for sync, AI review, Bedrock

  See .github/README.md for complete overview

Complete Phase 3: Windows builds + fix sync for CI/CD commits

Phase 3: Windows Dependency Build System
- Implement full build workflow (OpenSSL, zlib, libxml2)
- Smart caching by version hash (80% cost reduction)
- Dependency bundling with manifest generation
- Weekly auto-refresh + manual triggers
- PowerShell download helper script
- Comprehensive usage documentation

Sync Workflow Fix:
- Allow .github/ commits (CI/CD config) on master
- Detect and reject code commits outside .github/
- Merge upstream while preserving .github/ changes
- Create issues only for actual pristine violations

Documentation:
- Complete Windows build usage guide
- Update all status docs to 100% complete
- Phase 3 completion summary

All three CI/CD phases complete (100%):
✅ Hourly upstream sync with .github/ preservation
✅ AI-powered PR reviews via Bedrock Claude 4.5
✅ Windows dependency builds with smart caching

Cost: $40-60/month total
See .github/PHASE3_COMPLETE.md for details

Fix sync to allow 'dev setup' commits on master

The sync workflow was failing because the 'dev setup v19' commit
modifies files outside .github/. Updated workflows to recognize
commits with messages starting with 'dev setup' as allowed on master.

Changes:
- Detect 'dev setup' commits by message pattern (case-insensitive)
- Allow merge if commits are .github/ OR dev setup OR both
- Update merge messages to reflect preserved changes
- Document pristine master policy with examples

This allows personal development environment commits (IDE configs,
debugging tools, shell aliases, Nix configs, etc.) on master without
violating the pristine mirror policy.

Future dev environment updates should start with 'dev setup' in the
commit message to be automatically recognized and preserved.

See .github/docs/pristine-master-policy.md for complete policy
See .github/DEV_SETUP_FIX.md for fix summary

Optimize CI/CD costs by skipping builds for pristine commits

Add cost optimization to Windows dependency builds to avoid expensive
builds when only pristine commits are pushed (dev setup commits or
.github/ configuration changes).

Changes:
- Add check-changes job to detect pristine-only pushes
- Skip Windows builds when all commits are dev setup or .github/ only
- Add comprehensive cost optimization documentation
- Update README with cost savings (~40% reduction)

Expected savings: ~$3-5/month on Windows builds, ~$40-47/month total
through combined optimizations.

Manual dispatch and scheduled builds always run regardless.
Nix-based development environment for PostgreSQL hacking.  Not for
merge; staged here so per-commit build/test runs can share a single
toolchain.

Changes from v34:

- Drop the .idea/ and .vscode/ editor directories.  Editor state is
  personal and should not live in the repository.

- Re-introduce glibc-no-fortify-warning.patch and the patchedGlibc
  overlay in shell.nix.  Without this, meson's libcurl thread-safety
  probe fails under our default -D_FORTIFY_SOURCE=1 -O0 -Werror
  combination because features.h emits a -Wcpp warning that becomes a
  fatal error.  The patch is scoped to the dev shell only and does not
  leak into system glibc or release builds.
Sparsemap is a memory-efficient data structure for maintaining sparse
sets of integers using hierarchical bitmaps.  It supports O(1) set/get
operations and efficient iteration over set bits while using far less
memory than a dense bitmap for sparse populations.

The implementation provides:
  - sparsemap_set/get/is_set for individual bit manipulation
  - sparsemap_scan for efficient forward iteration
  - sparsemap_select for rank-based selection
  - Configurable initial capacity with automatic growth

Used by the UNDO subsystem for tracking allocated pages and by RECNO
for free-space management within relation forks.

Includes a TAP regression test module (test_sparsemap) exercising all
public API operations.
Header-only implementation of a probabilistic skip list providing
O(log n) insert, delete, and lookup operations with O(n) space.
Compared to rbtree, skip lists offer simpler implementation, better
cache locality for sequential scans, and lock-free read potential.

The implementation provides:
  - Type-safe macros for defining typed skip lists (DEFINE_SKIPLIST)
  - Configurable maximum height (up to 32 levels)
  - Forward iteration via SKIPLIST_FOREACH
  - Range queries and nearest-neighbor lookup
  - Memory allocation via palloc (TopMemoryContext by default)

Used by the UNDO subsystem for maintaining ordered transaction
metadata and by RECNO for HLC-ordered page directories.

Includes a TAP regression test module (test_skiplist) exercising
insertion, deletion, iteration, and edge cases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant