Skip to content

Feat/extension version compat#8

Merged
ruxwez merged 4 commits intomainfrom
feat/extension-version-compat
Oct 23, 2025
Merged

Feat/extension version compat#8
ruxwez merged 4 commits intomainfrom
feat/extension-version-compat

Conversation

@ruxwez
Copy link
Owner

@ruxwez ruxwez commented Oct 23, 2025

This pull request introduces significant improvements to the PostgreSQL extensions installer project, focusing on robust version management for extensions, improved concurrency handling, and enhanced documentation for both English and Spanish-speaking contributors and users. The installer now selects extension versions dynamically based on the PostgreSQL version, and the documentation has been expanded to include detailed contribution guidelines and project overviews in both languages.

Key changes:

Extension Version Management and Installer Logic

  • Introduced the ExtensionVersionCompatibility struct in src/structs.rs to map supported PostgreSQL major versions to compatible extension versions, along with a get_version method for dynamic lookup.
  • Refactored src/extensions/postgis.rs, src/extensions/pgmq.rs, and src/extensions/pgvector.rs to use ExtensionVersionCompatibility and accept the PostgreSQL version as an Arc<String>, enabling dynamic and thread-safe version selection for each extension during installation. [1] [2] [3]
  • Updated src/extensions/mod.rs and src/main.rs to pass the PostgreSQL version as an Arc<String> to all extension installers, improving concurrency and ensuring correct versioning in parallel tasks. [1] [2] [3]

Documentation and Contributor Guidelines

  • Added comprehensive contributor guides in both English (CONTRIBUTING.md) and Spanish (CONTRIBUTING.es.md), including workflows, coding standards, PR checklists, and extension addition instructions. [1] [2]
  • Enhanced the main project documentation (README.md and README.es.md) with clear explanations of project purpose, included extensions, the rationale for using Rust, version management strategy, and links to the new contributor guides. [1] [2]

Build and Testing Improvements

  • Added a simple makefile with test and build targets to streamline local Docker builds and testing.

These changes make the project more maintainable, contributor-friendly, and robust in handling multiple PostgreSQL and extension versions.

Add Makefile and structs::ExtensionVersionCompatibility Refactor
extensions to accept Arc<String> pg_version Resolve per-Postgres
extension versions via LazyLock
@ruxwez ruxwez enabled auto-merge October 23, 2025 23:44
@ruxwez ruxwez merged commit 13ea6d2 into main Oct 23, 2025
7 checks passed
@ruxwez ruxwez deleted the feat/extension-version-compat branch October 23, 2025 23:47
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