LLM WikiAccess-protected knowledge portal

WIKI

crawler-lib-swift

AI Summary Purpose Durable note for the CocoaPods Swift/iOS ecosystem package crawler at ~/labrador/crawler/crawler lib swift . Records the 2026 06 09 missing data fixes, the AI license timeout fix, and the hardcoded secret → config.ini mov

경로ai/repo-notes/crawler-lib-swift.md
카테고리Repo Note
태그#cicd #crawler #data-pipeline #infra #kubernetes #lib #license #notes #repo #repo-note #security #swift

# crawler-lib-swift

AI Summary

Purpose:

Key points:

warning (was a bare KeyError('version') at the catch-all), and the per-version catch-all logs the podspec path. Log-level policy aligned with dotnet/ruby: only loss sites stay error (setInsertIgnoreDB/IntoDB, cdbvdb.executeSql which swallows, git pull 3-strike failure, crawlSingleProduct); retryable/enrichment logs demoted to warning. Note: swift incremental re-detects failed versions next run (Specs dir vs DB diff), so per-version failures are warnings by design.

Relevant when:

Do not read full document unless:

Linked documents:

Open Questions

Details

Repo Info

Fixes Applied (2026-06-09)

Row format (version/product/license columns + JSON encodings) unchanged throughout. Verified: py_compile OK; getAiLibraryLicense retry/cache mock-tested (retry-after-failure, cache-hit, graceful-None).

cocoapods.py — missing-data + speed (commit 77c4e1c)

  1. No full re-clone → incremental git pull. The Specs checkout was rm -rf'd and fully re-cloned every run; now kept and git pull'd. Full re-clone failure/timeout on the huge Specs repo dropped the most recent pods and was slow.
  2. git pull retry + return-code check. Single git pull → 3 retries (15s) + rc==0 check; 3-fail → proceed on existing checkout with a warning. Single partial/failed pull silently proceeding on a stale checkout was the main cause of recent-pod omission.
  3. per-pod isolation (try/except). A single pod's dir-enter / listing / version-sort(JVM) / DB error used to abort the whole crawl; now that pod is skipped and the crawl continues.
  4. product fallback. If versions exist but no product was created (latest-version podspec error etc.), build the product from the last successful version (version_list[-1]). getProductVo unchanged → product row format identical.

licenseeUtil.py getAiLibraryLicense — AI license read-timeout (commit 77c4e1c)

Secrets → config.ini (commit 6e72eb7)

Branch note

The working-tree edits were on the stale DAT-2784/license_ai_swift branch; they were moved to master via git stash → fast-forward local master to origin/mastergit stash pop (3-way, no conflicts), then committed.