Skip to content

event-sorcery and sqlite-es#1

Merged
0xgleb merged 2 commits into
masterfrom
feat/license
May 14, 2026
Merged

event-sorcery and sqlite-es#1
0xgleb merged 2 commits into
masterfrom
feat/license

Conversation

@0xgleb

@0xgleb 0xgleb commented May 9, 2026

Copy link
Copy Markdown
Collaborator

Closes RAI-458.

What?

Adds an MIT License to the repository, attributed to ST0x Technology.

Why?

The project lacked a license, which is necessary to define the legal terms under which the software can be used, modified, and distributed.

How?

Added a standard MIT License file granting broad permissions to use, copy, modify, merge, publish, distribute, sublicense, and sell the software, provided the copyright notice is retained.


Summary by CodeRabbit

  • Chores
    • Added MIT License to the project.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 9, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request adds a LICENSE file containing the complete MIT License text with a 2026 copyright attribution to ST0x Technology. This establishes the project's open-source licensing framework.

Changes

License Setup

Layer / File(s) Summary
License File
LICENSE
MIT License text is added with copyright attribution to ST0x Technology for 2026.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 A license laid upon the ground,
MIT's wisdom, clear and sound,
ST0x Technology's name inscribed,
Now open-source, for all to guide! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title 'event-sorcery and sqlite-es' does not match the actual changeset, which adds an MIT LICENSE file to the repository with copyright by ST0x Technology. Update the title to accurately reflect the main change, such as 'chore: add MIT LICENSE' or 'Add MIT License to repository'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/license

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

0xgleb commented May 9, 2026

Copy link
Copy Markdown
Collaborator Author

@0xgleb 0xgleb mentioned this pull request May 9, 2026
@0xgleb 0xgleb requested review from JuaniRios, findolor and hardyjosh May 9, 2026 07:46
@0xgleb 0xgleb self-assigned this May 9, 2026
@0xgleb 0xgleb marked this pull request as ready for review May 9, 2026 07:47
@linear

linear Bot commented May 9, 2026

Copy link
Copy Markdown

RAI-458

MIT LICENSE plus repo-wide configuration that applies to every PR in the stack: .gitignore, .yamlfmt (formatter config), and .coderabbit.yaml (review automation).
@0xgleb 0xgleb mentioned this pull request May 9, 2026
@0xgleb 0xgleb mentioned this pull request May 14, 2026
* feat: nix dev shell + direnv

Rainix-based nix flake providing the rust toolchain, sqlx-cli, cargo-expand, cargo-nextest, and the pre-commit hooks listed in .pre-commit-config.yaml. .envrc auto-loads the shell via nix-direnv. flake.lock pins all inputs for reproducibility.

* feat: copy sqlite-es and event-sorcery crates (#3)

* feat: workspace + copy sqlite-es and event-sorcery crates

Crates copied verbatim from st0x.issuance (sqlite-es) and st0x.liquidity (event-sorcery). Adds workspace Cargo.toml with strict lints (warnings/clippy::all/pedantic/nursery/unwrap_used/expect_used denied; unsafe_code forbidden), clippy.toml exempting unwrap/expect in tests, and the canonical events+snapshots schema migration. Workspace dependency versions audited and bumped to current semver-compatible releases. cqrs-es held at 0.4.12 — 0.5.0 is a major bump pending deliberate upgrade.

* feat: AGENTS.md, README, and docs (cqrs, sqlx, ttdd) (#4)

* feat: AGENTS.md, SPEC.md, README, and docs

AGENTS.md adapted from upstream st0x conventions, trimmed to the rules that apply here (drops alloy/brokerage/onchain bits). SPEC.md describes the library's goals, components, and behavior. docs/domain.md is the CQRS/ES glossary and naming conventions. docs/cqrs.md is a usage reference. docs/sqlx.md is the running pitfall log. docs/ttdd.md is the type-driven TDD methodology. CLAUDE.md is a symlink to AGENTS.md so both names resolve to the same source of truth.

* feat: GitHub Actions CI (#5)

* feat: GitHub Actions CI

Matrix runs cargo check / nextest / clippy / fmt --check, plus a separate job for pre-commit hooks. Every step uses 'nix develop -c …' so CI runs the same toolchain as local dev. Caches ~/.cargo and target/ keyed on lockfile + flake.lock.

* feat: replace SqliteProjectionRepo with RepoFamily GAT (#6)

* feat: replace SqliteProjectionRepo with ViewBackend GAT

The previous design parameterized Projection over a Repo type that was bound to ViewRepository<Lifecycle<Entity>, Lifecycle<Entity>>. That bound named the pub(crate) Lifecycle type in a public position, tripping the private_bounds lint, and was suppressed with #[allow(private_bounds)] in three impl blocks pending the crate's extraction.

ViewBackend is a GAT-on-trait HKT emulation: a ViewBackend instance is a type-level function (View, Aggregate) -> SomeRepo. Projection<Entity, Backend: ViewBackend> applies the function internally to obtain Backend::Repo<Lifecycle<Entity>, Lifecycle<Entity>>, so Lifecycle saturation happens inside the struct/method bodies, not in any public bound. SqliteViewBackend is the default. The three #[allow(private_bounds)] suppressions are removed. Test repos InMemoryRepo<View, Agg> and ConflictingRepo<View, Agg> made generic with paired ViewBackend adapters so existing tests still compile.

* docs: add examples of how to use the repo (#7)

Adds a runnable examples/ directory at the workspace root covering the
core event-sorcery surface:

- basic_entity: smallest setup -- EventSourced, Store, send/load,
  load_entity, send_command, load_all_ids, count_aggregates,
  load_ids_paginated, compact_events, incremental_vacuum.
- projection: Materialized = Table with a SQLite generated column for
  filtered queries; load/load_all/filter/rebuild/rebuild_all; injects a
  domain Service via Arc<dyn Clock>.
- reactor: multi-entity StockAlert reactor wired across two stores plus
  a single-entity AuditLog reactor running alongside an auto-projection.

Each example has a README.md explaining the concept and a #[cfg(all(test,
feature = "test-support"))] mod tests block exercising replay,
TestHarness, TestStore, SpyReactor, and ReactorHarness. examples/README.md
indexes the three; the repo-root README.md links to it.

CI now runs every example in a dedicated matrix job and includes
--all-targets so example test modules execute under cargo nextest.
@0xgleb 0xgleb enabled auto-merge May 14, 2026 15:41
@0xgleb 0xgleb removed the request for review from hardyjosh May 14, 2026 15:50
@0xgleb 0xgleb changed the title chore: add MIT LICENSE event-sorcery and sqlite-es May 14, 2026
@0xgleb 0xgleb disabled auto-merge May 14, 2026 16:05
@0xgleb 0xgleb merged commit 1557172 into master May 14, 2026
14 checks passed
@0xgleb 0xgleb deleted the feat/license branch May 14, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants