Package manager not respecting distribution tag

Today I witnessed a problem in the package manager for Rhino 8. I pushed a new package version of our plugin called shapediver-1.24.0-rh6_19-win.yak. Note that typically we push 5 different packages with the following distribution tags:

rh6_19-win
rh7_0-mac
rh7_0-win
rh8_4-mac
rh8_4-win

However, today morning we only pushed rh6_19-win because we had to complete some testing on the other packages before pushing them. Later we noticed that this package was offered for installation by the Rhino 8 package manager, although it’s explicitly not a package for Rhino 8 (and won’t load there). Probably the same happens for Rhino 7. We had to yank version 1.24.0 to stop that problem. Also, on food4rhino only version 1.24.0 for Rhino 6 was showing up.

Related documentation page which explains the behavior I was expecting (Rhino 8 not offering to install packages made for Rhino 6): Rhino - Creating a Grasshopper Plug-In Package

It might be related that yesterday I got a .net compatibility issue when shapedriver automatically updated to 1.24. Had to revert back to 1.23. I’m using Rhino 8.

@Matt_H yes, the problem I described above explains what you experienced, because the package we published for rh6_19-win is not compatible with later versions of Rhino. When we realized this behavior of the package manager (not respecting the distribution tag), we yanked version 1.24.0.

For now I consider this a bug in the package manager.

@will do you agree that this is a bug?

Thanks for reporting this unexpected behaviour, @snabela.

There are a couple of goals here that may be at odds with one another. On the one hand I want the distribution tags to allow package authors to be specific, but at the same time we don’t want to penalise those who don’t re-publish their packages for a new major version of Rhino if the content (plug-in) is already compatible.

When the concept distributions was first introduced, packages would not show up in Rhino unless they had been published for that Rhino major version (or “any”). After Rhino 8 was released, we found that there were many packages which were still compatible (since we work hard not to break SDKs where possible) but were not showing up. So, we changed the behaviour such that Rhino would consider packages compatible even if they had been published for earlier major versions.

I’m sorry for the confusion caused by changing this behaviour. Knowing now how distribution compatibility is intended to work, do you think you’re able to work with the current behaviour?