WS8: Tests, documentation, and release engineering for GA
I maintainer di solito rispondono entro 1 giorno
@j7nw4r ci sta già lavorando.
Dal 28/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
No offline test exercises link recovery, token refresh, or retry classification, because no transport fake exists. CI accepts 27 percent line coverage and 13 percent branch coverage. The README teaches an API that the package removed. The samples cover no processor scenario, although the processor is the flagship consume pattern. Neither package ships a TROUBLESHOOTING.md.
The test items gate the other workstreams: the reliability fixes in #7254, #7255, #7256, and #7257 are unverifiable without them. Severity tags follow the key in #7252.
Motivation
The .NET library backs its reliability behavior with thousands of offline unit tests that use AMQP fakes, for example sdk/eventhub/Azure.Messaging.EventHubs.Shared/tests/RetryPolicies/BasicRetryPolicyTests.cs and tests/Processor/PartitionLoadBalancerTests.cs. It also ships live tests and a stress suite.
The C++ package has about 59 test cases across 11 files, and the client tests gate on live environment variables through the test base (test/ut/eventhubs_test_base.hpp:26-101). No offline test covers link recovery, token refresh, or retry classification, because no transport fake exists. CI accepts 27 percent line coverage and 13 percent branch coverage (sdk/eventhubs/ci.yml:32-33). A stress test exists for batch send scenarios and a perf test exists, but there is no processor long-haul test.
The documentation describes an API that no longer exists. The README teaches connection string authentication in the client construction section (README.md:134-142), the send example (README.md:175-193), and the receive example (README.md:205-210). Those examples also use EventDataBatch direct construction, AddMessage, and SendEventDataBatch, none of which exist on the current surface. Samples cover basic-operations, produce-events, and consume-events only, with no processor or checkpoint sample. Neither Event Hubs package ships a TROUBLESHOOTING.md, while .NET ships one at sdk/eventhub/Azure.Messaging.EventHubs/TROUBLESHOOTING.md.
Issue #7250 restores the connection string constructors. Coordinate the README rewrite with that work, so the examples match the surface that actually ships.
Proposal
- Add offline unit tests, backed by a transport fake, for every behavior that #7254, #7255, #7256, and #7257 introduce: link rebuild, token refresh, transient-only retry, cancellable backoff, close idempotency, the processor error callback, checkpoint parsing, and the batch envelope annotation. [GA blocker]
- Rewrite the README so every code sample compiles against the shipped surface (
README.md:134-142,175-193,205-210). [GA blocker] - Add a processor sample with the blob checkpoint store. [GA blocker]
- Make the live tests run green in CI across the full platform matrix, and make the vcpkg ports of both Event Hubs packages and the chosen transport build across that matrix (
sdk/eventhubs/ci.yml:26-60). [GA blocker] - Raise the CI coverage targets from 27 percent line and 13 percent branch to targets the team sets for GA (
sdk/eventhubs/ci.yml:32-33). [GA quality bar] - Add a processor long-haul stress scenario next to the existing batch send scenarios (
test/eventhubs-stress-test/src/scenarios/src/batch_stress_tests.cpp). [GA quality bar] - Add
TROUBLESHOOTING.mdfor both packages, modeled on the .NET one. [GA quality bar] - Document the at-least-once delivery contract in
TROUBLESHOOTING.mdand in the README. Event Hubs does not support AMQP link recovery, so a reconnect can deliver an event two times, and a caller must expect a duplicate. Microsoft states the contract directly: "Service Bus and Event Hubs support 'at least once' transfer where the sender can be assured for the message having been stored and accepted, but don't support 'exactly once' transfers at the AMQP level" (AMQP 1.0 in Service Bus and Event Hubs protocol guide). The link rebuild work in #7254 makes this contract visible to a caller, so the documentation must state it. [GA quality bar]
Validation
- Every reliability behavior from #7254 through #7257 has an offline test that fails before its fix and passes after.
- Every README code sample compiles.
- CI is green on the full platform matrix, including the live tests and the vcpkg port builds.
- A processor and a producer each run 24 hours against a live hub with induced link detaches and survive without a restart.
- Lingua principale
- C++
- Stelle
- 206
- Fork
- 177
- Merge medio
- 2g 10h
- PR unite (30g)
- 34
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/azure-sdk-for-cpp
-
bug EngSys
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
Azure/azure-sdk-for-cpp#7362 ·
I maintainer di solito rispondono entro 1 giorno
-
Client needs-team-attention Service Attention Storage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/azure-sdk-for-cpp#7347 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Client Event Hubs needs-team-attention Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
Azure/azure-sdk-for-cpp#7333 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Azure Storage STG105 Feature TestsForse già presa @Jinming-Hu l’ha presa 22 giorni fa. ApertaClient Storage
Azure/azure-sdk-for-cpp#7449 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Azure.Core bug test-enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
Azure/azure-sdk-for-cpp#7401 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Azure/azure-sdk-for-cpp
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 6 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
prestonbrown/helixscreen#1922 ·
I maintainer di solito rispondono entro 1 giorno
-
component: workspaces
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
zen-browser/desktop#16218 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Abort (SIGABRT) when stderr is a closed pipe: uncaught fmt::system_error in ccache_main's catchForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 3 giorni