Skip to content

Releases: LeCantaloop/Qwiq

10.0.1

13 Feb 20:43
83be19e
Compare
Choose a tag to compare
  • Updates to use PackageReferences instead of packages.config for some projects. We encountered a bug during package generation that does not generate NuGet dependencies. A partial revert of the PackageReferences update for redistributed projects corrects the problem.

10.0.0

13 Feb 20:45
f390f22
Compare
Choose a tag to compare

Namespace updates

  • Namespace change from Microsoft.Qwiq to just Qwiq

Internal refactor

  • Updates to use PackageReferences instead of packages.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 to ServerRejectedChangesException class
  • Suppress warnings for empty catch block on NoExceptionAttributeMapperStrategy

9.0.0

13 Feb 21:02
Compare
Choose a tag to compare

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 by AttributeMapperStrategy. Additional .ctor created to prevent breaking changes, but an instance of IAnnotatedPropertyValidator is accepted by NoExceptionAttributeMapperStrategy and AttributeMapperStrategy to perform field/property validation.

Identity

  • Support identity membership. #148 Add new methods to allow callers to control how an ITeamFoundationIdentity properties for Members and MemberOf are populated. Existing methods call into the new methods passing MembershipQuery.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 the NoExceptionAttributeMapperStrategy.
  • 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 and WorkItemType 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

13 Feb 21:04
Compare
Choose a tag to compare

Bug fixes

  • Reduce number of first chance exceptions in certain mapping scenarios. #167

8.1.1

13 Feb 21:10
Compare
Choose a tag to compare

Performance

  • Use work item field instead of store for work item type. The new IWorkItem interface has a property named WorkItemType, which contains the name of the work item type for that work item. This is equivalent to the property IWorkItem.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 the InvalidOperationException 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

13 Feb 20:44
Compare
Choose a tag to compare
Merge pull request #151 from MicrosoftEdge/release/8.1.0

Release/8.1.0

8.0.1

27 Jul 18:49
Compare
Choose a tag to compare
Merge pull request #155 from rjmurillo/hotfix/8.0.1

Catch `DeniedOrNotExistException` when accessing field during map

8.0.0

13 Feb 21:28
Compare
Choose a tag to compare

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 as WorkItemLinkInfoEqualityComparer.
  • 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

04 Mar 03:17
Compare
Choose a tag to compare

7.1.0

03 Mar 19:31
Compare
Choose a tag to compare

Add support for External Links @Lyra1337