The Pain of Incomplete Documentation and Its Inconsistencies.
This post is directed to Terrasoft support, as it's unclear whom to address to get answers. There are many questions, but the documentation does not provide answers to them.
There is an issue with the documentation.
On the page https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/packages/assembly-package, the description of compiling assembly packages states: "To compile the configuration and assembly packages, click the Compile all button in the drop-down list of the Compile button on the Creatio IDE’s toolbar." This would be logical and useful because when compiling the configuration partially, I would not want to compile all assembly packages. However, in practice, the compilation of assembly packages is executed, and they are modified. Whether this is a bug in Creatio or a documentation oversight is unknown.
Additionally, during compilation, the entire .csproj file, as well as other files, are rewritten, even though the content doesn't change, only the order of lines is altered. Why is this done? This significantly interferes with working with version control systems.
Like
Hello,
"To compile the configuration and assembly packages, click the Compile all button"
This means everything is being compiled, including assembly packages.
If you need to compile a specific package, you can select compile specifically on that package.
"This would be logical and useful because when compiling the configuration partially, I would not want to compile all assembly packages. "
Under what circumstances exactly?
Partially means if you're compiling a specific assembly package, then only that package should be compiled.
Where the .csproj file changes, please describe the case—what was changed, whether it was or wasn't changed, and what the expected vs. actual result is.
Kalymbet Anastasia,
Let me reiterate: "Compile all" indeed compiles all assembly packages and the configuration, but even the regular "Compile" button also compiles all assembly packages, which contradicts the behavior described in the documentation.
As for the .csproj file: when a team (not just a single developer) is working on a project, the .csproj file is rebuilt each time a developer compiles it after pulling it from the version control system. Even though the content of the file doesn't change, the order of the lines inside the file does, which triggers unnecessary changes in the version control system. Then, this file is passed on to the next developer, who compiles the project again, and the process repeats. This results in constant commits with changes that are essentially non-existent, as the content of the file remains the same.
Additionally, when creating an assembly package, dependencies are not assigned immediately; they only appear after several compilation cycles across different developers. This adds further complexity to the development process.
Hello,
The documentation states that you can perform a compilation either of the configuration along with the assembly package or compile the package separately.
I do not see any information indicating that the 'Compile' button does not trigger the compilation of assembly packages. I will pass this information to our responsible team so they can add specific details regarding the 'Compile' button.
'When creating an assembly package, dependencies are not assigned immediately.'
Are you referring to SVN? Or are you not seeing the dependencies on the website?
Kalymbet Anastasia,
Hello Anastasia,
I was referring to the package dependencies: when a package is created, the dependencies in the `.csproj` file are not immediately added for all standard assembly packages. They only appear after uploading and downloading the package several times and after multiple compilations. This complicates the development process.
Also, the issue remains that the content of the `.csproj` file gets rearranged if a user retrieves it from the version control system rather than creating it themselves and then performs a compilation. This causes unnecessary changes in the version control system because the order of the lines in the file changes, even though the actual content does not. This leads to constant commits with changes that are essentially nonexistent, as the content of the file remains the same.
Kalymbet Anastasia,
Hello Anastasia,
we are also experiencing this issue constantly and it is really troublesome!
Excluding the file via .gitignore does not help, because occasionally, you need changes to be added to the .csproj file.
Also, it is not so easy to find out whether there was a real change involved because code editors like vs code typically compare text-based line by line and since the .csproj file is XML-based it would need a logical compare based on XPath.
Please help us with this issue!