From 1b990da025aa7f2722e89b972e4a741eb3ec6155 Mon Sep 17 00:00:00 2001 From: pinodeca Date: Thu, 28 May 2026 08:00:32 -0500 Subject: [PATCH 1/7] docs: add public repository guidance --- CODE_OF_CONDUCT.md | 10 ++++++++++ CONTRIBUTING.md | 49 ++++++++++++++++++++++++++++++---------------- README.md | 36 +++++++++++++++++++++++++++++++--- 3 files changed, 75 insertions(+), 20 deletions(-) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..89fa0cc --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,10 @@ +# Microsoft Open Source Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns +- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support) \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 459bb11..6d22ea0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,31 +2,46 @@ Thanks for your interest in improving duroxide! -Before submitting changes, please review this checklist: - -- Code - - [ ] Build passes locally (`cargo test`) - - [ ] Lints/clippy (if applicable) are clean - - [ ] Tests added or updated for behavior changes -- Documentation - - [ ] Does this change affect existing docs? Update them. - - [ ] Is this a new surface area or concept? Add a doc under `docs/`. - - [ ] Link new docs from `docs/README.md`. -- Design notes (optional but encouraged) - - [ ] For non-trivial changes, include a short design rationale in the PR description with code pointers. +This project welcomes contributions and suggestions. Most contributions require you to +agree to a Contributor License Agreement (CLA) declaring that you have the right to, +and actually do, grant us the rights to use your contribution. For details, visit +https://cla.microsoft.com. + +When you submit a pull request, a CLA-bot will automatically determine whether you need +to provide a CLA and decorate the PR appropriately (for example, label or comment). +Simply follow the instructions provided by the bot. You will only need to do this once +across all repositories using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +## Reporting security issues + +Please do not report security vulnerabilities through public GitHub issues. Follow the instructions in [SECURITY.md](SECURITY.md). ## Development workflow -- Write or update tests first (happy path + 1-2 edge cases). +- Write or update tests first for behavior changes. - Keep public APIs stable where possible; note breakages clearly. - Prefer small, focused commits with descriptive messages. +- For non-trivial changes, include a short design rationale in the pull request description with code pointers. +- Update documentation when a change affects existing docs, introduces a new surface area, or changes behavior users rely on. -## Running tests +Before opening a pull request, run the checks relevant to your change: +```bash +cargo nt +cargo clippy --all-targets --all-features +cargo test --doc ``` -cargo test + +For broader runtime changes, also run the comprehensive two-pass suite: + +```bash +./run-tests.sh ``` -## Filing PRs +## Filing pull requests -Use the PR template in `.github/pull_request_template.md`. Fill in the docs checkboxes. +Use the pull request template in [.github/pull_request_template.md](.github/pull_request_template.md) and fill in the docs checkboxes. diff --git a/README.md b/README.md index d2f2c9f..6f1967d 100644 --- a/README.md +++ b/README.md @@ -203,15 +203,21 @@ that fits how you want to author and host your workflows: are available (SQLite built-in, PostgreSQL via [duroxide-pg](https://github.com/microsoft/duroxide-pg), or bring your own). - **[duroxide-python](https://github.com/microsoft/duroxide-python)** — Python - SDK over the duroxide runtime. Use this when you want to author workflows in + SDK over the Duroxide runtime. Use this when you want to author workflows in **Python**. - **[duroxide-node](https://github.com/microsoft/duroxide-node)** — Node.js / - TypeScript SDK over the duroxide runtime. Use this when you want to author + TypeScript SDK over the Duroxide runtime. Use this when you want to author workflows in **JavaScript / TypeScript**. - **[duroxide-pg](https://github.com/microsoft/duroxide-pg)** — PostgreSQL - provider for the duroxide runtime. Plug this into duroxide / duroxide-python / + provider for the Duroxide runtime. Plug this into duroxide / duroxide-python / duroxide-node when you want **PostgreSQL** as the durable store. +### Notes +- Import as `duroxide` in Rust source. +- Timers are real time (Tokio sleep). External events are via `Runtime::raise_event`. +- Unknown-instance messages are logged and dropped. Providers persist history only (queues are in-memory runtime components). +- Logging is replay-safe by treating it as a system activity via `ctx.trace_*` helpers; logs are emitted through tracing at completion time (not persisted as history events). + ## Learn more - **[Orchestration Guide](docs/ORCHESTRATION-GUIDE.md)** — the complete guide to writing workflows. @@ -231,3 +237,27 @@ cargo test --all -- --nocapture # Run all tests See [CHANGELOG.md](CHANGELOG.md) for release notes and [CONTRIBUTING.md](CONTRIBUTING.md) to get involved. + +## Support + +Use GitHub Issues for bug reports and feature requests. Do not report security vulnerabilities through public GitHub issues; follow the instructions in [SECURITY.md](SECURITY.md) instead. + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or comments. + +## Security + +Microsoft takes the security of our software products and services seriously. Please do not report security vulnerabilities through public GitHub issues. See [SECURITY.md](SECURITY.md) for security reporting instructions. + +## Privacy and Telemetry + +Duroxide does not send telemetry to Microsoft. Applications may configure their own logging or metrics exporters; those signals are controlled by the application owner. + +## Trademarks + +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third-party policies. + +## License + +MIT License - see [LICENSE](LICENSE) for details. From a88b8213cb9f89bc73619ff0db5ee5b1a42a1697 Mon Sep 17 00:00:00 2001 From: pinodeca Date: Thu, 28 May 2026 08:21:21 -0500 Subject: [PATCH 2/7] docs: add copyright headers --- examples/delays_and_timeouts.rs | 3 +++ examples/fan_out_fan_in.rs | 3 +++ examples/hello_world.rs | 3 +++ examples/metrics_cli.rs | 3 +++ examples/timers_and_events.rs | 3 +++ examples/with_observability.rs | 3 +++ migrations/20240101000000_initial_schema.sql | 3 +++ migrations/20240102000000_add_attempt_count.sql | 3 +++ migrations/20240103000000_add_worker_visible_at.sql | 3 +++ migrations/20240104000000_add_worker_activity_identity.sql | 3 +++ migrations/20240105000000_add_parent_instance_id.sql | 3 +++ migrations/20240106000000_add_pinned_version.sql | 3 +++ migrations/20240107000000_add_sessions.sql | 3 +++ migrations/20240108000000_add_custom_status.sql | 3 +++ migrations/20240109000000_add_activity_tags.sql | 3 +++ migrations/20240110000000_add_kv_store.sql | 3 +++ migrations/20240111000000_add_kv_last_updated.sql | 3 +++ migrations/20240112000000_add_kv_delta.sql | 3 +++ run-stress-tests.sh | 3 +++ run-tests.sh | 3 +++ sqlite-stress/src/bin/large-payload-stress.rs | 3 +++ sqlite-stress/src/bin/sqlite-stress.rs | 3 +++ sqlite-stress/src/lib.rs | 3 +++ sqlite-stress/track-results.sh | 3 +++ src/client/mod.rs | 3 +++ src/combinators.rs | 3 +++ src/lib.rs | 3 +++ src/provider_stress_test/core.rs | 3 +++ src/provider_stress_test/large_payload.rs | 3 +++ src/provider_stress_test/mod.rs | 3 +++ src/provider_stress_test/parallel_orchestrations.rs | 3 +++ src/provider_stress_tests.rs | 3 +++ src/provider_validation/atomicity.rs | 3 +++ src/provider_validation/bulk_deletion.rs | 3 +++ src/provider_validation/cancellation.rs | 3 +++ src/provider_validation/capability_filtering.rs | 3 +++ src/provider_validation/custom_status.rs | 3 +++ src/provider_validation/deletion.rs | 3 +++ src/provider_validation/error_handling.rs | 3 +++ src/provider_validation/instance_creation.rs | 3 +++ src/provider_validation/instance_locking.rs | 3 +++ src/provider_validation/kv_store.rs | 3 +++ src/provider_validation/lock_expiration.rs | 3 +++ src/provider_validation/long_polling.rs | 3 +++ src/provider_validation/management.rs | 3 +++ src/provider_validation/mod.rs | 3 +++ src/provider_validation/multi_execution.rs | 3 +++ src/provider_validation/poison_message.rs | 3 +++ src/provider_validation/prune.rs | 3 +++ src/provider_validation/queue_semantics.rs | 3 +++ src/provider_validation/sessions.rs | 3 +++ src/provider_validation/tag_filtering.rs | 3 +++ src/provider_validations.rs | 3 +++ src/providers/error.rs | 3 +++ src/providers/instrumented.rs | 3 +++ src/providers/management.rs | 3 +++ src/providers/mod.rs | 3 +++ src/providers/sqlite.rs | 3 +++ src/runtime/dispatchers/mod.rs | 3 +++ src/runtime/dispatchers/orchestration.rs | 3 +++ src/runtime/dispatchers/worker.rs | 3 +++ src/runtime/execution.rs | 3 +++ src/runtime/limits.rs | 3 +++ src/runtime/mod.rs | 3 +++ src/runtime/observability.rs | 3 +++ src/runtime/registry.rs | 3 +++ src/runtime/replay_engine.rs | 3 +++ src/runtime/replay_engine_tests.rs | 3 +++ src/runtime/state_helpers.rs | 3 +++ src/runtime/test_hooks.rs | 3 +++ tests/activity_routing_tests.rs | 3 +++ tests/async_block_tests.rs | 3 +++ tests/bulk_deletion_integration_tests.rs | 3 +++ tests/cancellation_tests.rs | 3 +++ tests/capability_filtering_tests.rs | 3 +++ tests/common/fault_injection.rs | 3 +++ tests/common/mod.rs | 3 +++ tests/common/tracing_capture.rs | 3 +++ tests/concurrency_tests.rs | 3 +++ tests/continue_as_new_tests.rs | 3 +++ tests/custom_status_tests.rs | 3 +++ tests/deletion_integration_tests.rs | 3 +++ tests/dispatcher_queues_fs.rs | 3 +++ tests/e2e_samples.rs | 3 +++ tests/errors_tests.rs | 3 +++ tests/futures_tests.rs | 3 +++ tests/kv_store_tests.rs | 3 +++ tests/lock_timeout_tests.rs | 3 +++ tests/long_poll_tests.rs | 3 +++ tests/management_interface_test.rs | 3 +++ tests/nondeterminism_tests.rs | 3 +++ tests/observability_tests.rs | 3 +++ tests/orchestration_status_tests.rs | 3 +++ tests/poison_message_tests.rs | 3 +++ tests/property_tests.rs | 3 +++ tests/provider_atomic_tests.rs | 3 +++ tests/provider_stress_test_validation.rs | 3 +++ tests/prune_integration_tests.rs | 3 +++ tests/queue_event_tests.rs | 3 +++ tests/races_tests.rs | 3 +++ tests/recovery_tests.rs | 3 +++ tests/registry_tests.rs | 3 +++ tests/reliability_tests.rs | 3 +++ tests/replay_engine/action_to_event.rs | 3 +++ tests/replay_engine/cancellation.rs | 3 +++ tests/replay_engine/completion_messages.rs | 3 +++ tests/replay_engine/composition.rs | 3 +++ tests/replay_engine/edge_cases.rs | 3 +++ tests/replay_engine/event_allocation.rs | 3 +++ tests/replay_engine/failure_handling.rs | 3 +++ tests/replay_engine/fresh_execution.rs | 3 +++ tests/replay_engine/helpers.rs | 3 +++ tests/replay_engine/history_corruption.rs | 3 +++ tests/replay_engine/is_replaying.rs | 3 +++ tests/replay_engine/kv.rs | 3 +++ tests/replay_engine/mod.rs | 3 +++ tests/replay_engine/nondeterminism.rs | 3 +++ tests/replay_engine/panic_handling.rs | 3 +++ tests/replay_engine/partial_completion.rs | 3 +++ tests/replay_engine/replay_with_completions.rs | 3 +++ tests/replay_engine/sequential_progress.rs | 3 +++ tests/replay_engine/sub_orchestration.rs | 3 +++ tests/replay_engine/unobserved_futures.rs | 3 +++ tests/replay_engine_tests.rs | 3 +++ tests/runtime_options_test.rs | 3 +++ tests/scenarios.rs | 3 +++ tests/scenarios/copilot_chat.rs | 3 +++ tests/scenarios/replay_versioning.rs | 3 +++ tests/scenarios/rolling_deployment.rs | 3 +++ tests/scenarios/sessions.rs | 3 +++ tests/scenarios/single_thread.rs | 3 +++ tests/scenarios/toygres.rs | 3 +++ tests/scenarios/version_replay_bug.rs | 3 +++ tests/schedule_with_retry_tests.rs | 3 +++ tests/session_e2e_tests.rs | 3 +++ tests/sqlite_provider_validations.rs | 3 +++ tests/sqlite_tests.rs | 3 +++ tests/system_calls_test.rs | 3 +++ tests/tag_serde_tests.rs | 3 +++ tests/timer_tests.rs | 3 +++ tests/typed_composability_tests.rs | 3 +++ tests/unit_tests.rs | 3 +++ tests/unregistered_backoff_tests.rs | 3 +++ tests/versioning_tests.rs | 3 +++ tests/worker_reliability_test.rs | 3 +++ 145 files changed, 435 insertions(+) diff --git a/examples/delays_and_timeouts.rs b/examples/delays_and_timeouts.rs index 824eea0..66b95b1 100644 --- a/examples/delays_and_timeouts.rs +++ b/examples/delays_and_timeouts.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/examples/fan_out_fan_in.rs b/examples/fan_out_fan_in.rs index 1a02377..99ed6a1 100644 --- a/examples/fan_out_fan_in.rs +++ b/examples/fan_out_fan_in.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Fan-Out/Fan-In Pattern Example //! //! This example demonstrates parallel execution of multiple activities diff --git a/examples/hello_world.rs b/examples/hello_world.rs index f11a761..ea3ac2d 100644 --- a/examples/hello_world.rs +++ b/examples/hello_world.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Hello World Example - Start here to learn Duroxide basics //! //! This example demonstrates: diff --git a/examples/metrics_cli.rs b/examples/metrics_cli.rs index 98849f3..5350d15 100644 --- a/examples/metrics_cli.rs +++ b/examples/metrics_cli.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Interactive observability dashboard for duroxide. //! //! This CLI tool demonstrates how to consume and display duroxide metrics diff --git a/examples/timers_and_events.rs b/examples/timers_and_events.rs index 28ee5f9..0dcd20e 100644 --- a/examples/timers_and_events.rs +++ b/examples/timers_and_events.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Timers and External Events Example //! //! This example demonstrates: diff --git a/examples/with_observability.rs b/examples/with_observability.rs index 432c676..49fdd8c 100644 --- a/examples/with_observability.rs +++ b/examples/with_observability.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Example demonstrating duroxide with observability enabled. //! //! This example shows how to configure structured logging and metrics diff --git a/migrations/20240101000000_initial_schema.sql b/migrations/20240101000000_initial_schema.sql index df3a556..4d2f878 100644 --- a/migrations/20240101000000_initial_schema.sql +++ b/migrations/20240101000000_initial_schema.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Initial schema for Duroxide SQLite provider -- Instance metadata diff --git a/migrations/20240102000000_add_attempt_count.sql b/migrations/20240102000000_add_attempt_count.sql index 0164ed0..1cab538 100644 --- a/migrations/20240102000000_add_attempt_count.sql +++ b/migrations/20240102000000_add_attempt_count.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add attempt_count column for poison message detection -- Add attempt_count to orchestrator_queue (non-negative integer) diff --git a/migrations/20240103000000_add_worker_visible_at.sql b/migrations/20240103000000_add_worker_visible_at.sql index 78c2bef..9555c4e 100644 --- a/migrations/20240103000000_add_worker_visible_at.sql +++ b/migrations/20240103000000_add_worker_visible_at.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add visible_at column to worker_queue for proper visibility control -- This mirrors the orchestrator_queue pattern where visibility and locking are separate concerns diff --git a/migrations/20240104000000_add_worker_activity_identity.sql b/migrations/20240104000000_add_worker_activity_identity.sql index 64b890f..e86ea0e 100644 --- a/migrations/20240104000000_add_worker_activity_identity.sql +++ b/migrations/20240104000000_add_worker_activity_identity.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add activity identity columns to worker_queue for efficient cancellation lookups -- These columns denormalize the activity identity from the work_item JSON diff --git a/migrations/20240105000000_add_parent_instance_id.sql b/migrations/20240105000000_add_parent_instance_id.sql index f8b905f..0efb605 100644 --- a/migrations/20240105000000_add_parent_instance_id.sql +++ b/migrations/20240105000000_add_parent_instance_id.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add parent_instance_id to instances table for cascading delete support -- NULL means this is a root orchestration, non-NULL means it's a sub-orchestration diff --git a/migrations/20240106000000_add_pinned_version.sql b/migrations/20240106000000_add_pinned_version.sql index 61fbdfb..594746b 100644 --- a/migrations/20240106000000_add_pinned_version.sql +++ b/migrations/20240106000000_add_pinned_version.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add pinned duroxide version columns to executions table for capability filtering. -- These columns store the semver version of the runtime that created this execution, -- allowing the provider to filter work items by replay engine compatibility. diff --git a/migrations/20240107000000_add_sessions.sql b/migrations/20240107000000_add_sessions.sql index ed7bd90..6989b34 100644 --- a/migrations/20240107000000_add_sessions.sql +++ b/migrations/20240107000000_add_sessions.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add session_id column to worker_queue for session-based worker affinity routing ALTER TABLE worker_queue ADD COLUMN session_id TEXT; CREATE INDEX idx_worker_queue_session ON worker_queue(session_id); diff --git a/migrations/20240108000000_add_custom_status.sql b/migrations/20240108000000_add_custom_status.sql index 43760c7..d68bf20 100644 --- a/migrations/20240108000000_add_custom_status.sql +++ b/migrations/20240108000000_add_custom_status.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add custom_status columns to instances table (survives continue_as_new) ALTER TABLE instances ADD COLUMN custom_status TEXT; ALTER TABLE instances ADD COLUMN custom_status_version INTEGER NOT NULL DEFAULT 0; diff --git a/migrations/20240109000000_add_activity_tags.sql b/migrations/20240109000000_add_activity_tags.sql index ef7c15d..7d7ca5b 100644 --- a/migrations/20240109000000_add_activity_tags.sql +++ b/migrations/20240109000000_add_activity_tags.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add tag column to worker_queue for activity routing to specialized workers ALTER TABLE worker_queue ADD COLUMN tag TEXT; CREATE INDEX idx_worker_queue_tag ON worker_queue(tag); diff --git a/migrations/20240110000000_add_kv_store.sql b/migrations/20240110000000_add_kv_store.sql index a7dcb8e..1cef069 100644 --- a/migrations/20240110000000_add_kv_store.sql +++ b/migrations/20240110000000_add_kv_store.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- KV store: instance-scoped key-value pairs, materialized from history events. -- Primary key is (instance_id, key) — only the latest value per key is stored. -- execution_id tracks which execution last wrote this key (for pruning). diff --git a/migrations/20240111000000_add_kv_last_updated.sql b/migrations/20240111000000_add_kv_last_updated.sql index dc17c28..c678ca3 100644 --- a/migrations/20240111000000_add_kv_last_updated.sql +++ b/migrations/20240111000000_add_kv_last_updated.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- Add last_updated_at_ms timestamp to kv_store entries. -- Set by the runtime at set_kv_value() time, persisted by the provider. -- Pre-existing rows default to 0 (unknown update time until rewritten). diff --git a/migrations/20240112000000_add_kv_delta.sql b/migrations/20240112000000_add_kv_delta.sql index 208f12d..88e3d55 100644 --- a/migrations/20240112000000_add_kv_delta.sql +++ b/migrations/20240112000000_add_kv_delta.sql @@ -1,3 +1,6 @@ +-- Copyright (c) Microsoft Corporation. +-- Licensed under the MIT License. + -- KV delta table: captures KV mutations from the current execution only. -- Values are merged into kv_store on execution completion (Completed, CAN, Failed). -- Snapshot seeding reads from kv_store only (prior-execution state). diff --git a/run-stress-tests.sh b/run-stress-tests.sh index 8660825..8c5bc86 100755 --- a/run-stress-tests.sh +++ b/run-stress-tests.sh @@ -1,4 +1,7 @@ #!/bin/bash +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + # Run Duroxide stress tests # # This script runs the stress test suite including: diff --git a/run-tests.sh b/run-tests.sh index d4ddbc2..f91f3e5 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + # Run the full duroxide test suite in two passes: # Pass 1: --all-features (enables replay-version-test, runs v2 acceptance tests) # Pass 2: no features (runs v1 serde rejection tests — proves v2 events are rejected) diff --git a/sqlite-stress/src/bin/large-payload-stress.rs b/sqlite-stress/src/bin/large-payload-stress.rs index 05a14ac..1a2fddb 100644 --- a/sqlite-stress/src/bin/large-payload-stress.rs +++ b/sqlite-stress/src/bin/large-payload-stress.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Large Payload SQLite Stress Test Binary //! //! This binary runs the large payload stress test with SQLite provider. diff --git a/sqlite-stress/src/bin/sqlite-stress.rs b/sqlite-stress/src/bin/sqlite-stress.rs index dbdebaa..1ae7467 100644 --- a/sqlite-stress/src/bin/sqlite-stress.rs +++ b/sqlite-stress/src/bin/sqlite-stress.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! SQLite Stress Test Binary //! //! This binary runs the SQLite stress test suite across multiple configurations. diff --git a/sqlite-stress/src/lib.rs b/sqlite-stress/src/lib.rs index ca0d981..d2745e2 100644 --- a/sqlite-stress/src/lib.rs +++ b/sqlite-stress/src/lib.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! SQLite Stress Tests for Duroxide //! //! This library provides SQLite-specific stress test implementations for Duroxide, diff --git a/sqlite-stress/track-results.sh b/sqlite-stress/track-results.sh index a04ce49..dd42e79 100755 --- a/sqlite-stress/track-results.sh +++ b/sqlite-stress/track-results.sh @@ -1,4 +1,7 @@ #!/bin/bash +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + # Track stress test results with git history and rolling averages set -e diff --git a/src/client/mod.rs b/src/client/mod.rs index d24ebce..0daa3b2 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use std::sync::Arc; use tracing::info; diff --git a/src/combinators.rs b/src/combinators.rs index 3d2357c..568b3d5 100644 --- a/src/combinators.rs +++ b/src/combinators.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::{Either2, Either3}; use std::future::Future; use std::pin::Pin; diff --git a/src/lib.rs b/src/lib.rs index 2c39f77..e465352 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! # Duroxide: Durable execution framework in Rust //! //! Duroxide is a framework for building reliable, long-running code based workflows that can survive diff --git a/src/provider_stress_test/core.rs b/src/provider_stress_test/core.rs index 1e96fbb..f557783 100644 --- a/src/provider_stress_test/core.rs +++ b/src/provider_stress_test/core.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Core stress test infrastructure - types, runner, and utilities. use crate::providers::Provider; diff --git a/src/provider_stress_test/large_payload.rs b/src/provider_stress_test/large_payload.rs index 247e85b..135f9ad 100644 --- a/src/provider_stress_test/large_payload.rs +++ b/src/provider_stress_test/large_payload.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Large payload stress test scenario. //! //! Tests memory consumption and history management with large event payloads. diff --git a/src/provider_stress_test/mod.rs b/src/provider_stress_test/mod.rs index f34f091..5d92534 100644 --- a/src/provider_stress_test/mod.rs +++ b/src/provider_stress_test/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider stress test infrastructure implementation modules. pub mod core; diff --git a/src/provider_stress_test/parallel_orchestrations.rs b/src/provider_stress_test/parallel_orchestrations.rs index 6365def..df2f800 100644 --- a/src/provider_stress_test/parallel_orchestrations.rs +++ b/src/provider_stress_test/parallel_orchestrations.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Parallel orchestrations stress test scenario. //! //! Tests fan-out/fan-in orchestration patterns with concurrent instance execution. diff --git a/src/provider_stress_tests.rs b/src/provider_stress_tests.rs index 25d9c14..11091ce 100644 --- a/src/provider_stress_tests.rs +++ b/src/provider_stress_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider Stress Test Infrastructure //! //! This module provides reusable stress test infrastructure for validating custom Provider implementations diff --git a/src/provider_validation/atomicity.rs b/src/provider_validation/atomicity.rs index 794e0ad..c74ace3 100644 --- a/src/provider_validation/atomicity.rs +++ b/src/provider_validation/atomicity.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::{TagFilter, WorkItem}; diff --git a/src/provider_validation/bulk_deletion.rs b/src/provider_validation/bulk_deletion.rs index e092ee2..1363077 100644 --- a/src/provider_validation/bulk_deletion.rs +++ b/src/provider_validation/bulk_deletion.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for bulk delete instance operations. //! //! These tests verify that providers correctly implement the delete_instance_bulk API, diff --git a/src/provider_validation/cancellation.rs b/src/provider_validation/cancellation.rs index 86a9866..c209d25 100644 --- a/src/provider_validation/cancellation.rs +++ b/src/provider_validation/cancellation.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::{ScheduledActivityIdentifier, TagFilter, WorkItem}; diff --git a/src/provider_validation/capability_filtering.rs b/src/provider_validation/capability_filtering.rs index f7a1ce5..b304a37 100644 --- a/src/provider_validation/capability_filtering.rs +++ b/src/provider_validation/capability_filtering.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Capability filtering provider validation tests. //! //! These tests validate that providers correctly implement the capability filtering diff --git a/src/provider_validation/custom_status.rs b/src/provider_validation/custom_status.rs index 9147b13..eb13b79 100644 --- a/src/provider_validation/custom_status.rs +++ b/src/provider_validation/custom_status.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for custom status. //! //! These tests validate that a Provider implementation correctly handles diff --git a/src/provider_validation/deletion.rs b/src/provider_validation/deletion.rs index 312edc1..c432910 100644 --- a/src/provider_validation/deletion.rs +++ b/src/provider_validation/deletion.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for deletion operations. //! //! These tests verify that providers correctly implement the deletion API, diff --git a/src/provider_validation/error_handling.rs b/src/provider_validation/error_handling.rs index c14623f..041208e 100644 --- a/src/provider_validation/error_handling.rs +++ b/src/provider_validation/error_handling.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::INITIAL_EXECUTION_ID; use crate::provider_validation::{Event, EventKind, ExecutionMetadata, create_instance, start_item}; use crate::provider_validations::ProviderFactory; diff --git a/src/provider_validation/instance_creation.rs b/src/provider_validation/instance_creation.rs index 367b447..79a62ac 100644 --- a/src/provider_validation/instance_creation.rs +++ b/src/provider_validation/instance_creation.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::WorkItem; diff --git a/src/provider_validation/instance_locking.rs b/src/provider_validation/instance_locking.rs index 6ec0cc4..72903ef 100644 --- a/src/provider_validation/instance_locking.rs +++ b/src/provider_validation/instance_locking.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{ExecutionMetadata, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::WorkItem; diff --git a/src/provider_validation/kv_store.rs b/src/provider_validation/kv_store.rs index 7fec4cc..09d3151 100644 --- a/src/provider_validation/kv_store.rs +++ b/src/provider_validation/kv_store.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for the KV store. //! //! These tests validate that a Provider implementation correctly handles diff --git a/src/provider_validation/lock_expiration.rs b/src/provider_validation/lock_expiration.rs index f3c6ec3..3952674 100644 --- a/src/provider_validation/lock_expiration.rs +++ b/src/provider_validation/lock_expiration.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, WorkItem, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::TagFilter; diff --git a/src/provider_validation/long_polling.rs b/src/provider_validation/long_polling.rs index 49907f2..c1f9228 100644 --- a/src/provider_validation/long_polling.rs +++ b/src/provider_validation/long_polling.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Long polling validation tests for providers. //! //! These tests verify correct polling behavior. Providers that don't support long polling diff --git a/src/provider_validation/management.rs b/src/provider_validation/management.rs index 9a42b62..aa39d6b 100644 --- a/src/provider_validation/management.rs +++ b/src/provider_validation/management.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::WorkItem; diff --git a/src/provider_validation/mod.rs b/src/provider_validation/mod.rs index 72a1182..ee6266c 100644 --- a/src/provider_validation/mod.rs +++ b/src/provider_validation/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider Validation Tests //! //! Comprehensive test suite for validating provider implementations. diff --git a/src/provider_validation/multi_execution.rs b/src/provider_validation/multi_execution.rs index b3bdc4e..ddeb8f3 100644 --- a/src/provider_validation/multi_execution.rs +++ b/src/provider_validation/multi_execution.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata}; use crate::provider_validations::ProviderFactory; use crate::providers::WorkItem; diff --git a/src/provider_validation/poison_message.rs b/src/provider_validation/poison_message.rs index 1a1d0e7..242a56d 100644 --- a/src/provider_validation/poison_message.rs +++ b/src/provider_validation/poison_message.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Poison Message Detection Validation Tests //! //! These tests validate that providers correctly track attempt counts diff --git a/src/provider_validation/prune.rs b/src/provider_validation/prune.rs index af4e8bd..a8280a5 100644 --- a/src/provider_validation/prune.rs +++ b/src/provider_validation/prune.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for execution pruning operations. //! //! These tests verify that providers correctly implement the prune API, diff --git a/src/provider_validation/queue_semantics.rs b/src/provider_validation/queue_semantics.rs index c69acbc..172d692 100644 --- a/src/provider_validation/queue_semantics.rs +++ b/src/provider_validation/queue_semantics.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::provider_validation::{Event, EventKind, ExecutionMetadata, create_instance, start_item}; use crate::provider_validations::ProviderFactory; use crate::providers::{TagFilter, WorkItem}; diff --git a/src/provider_validation/sessions.rs b/src/provider_validation/sessions.rs index bef8355..cd3f723 100644 --- a/src/provider_validation/sessions.rs +++ b/src/provider_validation/sessions.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Session Routing Provider Validation Tests //! //! Tests that validate the implicit session routing contract for providers. diff --git a/src/provider_validation/tag_filtering.rs b/src/provider_validation/tag_filtering.rs index a72d695..23f8604 100644 --- a/src/provider_validation/tag_filtering.rs +++ b/src/provider_validation/tag_filtering.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tag filtering validation tests for providers. //! //! These tests verify that `fetch_work_item` correctly filters activities by tag diff --git a/src/provider_validations.rs b/src/provider_validations.rs index 138d42f..d1276a9 100644 --- a/src/provider_validations.rs +++ b/src/provider_validations.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider Validation Infrastructure //! //! This module provides reusable test infrastructure for validating custom Provider implementations. diff --git a/src/providers/error.rs b/src/providers/error.rs index e8fd6c4..255f9a8 100644 --- a/src/providers/error.rs +++ b/src/providers/error.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + /// Provider-specific error with retry classification /// /// Providers return this error type to indicate whether an error should be retried. diff --git a/src/providers/instrumented.rs b/src/providers/instrumented.rs index 6e24029..459ad93 100644 --- a/src/providers/instrumented.rs +++ b/src/providers/instrumented.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Instrumented provider wrapper that adds metrics to any provider implementation. use async_trait::async_trait; diff --git a/src/providers/management.rs b/src/providers/management.rs index 1973742..4c17532 100644 --- a/src/providers/management.rs +++ b/src/providers/management.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Management and observability provider interface. //! //! Separate from the core Provider trait, this interface provides diff --git a/src/providers/mod.rs b/src/providers/mod.rs index f1315cd..6ec684c 100644 --- a/src/providers/mod.rs +++ b/src/providers/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::Event; use std::any::Any; use std::collections::HashSet; diff --git a/src/providers/sqlite.rs b/src/providers/sqlite.rs index eda3c3a..e7632f6 100644 --- a/src/providers/sqlite.rs +++ b/src/providers/sqlite.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // SQLite provider: Mutex/lock operations should panic on poison #![allow(clippy::expect_used)] #![allow(clippy::unwrap_used)] diff --git a/src/runtime/dispatchers/mod.rs b/src/runtime/dispatchers/mod.rs index 255ec28..9a62d31 100644 --- a/src/runtime/dispatchers/mod.rs +++ b/src/runtime/dispatchers/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Dispatcher implementations for Runtime //! //! This module contains the dispatcher logic split into separate concerns: diff --git a/src/runtime/dispatchers/orchestration.rs b/src/runtime/dispatchers/orchestration.rs index 72488ab..99ef7fe 100644 --- a/src/runtime/dispatchers/orchestration.rs +++ b/src/runtime/dispatchers/orchestration.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Orchestration dispatcher implementation for Runtime //! //! This module contains the orchestration dispatcher logic that: diff --git a/src/runtime/dispatchers/worker.rs b/src/runtime/dispatchers/worker.rs index 157729d..8a2cdb5 100644 --- a/src/runtime/dispatchers/worker.rs +++ b/src/runtime/dispatchers/worker.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Worker (activity) dispatcher implementation for Runtime //! //! This module contains the worker dispatcher logic that: diff --git a/src/runtime/execution.rs b/src/runtime/execution.rs index 3d70804..c5801c5 100644 --- a/src/runtime/execution.rs +++ b/src/runtime/execution.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // Execution module uses Mutex locks - poison indicates a panic and should propagate #![allow(clippy::expect_used)] #![allow(clippy::unwrap_used)] diff --git a/src/runtime/limits.rs b/src/runtime/limits.rs index 4faf121..301d957 100644 --- a/src/runtime/limits.rs +++ b/src/runtime/limits.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Runtime limits and constants. //! //! Collect all hard limits in one place so they're easy to find, document, diff --git a/src/runtime/mod.rs b/src/runtime/mod.rs index fef0b09..52f5d58 100644 --- a/src/runtime/mod.rs +++ b/src/runtime/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // Runtime module: Mutex poisoning indicates a panic - all lock().unwrap()/expect() are intentional. #![allow(clippy::expect_used)] #![allow(clippy::unwrap_used)] diff --git a/src/runtime/observability.rs b/src/runtime/observability.rs index 090ae34..dcea2f8 100644 --- a/src/runtime/observability.rs +++ b/src/runtime/observability.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Observability infrastructure for metrics and structured logging. //! //! This module provides metrics via the `metrics` facade crate and structured logging diff --git a/src/runtime/registry.rs b/src/runtime/registry.rs index 94ff160..2d0f905 100644 --- a/src/runtime/registry.rs +++ b/src/runtime/registry.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Generic versioned registry for orchestrations and activities //! //! This module provides a unified `Registry` type that can store both orchestration diff --git a/src/runtime/replay_engine.rs b/src/runtime/replay_engine.rs index 7dc67e9..f644195 100644 --- a/src/runtime/replay_engine.rs +++ b/src/runtime/replay_engine.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // Replay engine uses Mutex locks - poison indicates a panic and should propagate #![allow(clippy::expect_used)] #![allow(clippy::unwrap_used)] diff --git a/src/runtime/replay_engine_tests.rs b/src/runtime/replay_engine_tests.rs index dec034d..5efe7af 100644 --- a/src/runtime/replay_engine_tests.rs +++ b/src/runtime/replay_engine_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #[cfg(test)] mod tests { use crate::providers::WorkItem; diff --git a/src/runtime/state_helpers.rs b/src/runtime/state_helpers.rs index 0d2e210..5c4c45c 100644 --- a/src/runtime/state_helpers.rs +++ b/src/runtime/state_helpers.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use crate::{ Event, EventKind, providers::{ScheduledActivityIdentifier, WorkItem}, diff --git a/src/runtime/test_hooks.rs b/src/runtime/test_hooks.rs index 9698307..777ef27 100644 --- a/src/runtime/test_hooks.rs +++ b/src/runtime/test_hooks.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Test hooks for simulating various conditions during testing. //! //! This module provides test-only hooks that allow tests to inject delays diff --git a/tests/activity_routing_tests.rs b/tests/activity_routing_tests.rs index ddf0202..754bb0e 100644 --- a/tests/activity_routing_tests.rs +++ b/tests/activity_routing_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/async_block_tests.rs b/tests/async_block_tests.rs index b491514..1cc62db 100644 --- a/tests/async_block_tests.rs +++ b/tests/async_block_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Async block pattern tests for simplified replay mode. //! //! These tests validate complex async block patterns including: diff --git a/tests/bulk_deletion_integration_tests.rs b/tests/bulk_deletion_integration_tests.rs index 6c6220f..07db33d 100644 --- a/tests/bulk_deletion_integration_tests.rs +++ b/tests/bulk_deletion_integration_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Integration tests for bulk delete instances operations via Client API. #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/cancellation_tests.rs b/tests/cancellation_tests.rs index 6753924..65efeef 100644 --- a/tests/cancellation_tests.rs +++ b/tests/cancellation_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/capability_filtering_tests.rs b/tests/capability_filtering_tests.rs index 4b5a4ae..d930a30 100644 --- a/tests/capability_filtering_tests.rs +++ b/tests/capability_filtering_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Capability filtering scenario tests (Category C, D, E, G, H) //! //! End-to-end tests with real Runtime + Client + SQLite provider that validate: diff --git a/tests/common/fault_injection.rs b/tests/common/fault_injection.rs index 2fd60cf..49e5244 100644 --- a/tests/common/fault_injection.rs +++ b/tests/common/fault_injection.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Fault Injection Providers for Testing //! //! Provides wrapper providers that can inject faults for testing error handling, diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 112c381..2c6ea9f 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/common/tracing_capture.rs b/tests/common/tracing_capture.rs index 82ef98e..78ccdd4 100644 --- a/tests/common/tracing_capture.rs +++ b/tests/common/tracing_capture.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Shared tracing capture helper for tests that need to assert on log output. use std::collections::BTreeMap; diff --git a/tests/concurrency_tests.rs b/tests/concurrency_tests.rs index bbcbe6c..343f881 100644 --- a/tests/concurrency_tests.rs +++ b/tests/concurrency_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/continue_as_new_tests.rs b/tests/continue_as_new_tests.rs index 4059b70..e486576 100644 --- a/tests/continue_as_new_tests.rs +++ b/tests/continue_as_new_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/custom_status_tests.rs b/tests/custom_status_tests.rs index 241c09d..a62158d 100644 --- a/tests/custom_status_tests.rs +++ b/tests/custom_status_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // Custom status e2e tests // // Validates set_custom_status(), reset_custom_status(), and the custom_status diff --git a/tests/deletion_integration_tests.rs b/tests/deletion_integration_tests.rs index 2017b94..b19b0d0 100644 --- a/tests/deletion_integration_tests.rs +++ b/tests/deletion_integration_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Integration tests for deletion operations via Client API. //! //! These tests verify end-to-end deletion behavior with real orchestration execution. diff --git a/tests/dispatcher_queues_fs.rs b/tests/dispatcher_queues_fs.rs index fae7af4..86f8033 100644 --- a/tests/dispatcher_queues_fs.rs +++ b/tests/dispatcher_queues_fs.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/e2e_samples.rs b/tests/e2e_samples.rs index 03cb60b..d206e24 100644 --- a/tests/e2e_samples.rs +++ b/tests/e2e_samples.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! End-to-end samples: start here to learn the API by example. //! //! Each test demonstrates a common orchestration pattern using diff --git a/tests/errors_tests.rs b/tests/errors_tests.rs index 6df1b36..24db414 100644 --- a/tests/errors_tests.rs +++ b/tests/errors_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/futures_tests.rs b/tests/futures_tests.rs index 99b0004..9b1c3a8 100644 --- a/tests/futures_tests.rs +++ b/tests/futures_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // Use SQLite via common helper #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/kv_store_tests.rs b/tests/kv_store_tests.rs index b192cf4..b57c86a 100644 --- a/tests/kv_store_tests.rs +++ b/tests/kv_store_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + // KV store e2e tests // // Validates set_value(), get_value(), clear_value(), clear_all_values(), diff --git a/tests/lock_timeout_tests.rs b/tests/lock_timeout_tests.rs index 9885f89..06ec352 100644 --- a/tests/lock_timeout_tests.rs +++ b/tests/lock_timeout_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/long_poll_tests.rs b/tests/long_poll_tests.rs index f418475..0327fc1 100644 --- a/tests/long_poll_tests.rs +++ b/tests/long_poll_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/management_interface_test.rs b/tests/management_interface_test.rs index 791f115..8b7b6e6 100644 --- a/tests/management_interface_test.rs +++ b/tests/management_interface_test.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Comprehensive tests for the management interface including metrics #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/nondeterminism_tests.rs b/tests/nondeterminism_tests.rs index beb5d9b..2093018 100644 --- a/tests/nondeterminism_tests.rs +++ b/tests/nondeterminism_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/observability_tests.rs b/tests/observability_tests.rs index 6b55279..58753b4 100644 --- a/tests/observability_tests.rs +++ b/tests/observability_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Observability-focused tests covering tracing for activities and orchestrations. #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/orchestration_status_tests.rs b/tests/orchestration_status_tests.rs index fc7627d..e85eba5 100644 --- a/tests/orchestration_status_tests.rs +++ b/tests/orchestration_status_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tests for OrchestrationStatus determination across all scenarios #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/poison_message_tests.rs b/tests/poison_message_tests.rs index bbde348..950b057 100644 --- a/tests/poison_message_tests.rs +++ b/tests/poison_message_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Poison Message Handling Tests //! //! These tests validate the runtime behavior when messages exceed max_attempts. diff --git a/tests/property_tests.rs b/tests/property_tests.rs index 2785fba..1a47a25 100644 --- a/tests/property_tests.rs +++ b/tests/property_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Property-based tests using proptest to verify invariants #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/provider_atomic_tests.rs b/tests/provider_atomic_tests.rs index 5073d4c..422a6f9 100644 --- a/tests/provider_atomic_tests.rs +++ b/tests/provider_atomic_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/provider_stress_test_validation.rs b/tests/provider_stress_test_validation.rs index 34d9241..165b911 100644 --- a/tests/provider_stress_test_validation.rs +++ b/tests/provider_stress_test_validation.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Minimal validation test for the provider stress test infrastructure. //! //! This test just ensures the stress test infrastructure doesn't break. diff --git a/tests/prune_integration_tests.rs b/tests/prune_integration_tests.rs index 3dd19fa..fba0fd2 100644 --- a/tests/prune_integration_tests.rs +++ b/tests/prune_integration_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Integration tests for execution pruning operations via Client API. #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/queue_event_tests.rs b/tests/queue_event_tests.rs index 83f5aed..8d01925 100644 --- a/tests/queue_event_tests.rs +++ b/tests/queue_event_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/races_tests.rs b/tests/races_tests.rs index d70c94a..3cab85e 100644 --- a/tests/races_tests.rs +++ b/tests/races_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/recovery_tests.rs b/tests/recovery_tests.rs index 9a9f5ed..676cf5e 100644 --- a/tests/recovery_tests.rs +++ b/tests/recovery_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/registry_tests.rs b/tests/registry_tests.rs index 6aee946..7949743 100644 --- a/tests/registry_tests.rs +++ b/tests/registry_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tests for registry composition features (merge, builder_from, register_all) #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/reliability_tests.rs b/tests/reliability_tests.rs index 84559d3..7094c7d 100644 --- a/tests/reliability_tests.rs +++ b/tests/reliability_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/replay_engine/action_to_event.rs b/tests/replay_engine/action_to_event.rs index 059f9b1..196a647 100644 --- a/tests/replay_engine/action_to_event.rs +++ b/tests/replay_engine/action_to_event.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Action to Event Recording Tests //! //! Tests verifying that each orchestration action type correctly diff --git a/tests/replay_engine/cancellation.rs b/tests/replay_engine/cancellation.rs index 8e76e4b..5f07bc2 100644 --- a/tests/replay_engine/cancellation.rs +++ b/tests/replay_engine/cancellation.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Cancellation Tests //! //! Tests for OrchestrationCancelRequested handling. diff --git a/tests/replay_engine/completion_messages.rs b/tests/replay_engine/completion_messages.rs index d2bb8fc..a09bc3d 100644 --- a/tests/replay_engine/completion_messages.rs +++ b/tests/replay_engine/completion_messages.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Completion Message Processing Tests //! //! Tests for WorkItem → Event conversion and filtering via prep_completions. diff --git a/tests/replay_engine/composition.rs b/tests/replay_engine/composition.rs index 1092b8c..3d74dba 100644 --- a/tests/replay_engine/composition.rs +++ b/tests/replay_engine/composition.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Select/Join Composition Tests //! //! Tests for aggregate future behavior (select, join). diff --git a/tests/replay_engine/edge_cases.rs b/tests/replay_engine/edge_cases.rs index dccd949..34ac13e 100644 --- a/tests/replay_engine/edge_cases.rs +++ b/tests/replay_engine/edge_cases.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Edge Case Tests //! //! Various edge cases and boundary conditions. diff --git a/tests/replay_engine/event_allocation.rs b/tests/replay_engine/event_allocation.rs index 1032fcf..1134c2b 100644 --- a/tests/replay_engine/event_allocation.rs +++ b/tests/replay_engine/event_allocation.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Event ID Allocation Tests //! //! Tests verifying correct event ID assignment for new events. diff --git a/tests/replay_engine/failure_handling.rs b/tests/replay_engine/failure_handling.rs index 773161c..263a529 100644 --- a/tests/replay_engine/failure_handling.rs +++ b/tests/replay_engine/failure_handling.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Activity Failure Handling Tests //! //! Tests for different error categories in activity failures. diff --git a/tests/replay_engine/fresh_execution.rs b/tests/replay_engine/fresh_execution.rs index afd6609..6f65b9f 100644 --- a/tests/replay_engine/fresh_execution.rs +++ b/tests/replay_engine/fresh_execution.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Fresh Execution Tests //! //! Tests where the orchestration starts from OrchestrationStarted with no prior schedule events. diff --git a/tests/replay_engine/helpers.rs b/tests/replay_engine/helpers.rs index 7d64148..21fa39b 100644 --- a/tests/replay_engine/helpers.rs +++ b/tests/replay_engine/helpers.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Test helpers for replay engine tests //! //! Provides utilities for constructing test histories, mock handlers, diff --git a/tests/replay_engine/history_corruption.rs b/tests/replay_engine/history_corruption.rs index 52839c2..67540b2 100644 --- a/tests/replay_engine/history_corruption.rs +++ b/tests/replay_engine/history_corruption.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! History Corruption Tests //! //! Tests for invalid history detection and graceful handling. diff --git a/tests/replay_engine/is_replaying.rs b/tests/replay_engine/is_replaying.rs index 89fc06f..ca3ffd0 100644 --- a/tests/replay_engine/is_replaying.rs +++ b/tests/replay_engine/is_replaying.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! is_replaying State Tests //! //! Tests verifying the context's replay state tracking. diff --git a/tests/replay_engine/kv.rs b/tests/replay_engine/kv.rs index 82f27ba..8140dc8 100644 --- a/tests/replay_engine/kv.rs +++ b/tests/replay_engine/kv.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! KV Store Replay Engine Tests //! //! Tests verifying: diff --git a/tests/replay_engine/mod.rs b/tests/replay_engine/mod.rs index 9a055b7..8e8212a 100644 --- a/tests/replay_engine/mod.rs +++ b/tests/replay_engine/mod.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Replay Engine Tests //! //! This module contains comprehensive tests for the ReplayEngine, diff --git a/tests/replay_engine/nondeterminism.rs b/tests/replay_engine/nondeterminism.rs index 61626e8..6fe79f4 100644 --- a/tests/replay_engine/nondeterminism.rs +++ b/tests/replay_engine/nondeterminism.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Nondeterminism Detection Tests //! //! Tests verifying the engine detects replay mismatches. diff --git a/tests/replay_engine/panic_handling.rs b/tests/replay_engine/panic_handling.rs index d0948db..7fdb41c 100644 --- a/tests/replay_engine/panic_handling.rs +++ b/tests/replay_engine/panic_handling.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Handler Panic Handling Tests //! //! Tests for orchestration panics. diff --git a/tests/replay_engine/partial_completion.rs b/tests/replay_engine/partial_completion.rs index 964ea6b..7b5c2ea 100644 --- a/tests/replay_engine/partial_completion.rs +++ b/tests/replay_engine/partial_completion.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Partial Completion Tests //! //! Tests where history has schedule events but completions haven't arrived yet. diff --git a/tests/replay_engine/replay_with_completions.rs b/tests/replay_engine/replay_with_completions.rs index eeb8039..5a47d58 100644 --- a/tests/replay_engine/replay_with_completions.rs +++ b/tests/replay_engine/replay_with_completions.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Replay with Completions Tests //! //! Tests where the baseline history contains both schedule AND completion events. diff --git a/tests/replay_engine/sequential_progress.rs b/tests/replay_engine/sequential_progress.rs index acde980..ed7c9c5 100644 --- a/tests/replay_engine/sequential_progress.rs +++ b/tests/replay_engine/sequential_progress.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Sequential Progress Tests //! //! Tests verifying multi-step orchestration replay. diff --git a/tests/replay_engine/sub_orchestration.rs b/tests/replay_engine/sub_orchestration.rs index c4ae809..f48ef00 100644 --- a/tests/replay_engine/sub_orchestration.rs +++ b/tests/replay_engine/sub_orchestration.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Sub-orchestration Instance ID Generation Tests //! //! Tests for deterministic child instance ID generation. diff --git a/tests/replay_engine/unobserved_futures.rs b/tests/replay_engine/unobserved_futures.rs index fec4031..9b589c1 100644 --- a/tests/replay_engine/unobserved_futures.rs +++ b/tests/replay_engine/unobserved_futures.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Unobserved Future Cancellation Tests //! //! Tests for cancellation of DurableFuture when dropped without completion. diff --git a/tests/replay_engine_tests.rs b/tests/replay_engine_tests.rs index 1a51a72..1a983ad 100644 --- a/tests/replay_engine_tests.rs +++ b/tests/replay_engine_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Replay Engine Test Suite //! //! This test file pulls in the replay_engine module which contains diff --git a/tests/runtime_options_test.rs b/tests/runtime_options_test.rs index ce4984e..157a54b 100644 --- a/tests/runtime_options_test.rs +++ b/tests/runtime_options_test.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tests for RuntimeOptions configuration #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] diff --git a/tests/scenarios.rs b/tests/scenarios.rs index 86437ce..55bf4ab 100644 --- a/tests/scenarios.rs +++ b/tests/scenarios.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Scenario tests derived from real-world usage patterns //! //! This module contains regression tests that model specific scenarios found in actual diff --git a/tests/scenarios/copilot_chat.rs b/tests/scenarios/copilot_chat.rs index 5f7703a..95cc04d 100644 --- a/tests/scenarios/copilot_chat.rs +++ b/tests/scenarios/copilot_chat.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Scenario test: "Chat with your orchestration" //! //! Demonstrates a conversational pattern where an external client sends typed diff --git a/tests/scenarios/replay_versioning.rs b/tests/scenarios/replay_versioning.rs index ca9c67e..90d82c1 100644 --- a/tests/scenarios/replay_versioning.rs +++ b/tests/scenarios/replay_versioning.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Replay engine extensibility verification via topic-based external events. //! //! This test proves that the replay engine can be extended with new EventKind variants diff --git a/tests/scenarios/rolling_deployment.rs b/tests/scenarios/rolling_deployment.rs index 8ac1998..4a709af 100644 --- a/tests/scenarios/rolling_deployment.rs +++ b/tests/scenarios/rolling_deployment.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Rolling deployment scenario tests //! //! These tests simulate real-world rolling deployment scenarios where: diff --git a/tests/scenarios/sessions.rs b/tests/scenarios/sessions.rs index e502971..007e084 100644 --- a/tests/scenarios/sessions.rs +++ b/tests/scenarios/sessions.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Session Scenario Test — Durable-Copilot-SDK Pattern //! //! This test faithfully models the durable-copilot-sdk's architecture, the primary diff --git a/tests/scenarios/single_thread.rs b/tests/scenarios/single_thread.rs index 732ec7d..241e88b 100644 --- a/tests/scenarios/single_thread.rs +++ b/tests/scenarios/single_thread.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Single-thread runtime scenario tests //! //! These tests validate duroxide's behavior when running in tokio's diff --git a/tests/scenarios/toygres.rs b/tests/scenarios/toygres.rs index 6aca4b2..9942106 100644 --- a/tests/scenarios/toygres.rs +++ b/tests/scenarios/toygres.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + use duroxide::Either2; use duroxide::runtime; use duroxide::runtime::registry::ActivityRegistry; diff --git a/tests/scenarios/version_replay_bug.rs b/tests/scenarios/version_replay_bug.rs index 7236dad..f8d0601 100644 --- a/tests/scenarios/version_replay_bug.rs +++ b/tests/scenarios/version_replay_bug.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Bug reproduction test for issue #49: WorkItemReader doesn't extract version from history during replay //! //! This test reproduces the exact scenario where: diff --git a/tests/schedule_with_retry_tests.rs b/tests/schedule_with_retry_tests.rs index 1d06c10..2f54155 100644 --- a/tests/schedule_with_retry_tests.rs +++ b/tests/schedule_with_retry_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tests for schedule_activity_with_retry functionality //! //! This file contains: diff --git a/tests/session_e2e_tests.rs b/tests/session_e2e_tests.rs index d215ad9..938ee6d 100644 --- a/tests/session_e2e_tests.rs +++ b/tests/session_e2e_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! End-to-end tests for the activity session (implicit sessions v2) feature. //! //! Tests verify session routing works correctly through the full runtime stack: diff --git a/tests/sqlite_provider_validations.rs b/tests/sqlite_provider_validations.rs index 649fd29..e93c41f 100644 --- a/tests/sqlite_provider_validations.rs +++ b/tests/sqlite_provider_validations.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Provider validation tests for SQLite //! //! This test file validates the SQLite provider using the reusable diff --git a/tests/sqlite_tests.rs b/tests/sqlite_tests.rs index b9ef01a..42b15b5 100644 --- a/tests/sqlite_tests.rs +++ b/tests/sqlite_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/system_calls_test.rs b/tests/system_calls_test.rs index 3806b73..d85b6f4 100644 --- a/tests/system_calls_test.rs +++ b/tests/system_calls_test.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/tag_serde_tests.rs b/tests/tag_serde_tests.rs index 236bdcd..96f3f78 100644 --- a/tests/tag_serde_tests.rs +++ b/tests/tag_serde_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/timer_tests.rs b/tests/timer_tests.rs index 1a7f49f..767d50a 100644 --- a/tests/timer_tests.rs +++ b/tests/timer_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/typed_composability_tests.rs b/tests/typed_composability_tests.rs index 0f706cf..c63bc0c 100644 --- a/tests/typed_composability_tests.rs +++ b/tests/typed_composability_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + //! Tests verifying that `_typed()` schedule methods return `DurableFuture` and //! compose correctly with `ctx.join()`, `ctx.select2()`, and `DurableFuture::map()`. //! diff --git a/tests/unit_tests.rs b/tests/unit_tests.rs index 3e724b2..7e639b5 100644 --- a/tests/unit_tests.rs +++ b/tests/unit_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/unregistered_backoff_tests.rs b/tests/unregistered_backoff_tests.rs index d2d755b..b472820 100644 --- a/tests/unregistered_backoff_tests.rs +++ b/tests/unregistered_backoff_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/versioning_tests.rs b/tests/versioning_tests.rs index 56e66db..3dd4ae0 100644 --- a/tests/versioning_tests.rs +++ b/tests/versioning_tests.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] diff --git a/tests/worker_reliability_test.rs b/tests/worker_reliability_test.rs index e814d7a..b04dc90 100644 --- a/tests/worker_reliability_test.rs +++ b/tests/worker_reliability_test.rs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + #![allow(clippy::unwrap_used)] #![allow(clippy::clone_on_ref_ptr)] #![allow(clippy::expect_used)] From 7c5e79f981b86ae1f22645441496d9e7105a7cd9 Mon Sep 17 00:00:00 2001 From: Pino de Candia <32303022+pinodeca@users.noreply.github.com> Date: Wed, 10 Jun 2026 20:19:33 +0000 Subject: [PATCH 3/7] Address initial OSS guidance review fixes --- README.md | 12 +++--------- fix.md | 13 +++++++++++++ migrations/20240101000000_initial_schema.sql | 3 --- migrations/20240102000000_add_attempt_count.sql | 3 --- migrations/20240103000000_add_worker_visible_at.sql | 3 --- .../20240104000000_add_worker_activity_identity.sql | 3 --- .../20240105000000_add_parent_instance_id.sql | 3 --- migrations/20240106000000_add_pinned_version.sql | 3 --- migrations/20240107000000_add_sessions.sql | 3 --- migrations/20240108000000_add_custom_status.sql | 3 --- migrations/20240109000000_add_activity_tags.sql | 3 --- migrations/20240110000000_add_kv_store.sql | 3 --- migrations/20240111000000_add_kv_last_updated.sql | 3 --- migrations/20240112000000_add_kv_delta.sql | 3 --- 14 files changed, 16 insertions(+), 45 deletions(-) create mode 100644 fix.md diff --git a/README.md b/README.md index 6f1967d..bd6c09f 100644 --- a/README.md +++ b/README.md @@ -203,21 +203,15 @@ that fits how you want to author and host your workflows: are available (SQLite built-in, PostgreSQL via [duroxide-pg](https://github.com/microsoft/duroxide-pg), or bring your own). - **[duroxide-python](https://github.com/microsoft/duroxide-python)** — Python - SDK over the Duroxide runtime. Use this when you want to author workflows in + SDK over the duroxide runtime. Use this when you want to author workflows in **Python**. - **[duroxide-node](https://github.com/microsoft/duroxide-node)** — Node.js / - TypeScript SDK over the Duroxide runtime. Use this when you want to author + TypeScript SDK over the duroxide runtime. Use this when you want to author workflows in **JavaScript / TypeScript**. - **[duroxide-pg](https://github.com/microsoft/duroxide-pg)** — PostgreSQL - provider for the Duroxide runtime. Plug this into duroxide / duroxide-python / + provider for the duroxide runtime. Plug this into duroxide / duroxide-python / duroxide-node when you want **PostgreSQL** as the durable store. -### Notes -- Import as `duroxide` in Rust source. -- Timers are real time (Tokio sleep). External events are via `Runtime::raise_event`. -- Unknown-instance messages are logged and dropped. Providers persist history only (queues are in-memory runtime components). -- Logging is replay-safe by treating it as a system activity via `ctx.trace_*` helpers; logs are emitted through tracing at completion time (not persisted as history events). - ## Learn more - **[Orchestration Guide](docs/ORCHESTRATION-GUIDE.md)** — the complete guide to writing workflows. diff --git a/fix.md b/fix.md new file mode 100644 index 0000000..7ebeaf9 --- /dev/null +++ b/fix.md @@ -0,0 +1,13 @@ +# PR 22 Fix Triage + +| No. | Priority | Status | Area | Improvement | Rationale | +| --- | --- | --- | --- | --- | --- | +| 1 | P0 | Done | SQLite migrations | Remove copyright header edits from existing `migrations/*.sql` files. | SQLx hashes the full migration SQL text, so comment-only edits to already-applied migrations can cause checksum mismatches for existing SQLite databases. | +| 2 | P1 | Done | README accuracy | Remove the README note that says providers persist history only and queues are in-memory runtime components. | Providers own durable queues as well as history; the added note contradicts the provider contract and SQLite schema. | +| 3 | P1 | Accepted | Contributing guidance | Keep both the Microsoft OSS text and the original pre-submit checklist in `CONTRIBUTING.md`. | The Microsoft OSS text is useful, but the rewrite weakened or displaced project-specific checklist guidance contributors should still see. | +| 4 | P1 | Accepted | Test guidance | Restore the original expectation to test happy path plus 1-2 edge cases. | The current wording only says to update tests for behavior changes, losing useful quality guidance from the original file. | +| 5 | P1 | Accepted | PR template | Update `.github/pull_request_template.md` to use `cargo nt` instead of `cargo test`. | The repo instructions require nextest; the template still points contributors at the older command. | +| 6 | P2 | Done | README scope | Remove the newly added `### Notes` block from the Duroxide family section. | The import, timer, unknown-instance, and replay-safe logging notes are technical guidance unrelated to copyright, code of conduct, security, CLA, or OSS policy. | +| 7 | P2 | Done | README scope | Do not keep the `duroxide runtime` to `Duroxide runtime` capitalization changes. | These are cosmetic branding edits rather than OSS compliance changes and are outside the stated PR purpose. | +| 8 | P2 | Dropped | Header coverage | Do not add copyright notices to config/build files: `.cargo/config.toml`, `.github/workflows/CI.yml`, `Cargo.toml`, `profiling/Dockerfile`, `profiling/docker-compose.yml`, `rust-toolchain.toml`, `rustfmt.toml`, and `sqlite-stress/Cargo.toml`. | These files do not need copyright headers for this PR. | +| 9 | P3 | Accepted | Formatting | Add a trailing newline to `CODE_OF_CONDUCT.md`. | The file currently has no final newline; low-risk cleanup while touching OSS metadata. | diff --git a/migrations/20240101000000_initial_schema.sql b/migrations/20240101000000_initial_schema.sql index 4d2f878..df3a556 100644 --- a/migrations/20240101000000_initial_schema.sql +++ b/migrations/20240101000000_initial_schema.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Initial schema for Duroxide SQLite provider -- Instance metadata diff --git a/migrations/20240102000000_add_attempt_count.sql b/migrations/20240102000000_add_attempt_count.sql index 1cab538..0164ed0 100644 --- a/migrations/20240102000000_add_attempt_count.sql +++ b/migrations/20240102000000_add_attempt_count.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add attempt_count column for poison message detection -- Add attempt_count to orchestrator_queue (non-negative integer) diff --git a/migrations/20240103000000_add_worker_visible_at.sql b/migrations/20240103000000_add_worker_visible_at.sql index 9555c4e..78c2bef 100644 --- a/migrations/20240103000000_add_worker_visible_at.sql +++ b/migrations/20240103000000_add_worker_visible_at.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add visible_at column to worker_queue for proper visibility control -- This mirrors the orchestrator_queue pattern where visibility and locking are separate concerns diff --git a/migrations/20240104000000_add_worker_activity_identity.sql b/migrations/20240104000000_add_worker_activity_identity.sql index e86ea0e..64b890f 100644 --- a/migrations/20240104000000_add_worker_activity_identity.sql +++ b/migrations/20240104000000_add_worker_activity_identity.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add activity identity columns to worker_queue for efficient cancellation lookups -- These columns denormalize the activity identity from the work_item JSON diff --git a/migrations/20240105000000_add_parent_instance_id.sql b/migrations/20240105000000_add_parent_instance_id.sql index 0efb605..f8b905f 100644 --- a/migrations/20240105000000_add_parent_instance_id.sql +++ b/migrations/20240105000000_add_parent_instance_id.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add parent_instance_id to instances table for cascading delete support -- NULL means this is a root orchestration, non-NULL means it's a sub-orchestration diff --git a/migrations/20240106000000_add_pinned_version.sql b/migrations/20240106000000_add_pinned_version.sql index 594746b..61fbdfb 100644 --- a/migrations/20240106000000_add_pinned_version.sql +++ b/migrations/20240106000000_add_pinned_version.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add pinned duroxide version columns to executions table for capability filtering. -- These columns store the semver version of the runtime that created this execution, -- allowing the provider to filter work items by replay engine compatibility. diff --git a/migrations/20240107000000_add_sessions.sql b/migrations/20240107000000_add_sessions.sql index 6989b34..ed7bd90 100644 --- a/migrations/20240107000000_add_sessions.sql +++ b/migrations/20240107000000_add_sessions.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add session_id column to worker_queue for session-based worker affinity routing ALTER TABLE worker_queue ADD COLUMN session_id TEXT; CREATE INDEX idx_worker_queue_session ON worker_queue(session_id); diff --git a/migrations/20240108000000_add_custom_status.sql b/migrations/20240108000000_add_custom_status.sql index d68bf20..43760c7 100644 --- a/migrations/20240108000000_add_custom_status.sql +++ b/migrations/20240108000000_add_custom_status.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add custom_status columns to instances table (survives continue_as_new) ALTER TABLE instances ADD COLUMN custom_status TEXT; ALTER TABLE instances ADD COLUMN custom_status_version INTEGER NOT NULL DEFAULT 0; diff --git a/migrations/20240109000000_add_activity_tags.sql b/migrations/20240109000000_add_activity_tags.sql index 7d7ca5b..ef7c15d 100644 --- a/migrations/20240109000000_add_activity_tags.sql +++ b/migrations/20240109000000_add_activity_tags.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add tag column to worker_queue for activity routing to specialized workers ALTER TABLE worker_queue ADD COLUMN tag TEXT; CREATE INDEX idx_worker_queue_tag ON worker_queue(tag); diff --git a/migrations/20240110000000_add_kv_store.sql b/migrations/20240110000000_add_kv_store.sql index 1cef069..a7dcb8e 100644 --- a/migrations/20240110000000_add_kv_store.sql +++ b/migrations/20240110000000_add_kv_store.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- KV store: instance-scoped key-value pairs, materialized from history events. -- Primary key is (instance_id, key) — only the latest value per key is stored. -- execution_id tracks which execution last wrote this key (for pruning). diff --git a/migrations/20240111000000_add_kv_last_updated.sql b/migrations/20240111000000_add_kv_last_updated.sql index c678ca3..dc17c28 100644 --- a/migrations/20240111000000_add_kv_last_updated.sql +++ b/migrations/20240111000000_add_kv_last_updated.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- Add last_updated_at_ms timestamp to kv_store entries. -- Set by the runtime at set_kv_value() time, persisted by the provider. -- Pre-existing rows default to 0 (unknown update time until rewritten). diff --git a/migrations/20240112000000_add_kv_delta.sql b/migrations/20240112000000_add_kv_delta.sql index 88e3d55..208f12d 100644 --- a/migrations/20240112000000_add_kv_delta.sql +++ b/migrations/20240112000000_add_kv_delta.sql @@ -1,6 +1,3 @@ --- Copyright (c) Microsoft Corporation. --- Licensed under the MIT License. - -- KV delta table: captures KV mutations from the current execution only. -- Values are merged into kv_store on execution completion (Completed, CAN, Failed). -- Snapshot seeding reads from kv_store only (prior-execution state). From 2049541a8a7b5512f2fb026ec5bf149b89149298 Mon Sep 17 00:00:00 2001 From: Pino de Candia <32303022+pinodeca@users.noreply.github.com> Date: Wed, 10 Jun 2026 20:24:07 +0000 Subject: [PATCH 4/7] Restore contribution guidance --- .github/pull_request_template.md | 2 +- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 15 ++++++++++++++- fix.md | 8 ++++---- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 10b6cc9..4f643c2 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -5,7 +5,7 @@ Describe the change and motivation. ## Checklist - [ ] Tests added/updated -- [ ] `cargo test` passes locally +- [ ] `cargo nt` passes locally - [ ] Docs updated - [ ] Existing docs updated where behavior changed - [ ] New doc added under `docs/` if introducing a new area diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 89fa0cc..686e5e7 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -7,4 +7,4 @@ Resources: - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns -- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support) \ No newline at end of file +- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d22ea0..e4cea0e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,9 +20,22 @@ or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any addi Please do not report security vulnerabilities through public GitHub issues. Follow the instructions in [SECURITY.md](SECURITY.md). +## Before submitting changes + +- Code + - [ ] Build passes locally (`cargo nt`) + - [ ] Lints/clippy (if applicable) are clean + - [ ] Tests added or updated for behavior changes +- Documentation + - [ ] Does this change affect existing docs? Update them. + - [ ] Is this a new surface area or concept? Add a doc under `docs/`. + - [ ] Link new docs from `docs/README.md`. +- Design notes (optional but encouraged) + - [ ] For non-trivial changes, include a short design rationale in the PR description with code pointers. + ## Development workflow -- Write or update tests first for behavior changes. +- Write or update tests first for behavior changes (happy path + 1-2 edge cases). - Keep public APIs stable where possible; note breakages clearly. - Prefer small, focused commits with descriptive messages. - For non-trivial changes, include a short design rationale in the pull request description with code pointers. diff --git a/fix.md b/fix.md index 7ebeaf9..cd2d7ec 100644 --- a/fix.md +++ b/fix.md @@ -4,10 +4,10 @@ | --- | --- | --- | --- | --- | --- | | 1 | P0 | Done | SQLite migrations | Remove copyright header edits from existing `migrations/*.sql` files. | SQLx hashes the full migration SQL text, so comment-only edits to already-applied migrations can cause checksum mismatches for existing SQLite databases. | | 2 | P1 | Done | README accuracy | Remove the README note that says providers persist history only and queues are in-memory runtime components. | Providers own durable queues as well as history; the added note contradicts the provider contract and SQLite schema. | -| 3 | P1 | Accepted | Contributing guidance | Keep both the Microsoft OSS text and the original pre-submit checklist in `CONTRIBUTING.md`. | The Microsoft OSS text is useful, but the rewrite weakened or displaced project-specific checklist guidance contributors should still see. | -| 4 | P1 | Accepted | Test guidance | Restore the original expectation to test happy path plus 1-2 edge cases. | The current wording only says to update tests for behavior changes, losing useful quality guidance from the original file. | -| 5 | P1 | Accepted | PR template | Update `.github/pull_request_template.md` to use `cargo nt` instead of `cargo test`. | The repo instructions require nextest; the template still points contributors at the older command. | +| 3 | P1 | Done | Contributing guidance | Keep both the Microsoft OSS text and the original pre-submit checklist in `CONTRIBUTING.md`. | The Microsoft OSS text is useful, but the rewrite weakened or displaced project-specific checklist guidance contributors should still see. | +| 4 | P1 | Done | Test guidance | Restore the original expectation to test happy path plus 1-2 edge cases. | The current wording only says to update tests for behavior changes, losing useful quality guidance from the original file. | +| 5 | P1 | Done | PR template | Update `.github/pull_request_template.md` to use `cargo nt` instead of `cargo test`. | The repo instructions require nextest; the template still points contributors at the older command. | | 6 | P2 | Done | README scope | Remove the newly added `### Notes` block from the Duroxide family section. | The import, timer, unknown-instance, and replay-safe logging notes are technical guidance unrelated to copyright, code of conduct, security, CLA, or OSS policy. | | 7 | P2 | Done | README scope | Do not keep the `duroxide runtime` to `Duroxide runtime` capitalization changes. | These are cosmetic branding edits rather than OSS compliance changes and are outside the stated PR purpose. | | 8 | P2 | Dropped | Header coverage | Do not add copyright notices to config/build files: `.cargo/config.toml`, `.github/workflows/CI.yml`, `Cargo.toml`, `profiling/Dockerfile`, `profiling/docker-compose.yml`, `rust-toolchain.toml`, `rustfmt.toml`, and `sqlite-stress/Cargo.toml`. | These files do not need copyright headers for this PR. | -| 9 | P3 | Accepted | Formatting | Add a trailing newline to `CODE_OF_CONDUCT.md`. | The file currently has no final newline; low-risk cleanup while touching OSS metadata. | +| 9 | P3 | Done | Formatting | Add a trailing newline to `CODE_OF_CONDUCT.md`. | The file currently has no final newline; low-risk cleanup while touching OSS metadata. | From 5192b48d4f0fc646f9f11f5eaa16678cc769adbf Mon Sep 17 00:00:00 2001 From: Pino de Candia <32303022+pinodeca@users.noreply.github.com> Date: Wed, 10 Jun 2026 20:24:29 +0000 Subject: [PATCH 5/7] Remove temporary fix triage --- fix.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 fix.md diff --git a/fix.md b/fix.md deleted file mode 100644 index cd2d7ec..0000000 --- a/fix.md +++ /dev/null @@ -1,13 +0,0 @@ -# PR 22 Fix Triage - -| No. | Priority | Status | Area | Improvement | Rationale | -| --- | --- | --- | --- | --- | --- | -| 1 | P0 | Done | SQLite migrations | Remove copyright header edits from existing `migrations/*.sql` files. | SQLx hashes the full migration SQL text, so comment-only edits to already-applied migrations can cause checksum mismatches for existing SQLite databases. | -| 2 | P1 | Done | README accuracy | Remove the README note that says providers persist history only and queues are in-memory runtime components. | Providers own durable queues as well as history; the added note contradicts the provider contract and SQLite schema. | -| 3 | P1 | Done | Contributing guidance | Keep both the Microsoft OSS text and the original pre-submit checklist in `CONTRIBUTING.md`. | The Microsoft OSS text is useful, but the rewrite weakened or displaced project-specific checklist guidance contributors should still see. | -| 4 | P1 | Done | Test guidance | Restore the original expectation to test happy path plus 1-2 edge cases. | The current wording only says to update tests for behavior changes, losing useful quality guidance from the original file. | -| 5 | P1 | Done | PR template | Update `.github/pull_request_template.md` to use `cargo nt` instead of `cargo test`. | The repo instructions require nextest; the template still points contributors at the older command. | -| 6 | P2 | Done | README scope | Remove the newly added `### Notes` block from the Duroxide family section. | The import, timer, unknown-instance, and replay-safe logging notes are technical guidance unrelated to copyright, code of conduct, security, CLA, or OSS policy. | -| 7 | P2 | Done | README scope | Do not keep the `duroxide runtime` to `Duroxide runtime` capitalization changes. | These are cosmetic branding edits rather than OSS compliance changes and are outside the stated PR purpose. | -| 8 | P2 | Dropped | Header coverage | Do not add copyright notices to config/build files: `.cargo/config.toml`, `.github/workflows/CI.yml`, `Cargo.toml`, `profiling/Dockerfile`, `profiling/docker-compose.yml`, `rust-toolchain.toml`, `rustfmt.toml`, and `sqlite-stress/Cargo.toml`. | These files do not need copyright headers for this PR. | -| 9 | P3 | Done | Formatting | Add a trailing newline to `CODE_OF_CONDUCT.md`. | The file currently has no final newline; low-risk cleanup while touching OSS metadata. | From 0fcde1ca7d64406e0131c3372fba5caf4640d78a Mon Sep 17 00:00:00 2001 From: Pino de Candia <32303022+pinodeca@users.noreply.github.com> Date: Wed, 10 Jun 2026 20:50:52 +0000 Subject: [PATCH 6/7] Make CONTRIBUTING use 'cargo test' consistently --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e4cea0e..187345d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ Please do not report security vulnerabilities through public GitHub issues. Foll ## Before submitting changes - Code - - [ ] Build passes locally (`cargo nt`) + - [ ] Build passes locally (`cargo test`) - [ ] Lints/clippy (if applicable) are clean - [ ] Tests added or updated for behavior changes - Documentation @@ -35,7 +35,7 @@ Please do not report security vulnerabilities through public GitHub issues. Foll ## Development workflow -- Write or update tests first for behavior changes (happy path + 1-2 edge cases). +- Write or update tests first (happy path + 1-2 edge cases). - Keep public APIs stable where possible; note breakages clearly. - Prefer small, focused commits with descriptive messages. - For non-trivial changes, include a short design rationale in the pull request description with code pointers. @@ -44,7 +44,7 @@ Please do not report security vulnerabilities through public GitHub issues. Foll Before opening a pull request, run the checks relevant to your change: ```bash -cargo nt +cargo test cargo clippy --all-targets --all-features cargo test --doc ``` From 31f75f537dfca79158fef8915d7bc136abd711e5 Mon Sep 17 00:00:00 2001 From: Pino de Candia <32303022+pinodeca@users.noreply.github.com> Date: Wed, 10 Jun 2026 21:43:06 +0000 Subject: [PATCH 7/7] Align contributor test guidance --- .github/pull_request_template.md | 3 ++- CONTRIBUTING.md | 6 +++--- README.md | 6 ++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4f643c2..30aafff 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -5,7 +5,8 @@ Describe the change and motivation. ## Checklist - [ ] Tests added/updated -- [ ] `cargo nt` passes locally +- [ ] Regular tests pass locally (`cargo nt`) +- [ ] Doc tests pass locally (`cargo test --doc --all-features`) - [ ] Docs updated - [ ] Existing docs updated where behavior changed - [ ] New doc added under `docs/` if introducing a new area diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 187345d..15f3b40 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ Please do not report security vulnerabilities through public GitHub issues. Foll ## Before submitting changes - Code - - [ ] Build passes locally (`cargo test`) + - [ ] Regular tests pass locally (`cargo nt`) - [ ] Lints/clippy (if applicable) are clean - [ ] Tests added or updated for behavior changes - Documentation @@ -44,9 +44,9 @@ Please do not report security vulnerabilities through public GitHub issues. Foll Before opening a pull request, run the checks relevant to your change: ```bash -cargo test +cargo nt cargo clippy --all-targets --all-features -cargo test --doc +cargo test --doc --all-features ``` For broader runtime changes, also run the comprehensive two-pass suite: diff --git a/README.md b/README.md index bd6c09f..bca0297 100644 --- a/README.md +++ b/README.md @@ -224,8 +224,10 @@ that fits how you want to author and host your workflows: ## Development ```bash -cargo build # Build -cargo test --all -- --nocapture # Run all tests +cargo build --all-features # Build +cargo nt # Run regular tests with nextest +cargo test --doc --all-features # Run doctests +./run-tests.sh # Full two-pass CI test suite ./run-stress-tests.sh # Stress tests (see STRESS_TEST_MONITORING.md) ```