Articy Forum


https://www.articy.com:443/forum/

Frequent merge conflicts in generated Articy content

https://www.articy.com:443/forum/viewtopic.php?f=46&t=23202

Page 2 of 2

Re: Frequent merge conflicts in generated Articy content

Posted: Mon 23. Mar 2020, 17:04
by [Articy] Christian Schildt
Hi,

I just wanted to let you know that we started working on some changes and fixes related to build servers and source control.

For the building we want to offer a convenient solution via one or more command line arguments for importing the export file and closing the engine afterwards with an exit code that indicates the success of the import.
For more advanced use cases we make the import function public and take a look into events.

Currently it’s hard to give an ETA, but I will inform you here as soon as I have updates for you.


Best regards,

Chris

Re: Frequent merge conflicts in generated Articy content

Posted: Tue 24. Mar 2020, 08:36
by Moritz
Hi Chris,

this delights me to hear :) ! Thank you!
I'm very much looking forward to this!

Best regards,
Moritz

Re: Frequent merge conflicts in generated Articy content

Posted: Tue 24. Mar 2020, 09:20
by btsslawa
Awesome, looking forward to. I hope you'll update the documentation with the necessary information :)

Re: Frequent merge conflicts in generated Articy content

Posted: Mon 3. Aug 2020, 15:40
by [Articy] Christian Schildt
Hi,

here you can download a preview of the upcoming plugin version. This version is mostly about build server und source control improvements. Other pending fixes will be done in a separate version.

Following things changed in this version:
Code: Select all
- added: command line switches “-articyImport”, “-articyQuit” and “-articyPostImportMethod” to ease usage on build servers. See “Build Server Integration” guide in the online plugin help for more information.
- added: public method to start an import (ArticyEditorUtility.ImportArticyExport)
- added: importer callbacks (ArticyEditorUtility.importStateChanged)
- changed: made some methods in ArticyEditorUtility internal (GetFieldWithPrivateBaseMembers, StoreInInts, ULongFromInts, AssetCaretakerSetResource)
- changed: moved some properties of the ArticyPluginSettings into a new settings type called ArticyEditorSettings, which can be ignored by source control.
- changed: moved ArticyRuntimeSettings asset from Assets\ArticyImporter\Content\Generated\Resources to Assets\ArticyImporter\Content\Resources
- changed: re-enabled update notification
- changed: after changing the string resolving setting the last import gets now invalidated and a message box gets shown.
- fixed: exception when flow player custom inspector gets drawn in a project without a database
- fixed: some issues when importing shortly after the engine started


The technical documentation of this preview version can be found here. The most important change in the documentation is this guide, which is about build server integration.

If you experience any issues with this version, please let me know.


Best regards,

Chris

Re: Frequent merge conflicts in generated Articy content

Posted: Tue 17. Nov 2020, 13:11
by Moritz
Thank you so much! Yes, we will be needing articy integration with our build server soon, once again. Looking forward to trying the new (preview) version!

Re: Frequent merge conflicts in generated Articy content

Posted: Fri 15. Jan 2021, 12:49
by Moritz
Finally, I came around to update our build server setups and try the new plugin version (preview).

Good news is automated building with a preceding Articy content import works just fine, now. It was also really easy to setup using the -articyQuit, -articyImport and -articyPostImportMethod command line arguments, like in your guide.

So thank you very (!) much for this!

Unfortunately, there is something else, that does not seem to work. We have been using our build server for lightmaps baking, as well. Now, the method for baking does get called after the articy content import, but then Unity shuts down immediatly. Previously (with using -quit, -batchmode and -executeMethod command line arguments) this did not happen. Now (with -articyQuit, -articyImport and -articyPostImportMethod command line arguments) it does.

This is the method that gets called via -articyPostImportMethod. The log does get displayed.

