Repository navigation
v0.1.0-beta.6 🚀
Pre-releaseWelcome to v0.1.0-beta.6 of the ZCore Framework! 🚀
This release represents a significant step forward in robust data handling, security validation, and comprehensive project governance. Following our core philosophy of Engineered Simplicity (KISS), we have addressed critical edge-cases in timezone serialization, refined schema semantics to align with Domain-Driven Design (DDD), and overhauled our repository's testing and automation pipelines to provide an out-of-the-box, production-ready developer experience (DX).
🚀 Core Architectural Refinements
🌐 Decoupled Presentation Layer Domain (__model__)
In Zchema (zcore/web/projection.py), we have officially deprecated the class attribute __db_name__ in favor of a more semantic and architecturally accurate attribute: __model__.
- The Rationale: Schemas (DTOs) belong purely to the presentation layer and should not be tightly coupled to database nomenclature by name.
- The Alignment: All internal recursion, pruning logics, and CLI code-generation templates have been fully migrated to use
__model__for strict domain binding.
🔌 Lazy-Loaded Root Namespace Imports
Developers can now import highly utilized core framework constructs directly from the root namespace:
from zcore import RouteKey, Plugin- Previously, this forced developers to write long, internal import paths.
- We implemented dynamic, lazy-loaded import resolutions within
src/zcore/__init__.pyusing Python's dynamic__getattr__block, ensuring no performance or startup overhead during initialization.
🐛 Data Integrity & Security Fixes
🔢 Precision-Preserving Decimal Serialization
Changed JSON encoding for Decimal instances from standard floating-point (float) to string (str) inside the CustomJSONEncoder.
- The Fix: Converting Decimals to floats introduces floating-point arithmetic inaccuracies and precision loss right before data is dispatched to clients.
- The Result: Preserves exact decimal precision, establishing the industry standard for financial calculations and highly accurate APIs.
🗺️ Timezone-Aware Pagination Cursors
Refactored the _encode_cursor method inside zcore/db/pagination.py to intercept naive datetime instances.
- Naive datetimes are now explicitly normalized to UTC, and timezone-aware instances are converted safely to UTC before being base64 encoded into cursor payloads.
- Resolves cursor misalignment and timezone-awareness dropouts in geographically distributed deployments.
🛡️ Robust Security Path Normalization
Eliminated overzealous string prefix stripping in path resolutions inside SearchEngine and Zchema.
- Previously,
path.replace("resource.", "")acted globally and would corrupt legitimate nested relation paths (e.g.,project.resource.statusincorrectly mutated toproject.status). - Replaced with a strict, localized prefix-matching resolution to secure nested relationships without false positives during access checks.
⏱️ Native ISO-8601 Datetime Parsing
Simplified UTC datetime coercion in zcore/db/search.py by removing legacy .replace("Z", "+00:00") string manipulation workarounds. The coercion layer now fully relies on native, optimized Python 3.11+ datetime.fromisoformat() UTC suffix parsing out-of-the-box.
⚙️ Automated CI/CD & Project Governance
To prepare ZCore for robust open-source contributions and strict production deployments, we have fully automated our repository workflows:
- GitHub Actions Test Suite (CI): Deployed automated pull-request code quality gates using
ruff checklinting and thehatch testsuite (blocking merges unless all status checks are green). - Standardized Issue Templates: Added customized Bug Report and Feature Request templates to capture environmental diagnostics (DB engines, SQLAlchemy, and Redis versions).
- Automated Semantic Changelogs: Configured
.github/release.ymlto automatically categorize pull requests under semantic sections based on metadata tags. - Community Guidelines: Introduced formal
CONTRIBUTING.mdandSECURITY.mdfiles to clarify local setup steps and private vulnerability reporting workflows.