develop
Massive file cleanup
Adding multiple framework support for net461, netstandard2.0, netstandard2.1, and net6.0 where appropriate
Added IRoutingSlipBuilder, which is now registered in the container, so that a routing slip can be built and executed from the Abstractions assembly only.
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
Add the ability to delay execute of the next routing slip activity, as well as a new callback for setting variables, setting the delay.
Fixed #3344 - added internal code analysis types for NETSTANDARD2.0 and NET462 builds to allow proper nullable output types for analyzer
Added ExceptionHeaders to ExceptionReceiveContext so that additional transport headers can be specified (or existing headers replaced/removed) when moving messages to the error queue.
Job Consumers - Reworked CancelJob so that it goes through the sagas, no longer creating a subscription on the instance. Also, made it so that jobs canceled when an instance was stopped are automatically rescheduled for the next available job consumer instance.
Address #5534 - Use sequence number for batch order where available (#5538)
Reworked Job Properties, Job Type Properties, and Instance Properties to allow better differentiation when building job distribution strategies.
Adding nullability to abstractions, and fixing warnings
Merging the SQL transport into the main codebase
Small xmldoc fix
Added missing overloads for BatchSend/BatchPublish
Replace Array.Empty with collection expression
Upgrade Quartz to version 3.12.0
Converted in-memory transport to use the message fabric from gRPC transport, and reworked it all. Also, RoutingKey is now more easily supported across supported transports.
Fixed missing generic argument on RespondAsync causing type issue
Fixed #3718 - setting empty/null header when MessageId is null during redelivery
Fix summaries of overloads referring to message type while no messageType parameter is available