release: bump version to 0.58.0
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
release / images (push) Has been cancelled

Release 0.58.0 includes the Earth high-precision boundary PMTiles/MVT pipeline, standardized Earth boundary source collectors, China POV boundary configuration templates, and removal of the legacy low-precision GeoJSON fallback. It also adds Earth news target-location queueing/archive support, fixes datasource task status visibility, documents the Earth surface depth-spacing rules that prevent far-zoom z-fighting snow/black blocks, and updates bilingual operations/developer docs.
This commit is contained in:
linkong
2026-05-15 17:40:07 +08:00
parent dd176a6ae6
commit 93eb41a9f7
75 changed files with 5217 additions and 716 deletions

View File

@@ -175,19 +175,29 @@ async def run_collector_task(collector_name: str):
)
try:
collector._datasource_id = datasource.id
datasource_id = datasource.id
datasource_source = datasource.source
collector._datasource_id = datasource_id
logger.info_event(
"Running collector",
event="collector.run.started",
context={"collector_name": collector_name, "datasource_id": datasource.id},
context={"collector_name": collector_name, "datasource_id": datasource_id},
)
task_result = await collector.run(db)
datasource = await db.get(DataSource, datasource_id)
if datasource is None:
logger.error_event(
"Datasource disappeared after collector run",
event="collector.run.datasource_missing_after_run",
context={"collector_name": collector_name, "datasource_id": datasource_id},
)
return
datasource.last_run_at = datetime.now(UTC)
datasource.last_status = task_result.get("status")
if datasource.last_status == "success":
effective_candidate = await get_builtin_effective_candidate(db, datasource.source)
effective_candidate = await get_builtin_effective_candidate(db, datasource_source)
checksum, _credential_context = await build_builtin_connectivity_checksum(
datasource.source,
datasource_source,
effective_candidate["endpoint"],
effective_candidate["auth_type"],
effective_candidate["headers"],
@@ -196,7 +206,7 @@ async def run_collector_task(collector_name: str):
)
await save_connectivity_success(
db,
datasource.source,
datasource_source,
checksum,
{"status_code": None},
connected_by="collection",
@@ -205,9 +215,11 @@ async def run_collector_task(collector_name: str):
logger.info_event(
"Collector completed",
event="collector.run.completed",
context={"collector_name": collector_name, "datasource_id": datasource.id, "result": task_result},
context={"collector_name": collector_name, "datasource_id": datasource_id, "result": task_result},
)
except asyncio.CancelledError:
await db.rollback()
datasource = await db.get(DataSource, datasource_id)
datasource.last_run_at = datetime.now(UTC)
datasource.last_status = "cancelled"
await db.commit()
@@ -218,6 +230,8 @@ async def run_collector_task(collector_name: str):
)
raise
except Exception as exc:
await db.rollback()
datasource = await db.get(DataSource, datasource_id)
datasource.last_run_at = datetime.now(UTC)
datasource.last_status = "failed"
await db.commit()