Skip to content

feat(postcodes/ID): bulk-import 8,367 Indonesia postcodes via Pos Indonesia (#1039)#1453

Merged
dr5hn merged 1 commit into
masterfrom
feat/postcodes-indonesia
Apr 27, 2026
Merged

feat(postcodes/ID): bulk-import 8,367 Indonesia postcodes via Pos Indonesia (#1039)#1453
dr5hn merged 1 commit into
masterfrom
feat/postcodes-indonesia

Conversation

@dr5hn
Copy link
Copy Markdown
Owner

@dr5hn dr5hn commented Apr 27, 2026

Summary

Adds 8,367 Indonesia postcodes spanning all 34 BPS provinces, sourced
from the MIT-licensed pentagonal/Indonesia-Postal-Code repository.

  • Coverage: 100% province resolution (34/34 pre-2022 provinces).
  • Granularity: city/regency level (one record per (postal_code, city));
    the source's 81,248 urban/sub-district rows collapse to 8,367 distinct
    codes when aggregated at the city level.

How it works

  • The source rows carry a 2-digit BPS province code (11–92), mapped
    to CSC's states.json 2-letter iso2 via a hand-curated 34-entry table.
  • Post-2022 Papua subdivisions (Papua Barat Daya, Pegunungan, Selatan,
    Tengah) do not yet appear in the source feed and are not surfaced
    in this import.

Source & licence

Validation

  • python3 -m py_compile clean.
  • 100% of 8,367 codes match country.postal_code_regex (^(\d{5})$).
  • 100% of records resolve a valid state_id whose country_id == 102
    and whose iso2 matches state_code.
  • No auto-managed fields (id, created_at, updated_at, flag).

Test plan

  • Importer compiles and runs on a clean checkout.
  • Cross-reference validator passes (regex + FK + state_code agreement).
  • Idempotent merge verified.
  • CI pipeline green.

Refs #1039.

🤖 Generated with Claude Code

…onesia (#1039)

Source: Pos Indonesia postcode catalogue redistributed via the
pentagonal/Indonesia-Postal-Code (MIT) repository. All 34 BPS
provinces resolve (100% state FK) via a hand-curated BPS 2-digit
code -> CSC iso2 map; the post-2022 Papua subdivision splits are
not yet reflected in the source feed and are not surfaced here.

Records dedupe at (postal_code, city) granularity — each Pos code is
shared by many urban / sub-district names within a single city, so
81,248 source rows collapse to 8,367 distinct city-level codes.

Refs #1039.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 27, 2026 13:06
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Apr 27, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.

@github-actions
Copy link
Copy Markdown
Contributor

CSC Validation Report

PR Format

  • ✅ Description provided
  • ✅ Data source linked
  • ✅ Issue linked (recommended for data changes)
  • ✅ Justification / context provided

Labels applied: data:postcodes, large-contribution

⚠️ Large Contribution

This PR contains 8367 records. Large contributions require manual review.

Schema Validation (8367 records)

✅ All records passed validation

Cross-Reference Validation

✅ 16734 reference(s) verified

Source URL Verification

✅ 2 source URL(s) accessible


All checks passed | Status: Ready for review

@dr5hn dr5hn merged commit 7664931 into master Apr 27, 2026
1 check passed
@dr5hn dr5hn deleted the feat/postcodes-indonesia branch April 27, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:postcodes enhancement New feature or request large-contribution ready-for-review size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants