Releases: LeCantaloop/Qwiq
Releases · LeCantaloop/Qwiq
10.0.1
10.0.0
Namespace updates
- Namespace change from
Microsoft.Qwiq
to justQwiq
Internal refactor
- Updates to use
PackageReferences
instead ofpackages.config
for some projects - Fix for double-check lock in
ReadOnlyObjectCollection
which may cause duplicate enumerations of an item set or factory - Fix for CA1028 for
NodeType
enum - Add
SerializableAttribute
toServerRejectedChangesException
class - Suppress warnings for empty catch block on
NoExceptionAttributeMapperStrategy
9.0.0
Refactor
- Remove items marked with
Obsolete
- Separation of concerns.
AttributeMapperStrategy
had three concerns: the reading from and writing to fields and properties, obtaining a list of properties to read/write, validating that list. This is now separated into a new class:AnnotatedPropertyValidator
IAnnotatedPropertyValidator
is accepted byAttributeMapperStrategy
. Additional.ctor
created to prevent breaking changes, but an instance ofIAnnotatedPropertyValidator
is accepted byNoExceptionAttributeMapperStrategy
andAttributeMapperStrategy
to perform field/property validation.
Identity
- Support identity membership. #148 Add new methods to allow callers to control how an
ITeamFoundationIdentity
properties forMembers
andMemberOf
are populated. Existing methods call into the new methods passingMembershipQuery.None
, which was previously hard-coded - Add InGroup and NotInGroup LINQ operators @pelavall
Bug fixes
- Catch
DeniedOrNotExistException
when fetching property on work item. This is now extended to theNoExceptionAttributeMapperStrategy
. - Increase field validation check during mapping. #162, #167 . Ensure ZERO exceptions are thrown during mapping operations due to non-existent fields.
- Add paging ability for instances with over 100 projects. #162
- Ensure mandatory fields for
TeamProject
andWorkItemType
are returned with REST client. #172 - Guard against REST API returning duplicate field definitions
Documentation
- Update documentation for 9.0.0 breaking changes
8.1.2
8.1.1
Performance
- Use work item field instead of store for work item type. The new
IWorkItem
interface has a property namedWorkItemType
, which contains the name of the work item type for that work item. This is equivalent to the propertyIWorkItem.Type.Name
, except that the work item store does not receive a query to load WIT meta data for just the name. - Mapper does not require work item type field definitions to build cache. When building the property cache for a work item type and model, the attribute mapper would verify the decorated property/field existed as a field in the WIT. This is not necessary, as an invalid field would return
null
. In REST, we use the object accessor to get the initial field value, which would try to load the WIT and fail.WorkItemCore
has been updated to catch theInvalidOperationException
thrown by the REST client and attempt to read values from that point forward using the dictionary supplied by the REST API.
Bug fixes
- Better error messaging. Provide more descriptive error messages when certain preconditions are not met during query (e.g. a field is missing)
8.1.0
8.0.1
8.0.0
Performance
- Add support for quering by ID. Avoid multiple trips to server by using the native API for querying by ID.
- Add tests to verify performance of SOAP and REST clients.
- Fix memory leak with REST client
- Significantly reduce memory allocations in query critical path
- Significant performance improvements to mapping
- Add feature to bulk resolve TFS identities
Internals
- Add native support for
WorkItemLinkInfo
equality. Implemented asWorkItemLinkInfoEqualityComparer
. - Add more useful debug output. Primarily used by tests as an extension of
Should
. - Use Roslyn compiler package.
- Fix for methods not proxied with
Castle
. #129 - Internal refactoring
- Separate REST and SOAP implementations
- Add JetBrains annotations to help ReSharper recommendations
- New APIs. Some APIs are depreciated, marked with
Obsolete
keyword. They will be removed in a future version of Qwiq.
Query
- Add support for REST API. Can now pick between VSTS/VSO SOAP and REST implementations.
- Improved mapping exception messages. During the mapping operation, an exception may be encountered. New error messages provide the Work Item Type name, the .NET class being mapped to, the Work Item Field, and the destination .NET property or field.
7.2.0: Merge pull request #116 from pelavall/feature/supporteverqueries
Support for EVER
WIQL syntax in LINQ @pelavall