Repository navigation
Publish the first Epoch crate as epoch-journal 0.1.0 - #18
Merged
Merged
Conversation
The service-backed tests read three connection strings and nothing in the repo said so, so a fresh checkout panics with "File .env or Env Vars not found" and no way to learn the variable names. .env.example documents all three and the README says how to run the suite. Postgres had no compose service at all: the test helper falls back to a hardcoded connection string pointing at a different project's database, which only works on a machine that happens to be running it. The new service publishes on 54321 to stay clear of both a system postgres and that container, and the backend migrates its own schema onto it. The obsolete compose version attribute goes too; it only ever printed a warning. The hardcoded fallback in the test helper is left alone: it is live on this machine and changing it is a behavior call, not a packaging one.
Review of the previous commit found the env template documented a variable that did nothing. The postgres helper reads EPOCH_PG_TEST_URL through std::env::var while only the redis and esdb helpers load .env, so a connection string set in .env was ignored and the hardcoded fallback ran instead - silently pointing the suite at an unrelated project's database. Proven before and after: with .env aimed at a dead port the tests passed, and now they fail. The service also bound to every interface with throwaway credentials and carried a restart policy it has no business having as a test fixture. It binds to loopback now and stays down until asked for.
The helper fell back to a hardcoded connection string naming another project's database. These tests migrate schema and write events into whatever they connect to, so an unset or misspelled variable was not a harmless default - it silently pointed the suite at someone else's data. There is no safe database to guess, so the variable is required and the run stops without it. Verified both ways: the suite passes driven by .env, and with .env removed every postgres test fails with the message naming .env.example rather than connecting anywhere.
Package the current Decider API for its first public release. Update the backend dependencies and test checks to support the release gates. Card: E17 Card: E23
Wait for EventStoreDB's asynchronous category projection only. Other backends keep an immediate category assertion, and read errors fail without retrying. Card: E23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Package Epoch's current Decider API as
epoch-journal0.1.0 while keepingepochas the Rust import. The README has a compiled counter example and backend setup. The manifest adds crates.io metadata and Rust 1.88 CI checks. EventStoreDB moves to client 4.0 to remove vulnerabilities in its older dependency tree.The branch also contains three earlier local
maincommits for the test environment. They add Compose services and require an explicit PostgreSQL test URL.cargo testandcargo test --all-featurespassed against isolated services. The README doctest,cargo publish --dry-run, dependency audit, and archive leak scan passed locally. The audit records one user-approved exception for unmaintainedrustls-pemfilethroughtonic. The streams and saga work stays on PR #17 for the later release.