Mantenimiento de la versión del sistema Nuget

Comenzamos a build diferentes proyectos utilizando servicestack v4 hace less de 3 meses.

Instalamos diferentes packages de servicestack en la versión 4.0.52 (servicestack.Common, servicestack.Interfaces, servicestack.Client, etc.)

Debido a alguna installation / actualización, solo actualizamos la database de services.Interfaces en 4.0.54 y esto causó este error:

El método 'PostFilesWithRequest' en el tipo 'ServiceStack.JsonServiceClient' del ensamblado 'ServiceStack.Client, Version = 4.0.52.0, Culture = neutral, PublicKeyToken = null' no tiene una implementación.

Después de actualizar todo el package de la stack de services a 4.0.54, resolvió el error (en la nueva versión de IRestClient agregaron una nueva definición).

Mi pregunta es:

  • cómo servicestack maneja la versión de su lanzamiento?
  • ¿tenemos que actualizar TODO el package de la package de services cada vez que lanzan una nueva versión?

Pensé que usarían versiones semánticas, pero parece que no es el caso (un parche debería ser compatible con versiones anteriores)

Sé que mi pregunta suena más como una queja, pero estoy bastante seguro de que no soy el único con este problema:

No se pudo cargar el tipo 'ServiceStack.IUrlFilter' desde el ensamblado 'ServiceStack.Interfaces …'

ServiceStack NuGet actualización 4.0.22 a 4.0.31 provocó errores en la implementación

También comenzamos a desarrollar una api servicestack con diferentes services combinados como un complemento, y esto podría ser problemático para el mantenimiento. Quizás debemos pensar una forma única de manejar toda esta actualización a la vez.

Las excepciones de methods faltantes se deben a la ejecución de packages sucios de diferentes versiones juntas. Debe asegurarse de que todos los packages de todos los proyectos se refieran a la misma versión. No es estrictamente necesario que los clientes tengan la misma versión para que coincida con las bibliotecas del server, ya que no tienen acoplamiento binary, pero se recomienda seguirlo ya que algunas características nuevas del cliente pueden contar con nuevas características del server que se lanzaron al mismo time.

ServiceStack no envía parches menores a NuGet, cada versión de NuGet es una versión importante, las versiones corregidas entre paréntesis se publican en cambio en los packages de prelanzamiento de MyGet .

Los packages NuGet oficiales de ServiceStack se implementan en el paso de locking donde todos los 60 packages NuGet de ServiceStack se lanzan al mismo time con la misma versión. Cada lanzamiento tiene el potencial de un cambio no compatible con versiones anteriores en cualquiera de los packages modificados de ServiceStack, por lo que todos deberían actualizarse al mismo time.