Code: Select all
public static void Bake()
        {
            Debug.Log("Start baking");
            var scenePath = GetEnvironmentVariable("SCENE");
            Lightmapping.bakeCompleted += HandleBakingComplete;
            Lightmapping.BakeMultipleScenes(new []{scenePath});
        }


Maybe the -batchmode command line argument was necessary for some reason, I don't know. I'm going to continue to try to find a solution and/or cause for this.

Re: Frequent merge conflicts in generated Articy content

Posted: Tue 19. Jan 2021, 15:44
by [Articy] Christian Schildt
Hi Moritz,

thanks for the feedback!

Lightmap baking seems to be a problem because -articyQuit quits Unity in the same update cycle in which the -articyPostImportMethod gets executed. The easiest way should be to not use -articyQuit. Instead, you can use your HandleBakingComplete method to quit Unity via EditorApplication.Exit().
We take a look into making it more convenient to bake lightmaps on a build server with our plugin or at least update our documentation.

As you mentioned that you tried the preview plugin version: Meanwhile the build server related changes are also in the release version.


Best regards,

Chris

Re: Frequent merge conflicts in generated Articy content

Posted: Thu 1. Apr 2021, 10:24
by Moritz
Hi Christian,

I just realized that I didn't reply to you. Yes, your solution did indeed work fine. Thanks a lot :D !!

All in all our automated pipelines (both for builds and lightmaps-baking) work well, now.

A couple of nuisances remain, but I only now downloaded the latest update. I will share them soon, if they are still occur.

Thanks again,
Moritz

Re: Frequent merge conflicts in generated Articy content

Posted: Wed 21. Apr 2021, 13:21
by Moritz
We have updated our projects to Unity 2020.3.3f1 (from 2020.1.13f1) this week, and unfortunately all their respective build server jobs now fail; building same as lightmaps-baking.

They do not "fail" per se, but run endlessly after not finding the Articy-generated namespaces.

Here's the last part of Jenkins' output of building a project I set up for testing purposes:

Code: Select all
(.. importing of all other assets except Articy content ..)
Assets\LeanTween\Framework\LeanTest.cs
Assets\LeanTween\Framework\LeanTween.cs
Assets\LeanTween\Framework\LeanTweenExt.cs

-----CompilerOutput:-stdout--exitcode: 1--compilationhadfailure: True--outfile: Temp/Assembly-CSharp.dll
Microsoft (R) Visual C# Compiler version 3.5.0-dev-20359-01 (8da8ba0c)
Copyright (C) Microsoft Corporation. All rights reserved.

Assets\Game\Scripts\Level\Articy\NPCRepository.cs(1,14): error CS0234: The type or namespace name 'Klib' does not exist in the namespace 'Articy' (are you missing an assembly reference?)
-----EndCompilerOutput---------------
- Finished script compilation in 7,407783 seconds
Assets\Game\Scripts\Level\Articy\NPCRepository.cs(1,14): error CS0234: The type or namespace name 'Klib' does not exist in the namespace 'Articy' (are you missing an assembly reference?)

AssetDatabase: script compilation time: 8.302238s


In this case I only accessed Articy content in one file (NPCRepository). In other projects there is a huge list of all other references to Articy namespaces not being found.
After these lines, building/baking is stuck and continues without progress until terminated manually.

This only happens after the upgrade to Unity 2020.3.3f1 and in fact if I go back to Unity 2020.1.13f1, everything works as expected, again.

Playing and building in the Unity editor itself works fine, as do build-server builds without Articy. But automated processes using -articyImport (and -articyQuit & -articyPostImportMethod) appear to not work, anymore.

Articy Unity Importer is up do date (version 2.3.1).

Re: Frequent merge conflicts in generated Articy content

Posted: Tue 27. Apr 2021, 11:48
by Moritz
For anyone reading or following this: Christian (of Articy) found a solution. I had to add -batchmode and -ignoreCompilerErrors to the Unity command line and it's all working again!

The problem apparently came up due to Unity's new "safe mode" feature.

All times are UTC
Page 2 of 2