Nautilus
Nautilus

Reputation: 71

Why is my plug-in built with Ocean/Petrel 2010.2.2 not working with 2010.2?

We have built a plug-in with the latest Ocean/Petrel hotfix: 2010.2.2. All our tests work OK. But the plug-in crashes when used with 2010.2.

Any advice from anyone?

Upvotes: 3

Views: 816

Answers (2)

Grant Marblestone
Grant Marblestone

Reputation: 106

I have also found this to be a problem. What i do is keep a copies of the Public folder for each version of Petrel and link the references to the folder/version i wish to compile against instead of always linking to the installed petrel version. You can switch easily using a .targets file. I then follow what Vincent said and ensure to reference the appropriate dlls for a build.

So, even if i have Petrel 2010.2 i reference the 2010.1 libraries during the build.

Grant

Upvotes: 5

Vincent
Vincent

Reputation: 117

Ocean/Petrel releases are classified as follow:

  • Major releases: 2009.1, 2010.1, 2011.1
  • Minor releases, or patches: 2009.2, 2010.2, 2011.2
  • Hot fixes: 2010.2.1, 2010.2.2

Major releases are not binary compatible: a plug-in compiled against 2009.1 needs to be recompiled to work with 2010.1. With the 2 year API stability, it should be just a recompilation. You might have warnings about Obsolete APIs that will be deprecated in the next release, but it should be a quick task.

Minor releases are usually backward binary compatible: Petrel 2010.2 will be able to run a plug-in compiled with 2010.1. However forward binary compatibility is not ensured: Petrel 2010.1 will not run a plug-in compiled with 2010.2.
Note that Minor releases can also introduce few, but new APIs.

Hot fixes are always backward binary compatible: Petrel 2010.2 can run plug-ins compiled with 2010.1, 2010.2, 2010.2.1. However forward binary compatibility is currently not ensured: Petrel 2010.2 will not run plug-ins compiled with 2010.2.1 or 2010.2.2.
Hot fixes never introduce new APIs.

So the rules are:

  • Always compile your plug-in with the last Major Release (in your case 2010.1),
  • Compile your plug-in with the latest Minor release (2010.2) if you absolutly need a new API introduced in this patch.
  • But Never compile your plug-in against hot fixes,

Not following these rules will force your clients to use, deploy or redeploy the patch or hot fix you used to build your plug-in. This will delay (best case) or prevent (worse case) sales/adoption of you plug-in by your clients.

Hope it helps
Regards
Vincent

Upvotes: 7

Related Questions