SVN and Compiled Interface Libraries

Mark-V3
2015-06-05
2015-06-05
  • Mark-V3 - 2015-06-05

    Hello,

    I have the following problem:
    We have also Interface-Libraries in our SVN, after I checkout the library-project to my system, I e.g. change the version of the library.
    Then I create a compiled library, if the library is not in the repository I can install the library without any problem.
    The next time I change e.g. the version, I can create a compiled library, commit my changes to the svn and so on.
    But If I try to install the library this action failed, with the following message:

    "Interface library is not compatible with the current version.. Reason Declaration of the variable "MINREVISION" in 'SVN_VERSION_INFO' changed"

    But this couldn't be possible the Revision increments by 1 like expected, because of the change of the library version.

    If I do the same working without compiled-libraries (FILESAVEANDINSTALL instead of FILESAVEASCOMPILEDLIBRARY) then I have no problem with this SVN_VERSION_INFO object.

    It looks that there is something missing/wrong during the compilation of a Interface-Library in combination with SVN.
    Because If I work with Standard-Libraries there are no problems creating compiled-libraries and installing them into the repository.

    I hope that someone can explain this to me.

    Best regards
    Mark

     
  • Anonymous - 2015-06-05

    Originally created by: M.Schaber

    Hi,

    It seems you found a bug in CODESYS where the SVN Plugin does not play well with libraries.

    This was not found in-house because our build server always does a "disconnect" of the project before it creates the compiled library, relying on the manually set version information in the Project Information and not using the SVN_VERSION_INFO.

    If you don't need the SVN revision information in the compiled library, you can also do a disconnect before creating the compiled library, thus dropping the SVN_VERSION_INFO before the compiled library is created.

    As interfaces should not contain any executable code, and are strictly upwards compatible, the acutal svn revision info should not matter at all, so I think disconnecting before compiling actually is the best solution for now. For this reason, the best fix on our side may be to just disable the SVN_VERSION_INFO code generation for interface libraries, but this needs to be discussed.

    Another workaround might be to unset the "released" flag in the project information, but this has some other severe side effects.

    I did file your problem as SVN-278 in our jira database.

     

Log in to post a comment.