Back to all reviewers

thoughtful configuration design

duckdb/duckdb
Based on 3 comments
Txt

When designing configuration options, environment variables, and build settings, follow established patterns and ensure they serve a clear purpose. Consider cross-platform compatibility, use familiar conventions (like PATH-style lists), and align configuration choices with project requirements.

Configurations Txt

Reviewer Prompt

When designing configuration options, environment variables, and build settings, follow established patterns and ensure they serve a clear purpose. Consider cross-platform compatibility, use familiar conventions (like PATH-style lists), and align configuration choices with project requirements.

Key principles:

  • Follow established patterns (e.g., colon/semicolon-separated lists like PATH)
  • Handle platform differences appropriately (; on Windows, : on Unix)
  • Ensure every configuration variable is actually used - avoid creating intermediate variables that serve no purpose
  • Align configuration granularity with project compatibility guarantees (e.g., version numbering should reflect actual compatibility boundaries)
  • Remove unused configuration variables rather than leaving them as dead code

Example:

# Good: Uses platform-appropriate separators and follows PATH convention
set(EXTENSION_DIRECTORIES "~/.duckdb/extensions" CACHE STRING "Extension directories (colon/semicolon separated)")

# Good: Version reflects actual compatibility guarantees  
set_target_properties(duckdb PROPERTIES SOVERSION ${DUCKDB_MAJOR_VERSION}.${DUCKDB_MINOR_VERSION})

# Bad: Creates unused intermediate variable
set(SUMMARIZE_FAILURES_ENV "$ENV{SUMMARIZE_FAILURES}")  # Never actually used
3
Comments Analyzed
Txt
Primary Language
Configurations
Category

Source Discussions