Skip to content

fix: removes circular dependencies to make crate publishing hell go away#18

Merged
bordumb merged 15 commits intomainfrom
fn-12
Mar 4, 2026
Merged

fix: removes circular dependencies to make crate publishing hell go away#18
bordumb merged 15 commits intomainfrom
fn-12

Conversation

@bordumb
Copy link
Contributor

@bordumb bordumb commented Mar 4, 2026

No description provided.

bordumb added 15 commits March 4, 2026 03:13
Move create_test_keypair, get_shared_keypair, gen_keypair from
auths-test-utils into auths-crypto/src/testing.rs behind a
test-utils feature gate.
- Disable jsonschema default features in auths-id and auths-cli to
  remove transitive reqwest dependency (resolve-http not needed)
- Ignore RUSTSEC-2023-0071 (rsa Marvin Attack via ssh-key transitive dep,
  no fix available until ssh-key upgrades to rsa v0.10+)
auths-telemetry: add MemoryEventSink and event_sink_contract_tests!
macro behind test-utils feature gate.

auths-verifier: add MockClock (fixed-time ClockProvider) behind
test-utils feature gate, chaining auths-crypto/test-utils.
…d InMemoryStorage

Move DeterministicUuidProvider (UuidProvider fake) and InMemoryStorage
(6 storage port trait fakes) from auths-test-utils into auths-core/testing.
Chain test-utils feature to auths-crypto/test-utils.
Move init_test_repo, get_cloned_test_repo, copy_directory from
auths-test-utils into auths-infra-git/src/testing.rs behind a
test-utils feature gate with tempfile as optional dep.
…s, and mocks

Move FakeRegistryBackend, FakeAttestationSink/Source, FakeIdentityStorage,
test_inception_event/test_attestation fixtures, registry_backend_contract_tests!
macro, and MockIdentityStorage/MockAttestationSource from auths-test-utils
into auths-id/src/testing/ behind #[cfg(any(test, feature = "test-utils"))].

Fix clock injection violation in FakeRegistryBackend::metadata() by replacing
chrono::Utc::now() with DateTime::UNIX_EPOCH.

Contract macro paths rewritten from auths_test_utils::fixtures::* to
$crate::testing::fixtures::* for proper cross-crate resolution.
Move FakeGitLogProvider, FakeGitDiagnosticProvider, FakeCryptoDiagnosticProvider
and git_log_provider_contract_tests! macro from auths-test-utils into
auths-sdk/src/testing/ behind #[cfg(any(test, feature = "test-utils"))].

Contract macro paths rewritten to use $crate:: for cross-crate resolution.
Feature chains to auths-id/test-utils.
…st-utils

Update import paths across workspace:
- auths_test_utils::crypto::* -> auths_crypto::testing::*
- auths_test_utils::fakes::registry -> auths_id::testing::fakes
- auths_test_utils::fakes::attestation -> auths_id::testing::fakes
- auths_test_utils::fakes::identity_storage -> auths_id::testing::fakes
- auths_test_utils::fakes::clock -> auths_verifier::testing
- auths_test_utils::fakes::id -> auths_core::testing
- auths_test_utils::fakes::git -> auths_sdk::testing::fakes
- auths_test_utils::fakes::diagnostics -> auths_sdk::testing::fakes
- auths_test_utils::git -> auths_infra_git::testing
- auths_test_utils::registry_backend_contract_tests! -> auths_id macro
- auths_test_utils::git_log_provider_contract_tests! -> auths_sdk macro

Remove auths-test-utils from dev-dependencies of all consumer crates.
All test utilities have been distributed to their owning crates behind
per-crate test-utils features. The monolithic auths-test-utils is no
longer needed.

Removed from workspace members, workspace dependencies, and deny.toml
git2 wrapper list.
Split trait definitions from git implementations so AttestationSource,
AttestationSink, IdentityStorage, and ManagedIdentity are available
without the git-storage feature. Git implementations moved to separate
_git.rs files gated behind #[cfg(feature = "git-storage")]. Removed
git-storage from test-utils feature chain.
…rage

Move GitAttestationStorage, GitIdentityStorage, and GitRefSink to
auths-storage::git as standalone modules. Refactor initialize_keri_identity
to accept &dyn IdentityStorage and IndexedAttestationStorage to accept
Box<dyn AttestationSource>, removing direct coupling to concrete Git types.
Move git-backed contract tests, concurrent_writes tests, and registry
benchmark from auths-id to auths-storage. Keep only in-memory fake tests
in auths-id. Remove auths-storage dev-dependency from auths-id to
eliminate circular dev-dependency.
Add a second nextest run with --all-features to catch test-utils module
regressions. Add missing description/repository/readme to auths-storage
Cargo.toml for crates.io publishing.
Update CLAUDE.md crate architecture to reflect the actual 7-layer model
after the dependency refactor. Mark dependency-architecture-refactor.md
as complete.
Reflects the completed workspace restructuring: 7-layer dependency model,
per-crate test-utils features, trait/implementation split, removal of
auths-test-utils monolith, and updated feature flag documentation.
@bordumb bordumb self-assigned this Mar 4, 2026
@vercel
Copy link

vercel bot commented Mar 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
auths Ready Ready Preview, Comment Mar 4, 2026 9:52am

@bordumb bordumb merged commit c290827 into main Mar 4, 2026
6 of 8 checks passed
@bordumb bordumb deleted the fn-12 branch March 8, 2026 00:29
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.

1 participant