0
votes

We started building different projects using servicestack v4 less than 3 months ago.

We installed different package of servicestack at version 4.0.52 (servicestack.Common, servicestack.Interfaces, servicestack.Client etc..)

Because of some installation/update we upgraded only the servicestack.Interfaces at 4.0.54 and this caused this error:

Method 'PostFilesWithRequest' in type 'ServiceStack.JsonServiceClient' from assembly 'ServiceStack.Client, Version=4.0.52.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

After upgrading all the service stack package to 4.0.54, it resolved the error (in the new version of IRestClient they added new definition).

My question is:

  • how servicestack handle the versioniong of their release?
  • do we have to upgrade ALL the servicestack package everytime they release a new version?

I tought they use Semantic versioning, but it's seems it's not the case (a patch should be backwards-compatible)

I know my question sounds more like a complain, but i'm pretty sure i'm not the only one with this problem:

Could not load type 'ServiceStack.IUrlFilter' from assembly 'ServiceStack.Interfaces...'

ServiceStack NuGet update 4.0.22 to 4.0.31 caused errors on deployment

We also started developing a servicestack api with different service combined as a plugin, and this could be troublesome for the maintenance. Maybe we must think a unique way to handle all of this update at once.

1

1 Answers

1
votes

Missing method exceptions are due to running dirty packages from different versions together. You need to ensure that all packages from all projects are referencing the same version. It's not strictly necessary for clients to have the same version to match the server libs since they don't have binary coupling but it is still recommended to follow since some new client features can rely on new server features that were released at the same time.

ServiceStack doesn't ship minor patches to NuGet, each NuGet release is a major release, any fixes in-between releases are instead published on MyGet pre-release packages.

ServiceStack official NuGet packages are deployed in lock-step where all of ServiceStack's 60 NuGet packages are released at the same time with the same version. Every release has the potential for a non-backwards compatible change in any one of modified ServiceStack's packages so they should all be upgraded at the same time.