- Name: GeoIDs.jl
- Purpose: Julia package for downloading and processing US Census TIGER/Line shapefiles
- Database: PostgreSQL (tiger database)
- Programming Paradigm: Functional programming approach
- Functional Style: Prefer pure functions and immutable data structures
- Type Stability: Ensure functions have consistent return types
- Error Handling: Use robust error handling with informative messages
- Testing: Include comprehensive tests for all functionality
- Documentation: Provide clear documentation with examples
- Resilience: All database operations should handle missing schemas/tables
- Idempotence: Functions should be safe to run multiple times
- Transaction Safety: Use transactions for multi-step operations
- Error Recovery: Provide graceful error handling for database operations
- Version Control: Maintain version history for all GEOID sets
- Data Integrity: Ensure consistency between database and module constants
- Backwards Compatibility: Preserve access to previous versions
- Explore Thoroughly: Investigate issues completely before implementing solutions
- Verify Consistency: When changing functions, update all related components
- Test Incrementally: Test changes thoroughly before proceeding
- Document Changes: Update documentation to reflect new functionality
- Informative Messages: Provide clear progress and error messages
- Sensible Defaults: Functions should have reasonable default parameters
- Graceful Degradation: Handle missing prerequisites without crashing
- Progressive Enhancement: Core functions work with minimal setup
- Julia Compatibility: Support Julia 1.6 and higher
- PostgreSQL Requirements: Compatible with PostgreSQL 12 and higher
- Environmental Adaptability: Honor environment variables for configuration
- Minimal Dependencies: Keep external dependencies to essential packages only