Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Cinema tools local development, control and deployment

    General Talk
    2
    9
    1.5k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AndreAnjos
      last edited by AndreAnjos

      Hi all,

      I'm currently trying to organise the way we develop, control and deploy our tools to the team and I'm trying to understand what would be the best solution to develop locally without conflicting with deployed libraries.
      Hopefully this is something that some of you have experience, so would be awesome to hear your thoughts please.

      I'm not sure if my idea is feasible, because of the way Cinema imports 3rd party modules, but hopefully we can have a workaround.
      To start off my idea would be to develop within a virtual environment inside the user Cinema's preferences.
      For example:

      Create a virtual environment folder here
      C:\Users\user_name\AppData\Roaming\MAXON\Cinema 4D R19_BFE04C39\library\scripts\virtual_envs
      or
      C:\Users\user_name\AppData\Roaming\MAXON\Cinema 4D R19_BFE04C39\plugins\virtual_envs

      This would let me control which libraries I've install for that tool, without affecting the deployed libraries in
      C:\Program Files\MAXON\Cinema 4D R19\resource\modules\python\Python.win64.framework\Lib\site-packages

      Once we are happy to release the tool, we would push it as a package with other tools (including 3rd party modules) to source control it.

      Would then be scheduled to deploy to the team as a package to the correct folders.
      Creating a cycle by deleting the package first (if exists) and deploying the newer version.

      Hopefully this makes any sense!

      Thank you very much for your help and ideas! ☺

      Andre

      1 Reply Last reply Reply Quote 0
      • ManuelM
        Manuel
        last edited by

        Hello,

        Regarding your script plugins, you can use Environment Variables like C4D_SCRIPTS_DIR (see help)

        You can also use the argument g_additionalModulePath (instead of using the preferences) to add path where you store your modules so you can separate your development tools and the one for production. This one can be used as an argument for cinema4D or as a Environment variable. Of course

        you can also use

        About the Python librairies, you really need to have different version of your librairies ?

        Cheers
        Manuel

        MAXON SDK Specialist

        MAXON Registered Developer

        1 Reply Last reply Reply Quote 0
        • A
          AndreAnjos
          last edited by AndreAnjos

          @m_magalhaes said in Cinema tools local development, control and deployment:

          Hello,

          Regarding your script plugins, you can use Environment Variables like C4D_SCRIPTS_DIR (see help)

          Hi Manuel,

          Cheers for your help!

          To be honest as long as I have the development and production packages separate I'm happy.

          You can also use the argument g_additionalModulePath (instead of using the preferences) to add path where you store your modules so you can separate your development tools and the one for production. This one can be used as an argument for cinema4D or as a Environment variable. Of course

          Sorry don't know where to use the argument I'm afraid. Can you please clarify?
          I understand what you mean now! I've checked this thread as well and makes more sense. I'm using R19 at the moment, so it seems no go after trying. Unless I'm incorrect?

          you can also use

          About the Python librairies, you really need to have different version of your librairies ?

          Cheers
          Manuel

          At the moment no! But I can see it becoming a problem. Would prefer to have this sorted now, then having to fix it later.
          I'm thinking using Rez to load the packages. Would that be wise?

          Thanks again! ☺

          1 Reply Last reply Reply Quote 0
          • ManuelM
            Manuel
            last edited by

            hello,
            By the way i moved the topic to this catégorie it's more general.

            About arguments, that something you can add on your shortcut for example or your arguments list on visual studio (or xcode)
            Yes if you are using r19 you can use the old environment variables.C4D_PLUGINS_DIR and C4D_SCRIPTS_DIR
            (there was a bug with C4D_SCRIPTS_DIR you can enter only one path, corrected with R21)
            you can create those variable with a shell script that will also launch Cinema4D.

            About the python librairies :

            we have not too much experience on that area. I want to fully understand and be sure.

            You want to have in the same cinema4D's environment several version of python librairies.
            You could have something like :
            for a python librairie :
            version 1.2 for a tool that is already in production
            version 1.4 for an update you are working on and still not released
            and switching from one to another ?

            Cheers
            Manuel

            MAXON SDK Specialist

            MAXON Registered Developer

            A 1 Reply Last reply Reply Quote 0
            • A
              AndreAnjos @Manuel
              last edited by

              @m_magalhaes said in Cinema tools local development, control and deployment:

              hello,
              By the way i moved the topic to this catégorie it's more general.

              hi,

              Absolutely fine! Thanks for moving it! 👍

              About arguments, that something you can add on your shortcut for example or your arguments list on visual studio (or xcode)
              Yes if you are using r19 you can use the old environment variables.C4D_PLUGINS_DIR and C4D_SCRIPTS_DIR
              (there was a bug with C4D_SCRIPTS_DIR you can enter only one path, corrected with R21)
              you can create those variable with a shell script that will also launch Cinema4D.

              Awesome! Works fine at the moment.

              About the python librairies :

              we have not too much experience on that area. I want to fully understand and be sure.

              You want to have in the same cinema4D's environment several version of python librairies.
              You could have something like :
              for a python librairie :
              version 1.2 for a tool that is already in production
              version 1.4 for an update you are working on and still not released
              and switching from one to another ?

              Yes, that's about right! I'm going to try and create something that enables me to check the requirements for each package and compare it against new updates in the server and only install if not found, which hopefully will give me more control. Not sure if it will stop any issues, but it will be easier for me investigate and learn.

              Started exploring Rez, but it's currently not working, already giving errors with cmake and I'm just running the example hello_world. Using Windows 7, which from what I read is not really the best for it.
              If there is anyone with some solution do let me know, please. Will try and have another go.

              > C:\Users\anjosa\Downloads\rez-master\rez-master\example_packages\hello_world>r
              ez-build
              
              --------------------------------------------------------------------------------
              
              Building hello_world-1.0.0...
              --------------------------------------------------------------------------------
              
              Resolving build environment: python
              resolved by anjosa@GBMUD11368, on Wed Aug 28 16:07:48 2019, using Rez v2.40.3
              
              requested packages:
              python
              ~platform==windows         (implicit)
              ~arch==AMD64               (implicit)
              ~os==windows-6.1.7601.SP1  (implicit)
              
              resolved packages:
              arch-AMD64               c:\users\anjosa\packages\arch\AMD64
                                                  (local)
              os-windows-6.1.7601.SP1  c:\users\anjosa\packages\os\windows-6.1.7601.SP1
                                                  (local)
              platform-windows         c:\users\anjosa\packages\platform\windows
                                                  (local)
              python-2.7.9             c:\users\anjosa\packages\python\2.7.9\platform-windows\
              arch-AMD64\os-windows-6.1.7601.SP1  (local)
              
              Invoking cmake build system...
              Executing: c:\cmake\bin\cmake.exe -d C:\Users\anjosa\Downloads\rez-master\rez-ma
              ster\example_packages\hello_world -Wno-dev -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJE
              CT=TRUE -D_ECLIPSE_VERSION=4.3 --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX=c:\us
              ers\anjosa\packages\hello_world\1.0.0 -DCMAKE_MODULE_PATH=%CMAKE_MODULE_PATH% -D
              CMAKE_BUILD_TYPE=Release -DREZ_BUILD_TYPE=local -DREZ_BUILD_INSTALL=0 -G NMake M
              akefiles
              Not searching for unused variables given on the command line.
              CMake Error: Could not create named generator NMake
              
              Generators
                Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
                                               Use -A option to specify architecture.
              * Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                                               Optional [arch] can be "Win64" or "ARM".
                Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                                               Optional [arch] can be "Win64" or "ARM".
                Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
                                               Optional [arch] can be "Win64" or "ARM".
                Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
                                               Optional [arch] can be "Win64" or "ARM".
                Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
                                               Optional [arch] can be "Win64" or "IA64".
                Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
                                               Optional [arch] can be "Win64" or "IA64".
                Borland Makefiles            = Generates Borland makefiles.
                NMake Makefiles              = Generates NMake makefiles.
                NMake Makefiles JOM          = Generates JOM makefiles.
                MSYS Makefiles               = Generates MSYS makefiles.
                MinGW Makefiles              = Generates a make file for use with
                                               mingw32-make.
                Unix Makefiles               = Generates standard UNIX makefiles.
                Green Hills MULTI            = Generates Green Hills MULTI files
                                               (experimental, work-in-progress).
                Ninja                        = Generates build.ninja files.
                Watcom WMake                 = Generates Watcom WMake makefiles.
                CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
                CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
                CodeBlocks - NMake Makefiles JOM
                                             = Generates CodeBlocks project files.
                CodeBlocks - Ninja           = Generates CodeBlocks project files.
                CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
                CodeLite - MinGW Makefiles   = Generates CodeLite project files.
                CodeLite - NMake Makefiles   = Generates CodeLite project files.
                CodeLite - Ninja             = Generates CodeLite project files.
                CodeLite - Unix Makefiles    = Generates CodeLite project files.
                Sublime Text 2 - MinGW Makefiles
                                             = Generates Sublime Text 2 project files.
                Sublime Text 2 - NMake Makefiles
                                             = Generates Sublime Text 2 project files.
                Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
                Sublime Text 2 - Unix Makefiles
                                             = Generates Sublime Text 2 project files.
                Kate - MinGW Makefiles       = Generates Kate project files.
                Kate - NMake Makefiles       = Generates Kate project files.
                Kate - Ninja                 = Generates Kate project files.
                Kate - Unix Makefiles        = Generates Kate project files.
                Eclipse CDT4 - NMake Makefiles
                                             = Generates Eclipse CDT 4.0 project files.
                Eclipse CDT4 - MinGW Makefiles
                                             = Generates Eclipse CDT 4.0 project files.
                Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
                Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
              
              16:07:48 ERROR    BuildError: The cmake build system failed.
              

              Thank you very much! ☺

              1 Reply Last reply Reply Quote 0
              • ManuelM
                Manuel
                last edited by

                Hello,

                I will have to ask to see if someone have experience on that. As you may know (or not) we are at few days from the release of R21. So once the release is gone we will have more room.

                I'll be back once I have informations. Don't hesitate to ping us again if you don't have feedback from me.

                About your issue with Rez, you should ask them, If i had the answer I would share but it's out of our scope we can't investigate this part 🙂

                Cheers,
                Manuel

                MAXON SDK Specialist

                MAXON Registered Developer

                A 1 Reply Last reply Reply Quote 0
                • A
                  AndreAnjos @Manuel
                  last edited by AndreAnjos

                  @m_magalhaes said in Cinema tools local development, control and deployment:

                  Hello,

                  I will have to ask to see if someone have experience on that. As you may know (or not) we are at few days from the release of R21. So once the release is gone we will have more room.

                  Hi Manuel,

                  Thank you! looking forward to have a play with it! ☺

                  I'll be back once I have informations. Don't hesitate to ping us again if you don't have feedback from me.

                  About your issue with Rez, you should ask them, If i had the answer I would share but it's out of our scope we can't investigate this part 🙂

                  Cheers,
                  Manuel

                  That's fine! I'm currently just exploring some possibilities that hopefully will be helpful to people. Because of time constraints might leave Rez for now and concentrate with something slightly simpler, less powerful. Should be good!

                  Thanks again! ☺

                  1 Reply Last reply Reply Quote 0
                  • ManuelM
                    Manuel
                    last edited by

                    And if you find something in your side, sharing that would be awesome.

                    MAXON SDK Specialist

                    MAXON Registered Developer

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      AndreAnjos @Manuel
                      last edited by

                      @m_magalhaes said in Cinema tools local development, control and deployment:

                      And if you find something in your side, sharing that would be awesome.

                      Absolutely! ☺

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post