Skip to content

v0.1.0-beta.6 🚀

Pre-release
Pre-release

Choose a tag to compare

@alialfostovar alialfostovar released this 16 Jul 10:11
· 344 commits to master since this release
0f4dfbf

Welcome 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__.py using 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.status incorrectly mutated to project.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:

  1. GitHub Actions Test Suite (CI): Deployed automated pull-request code quality gates using ruff check linting and the hatch test suite (blocking merges unless all status checks are green).
  2. Standardized Issue Templates: Added customized Bug Report and Feature Request templates to capture environmental diagnostics (DB engines, SQLAlchemy, and Redis versions).
  3. Automated Semantic Changelogs: Configured .github/release.yml to automatically categorize pull requests under semantic sections based on metadata tags.
  4. Community Guidelines: Introduced formal CONTRIBUTING.md and SECURITY.md files to clarify local setup steps and private vulnerability reporting workflows.