TD-26634: Commandline builds using new switch -S for completely silent builds
-
- Founder/Site Admin
- Posts: 3473
- Joined: 24 Feb 2017, 09:12
- Location: Gouda, The Netherlands
TD-26634: Commandline builds using new switch -S for completely silent builds
Feature request registered as ticket CS0057817, TD-26634
This was the text given in the service ticket:
To automatically build sources we can use the build option switches of cbiXX.exe:
-B, to build executables
-M, to build dynalibs
Big problem with the current command-line build feature is that it is not silent.
When using continuous integration (CI) or continuous delivery (CD), TD applications are automatically build using batch files/PowerShell scripts or other build tools (like FinalBuilder).
These build actions are mostly performed on dedicated servers. Also local builds can be performed.
Builds executed from command line should never present error messages, progress screens or any other visual action forms/dialogs which needs user interaction.
When builds are performed on servers and common errors occur which present GUI’s, users have to connect to those servers and close them manually or else the process is just halted. This hinders CI and CD severely.
Mainly the purpose of CI/CD is to automatically build applications and the result of that build is used to inform the CI process the applications can be compiled and build and that next steps in the development process can proceed.
When building locally, on developer machines, when GUI’s like the progress window is presented, it will steal the focus of other applications which are in use.
This hinders working on those systems while TD builds are going on. Also dangerous is the fact that the progress window offers to cancel the build.
So while developers are working on those machines and press enter, click using mouse in their application currently in use, they could cancel the build process by accident. Which means starting the whole process over from beginning.
To avoid these issues, the workstation which has started the automated build process cannot be used at all which can take hours.
This forces developers to run these builds on other machines which could present blocking GUI’s during the build process, as explained above.
So the current implementation of the command-line build feature in TD does not meet the requirements for CI/CD at all.
Therefore, this feature request:
Introduce a new command-line switch –S
(this will then not break existing way TD uses the command-line build, it is therefore an addition to the feature)
This will build applications purely silent where no GUI’s are ever presented. Errors during load/compile/build will always be written to the .err file.
The cbixx.exe process will always return the success/failure using EXIT CODES.
To show the problems with the current feature a small demo batch script and some sources are created. See attachment.
By running the batch, several tests are performed to prove that in some cases GUI’s are presented.
The new feature –S should prevent those GUI’s to popup.
These issues are found but maybe others could be present also. Use the batch file to see them live.
(1) During load/compile/build, a progress window is shown which messes up focus of apps and can cancel process
(2) When dynalib include not found a messagebox is presented
(3) When input source is not found, a file select dialog is presented. It should just error out.
(4) When output file specification is invalid, the process crashes leaving a .tmp file
(5) When destination dynalib is already present AND the file is readonly, a messagebox is presented
(6) NO EXITCODES are returned from cbiXX.exe to inform the result of the build. So calling processes are not able to check if a build succeeded or not.
Extra coding needs to be implemented to get the build result by checking the existence of an .err file or the non-existence of the build file.
Lower priority feature request but also important is a new -V switch (verbose).
This will dump text info on stdout, just like MSBUILD does to show the steps taken in loading/compiling and building and present the result OK or ERROR.
This was the text given in the service ticket:
To automatically build sources we can use the build option switches of cbiXX.exe:
-B, to build executables
-M, to build dynalibs
Big problem with the current command-line build feature is that it is not silent.
When using continuous integration (CI) or continuous delivery (CD), TD applications are automatically build using batch files/PowerShell scripts or other build tools (like FinalBuilder).
These build actions are mostly performed on dedicated servers. Also local builds can be performed.
Builds executed from command line should never present error messages, progress screens or any other visual action forms/dialogs which needs user interaction.
When builds are performed on servers and common errors occur which present GUI’s, users have to connect to those servers and close them manually or else the process is just halted. This hinders CI and CD severely.
Mainly the purpose of CI/CD is to automatically build applications and the result of that build is used to inform the CI process the applications can be compiled and build and that next steps in the development process can proceed.
When building locally, on developer machines, when GUI’s like the progress window is presented, it will steal the focus of other applications which are in use.
This hinders working on those systems while TD builds are going on. Also dangerous is the fact that the progress window offers to cancel the build.
So while developers are working on those machines and press enter, click using mouse in their application currently in use, they could cancel the build process by accident. Which means starting the whole process over from beginning.
To avoid these issues, the workstation which has started the automated build process cannot be used at all which can take hours.
This forces developers to run these builds on other machines which could present blocking GUI’s during the build process, as explained above.
So the current implementation of the command-line build feature in TD does not meet the requirements for CI/CD at all.
Therefore, this feature request:
Introduce a new command-line switch –S
(this will then not break existing way TD uses the command-line build, it is therefore an addition to the feature)
This will build applications purely silent where no GUI’s are ever presented. Errors during load/compile/build will always be written to the .err file.
The cbixx.exe process will always return the success/failure using EXIT CODES.
To show the problems with the current feature a small demo batch script and some sources are created. See attachment.
By running the batch, several tests are performed to prove that in some cases GUI’s are presented.
The new feature –S should prevent those GUI’s to popup.
These issues are found but maybe others could be present also. Use the batch file to see them live.
(1) During load/compile/build, a progress window is shown which messes up focus of apps and can cancel process
(2) When dynalib include not found a messagebox is presented
(3) When input source is not found, a file select dialog is presented. It should just error out.
(4) When output file specification is invalid, the process crashes leaving a .tmp file
(5) When destination dynalib is already present AND the file is readonly, a messagebox is presented
(6) NO EXITCODES are returned from cbiXX.exe to inform the result of the build. So calling processes are not able to check if a build succeeded or not.
Extra coding needs to be implemented to get the build result by checking the existence of an .err file or the non-existence of the build file.
Lower priority feature request but also important is a new -V switch (verbose).
This will dump text info on stdout, just like MSBUILD does to show the steps taken in loading/compiling and building and present the result OK or ERROR.
You do not have the required permissions to view the files attached to this post.
Regards,
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
Ok, helpful.
But we are running automated builds and automated tests on a dedicated Gupta Build Servers each night for many years now and we never had one of the problems described...
Rainer
But we are running automated builds and automated tests on a dedicated Gupta Build Servers each night for many years now and we never had one of the problems described...
Rainer
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
Hi David,
great request.
We sometimes have problems with nightly builds and an S-Switch would be helpful.
An S-switch for Team Object Manager would be useful too.
There is a problem when a subdirectory is missing - then it just hangs.
Or the account was hanging from last session.
We solve these kind of problems in advance with separate tools to ensure a proper setup - but a switch would be much better.
Regards Tom
great request.
We sometimes have problems with nightly builds and an S-Switch would be helpful.
An S-switch for Team Object Manager would be useful too.
There is a problem when a subdirectory is missing - then it just hangs.
Or the account was hanging from last session.
We solve these kind of problems in advance with separate tools to ensure a proper setup - but a switch would be much better.
Regards Tom
-
- Founder/Site Admin
- Posts: 3473
- Joined: 24 Feb 2017, 09:12
- Location: Gouda, The Netherlands
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
Did you get the exit codes working? If so, how?
Specially the dynalib not found issue is a bugger. When a dynalib was not built (due to whatever reason) and later on sources are being processed including that dynalib, the process just hangs with a messagebox.
Regards,
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
-
- Founder/Site Admin
- Posts: 3473
- Joined: 24 Feb 2017, 09:12
- Location: Gouda, The Netherlands
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
Ah, maybe I forgot to add another feature request which is related: the progress window when using the CDK.
I have CDK tools running on large codebases to check stuff (on ad hoc basis) and this processing takes time.
During that I would like to work on other stuff, but this is nearly impossible as the progress window is constantly popping up and steals the focus away from the other applications.
And how many times I clicked within another application and, Murphy's law, right on top of the progress window cancel button.
This stuff should just run in the background.
I will create a separate feature request for this. I have seen that when putting too much requests in one ticket, the one or the other will not get picked up.
I have CDK tools running on large codebases to check stuff (on ad hoc basis) and this processing takes time.
During that I would like to work on other stuff, but this is nearly impossible as the progress window is constantly popping up and steals the focus away from the other applications.
And how many times I clicked within another application and, Murphy's law, right on top of the progress window cancel button.
This stuff should just run in the background.
I will create a separate feature request for this. I have seen that when putting too much requests in one ticket, the one or the other will not get picked up.
Regards,
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
We do not use the exit codes.
We have a separate process which checks that all files are rebuild.
After this an automated test runs ~5 hours and checks, that everything is working properly.
All of this runs on a separate virtual Windows 10 machine...
Ok, we do not use dynalibs.Specially the dynalib not found issue is a bugger. When a dynalib was not built (due to whatever reason) and later on sources are being processed including that dynalib, the process just hangs with a messagebox.
We used them with 16bit Sql Windows 5.5 and had many problems.
So we decided not to use them any more.
=> Additional switches as you request them could be helpful.
Rainer
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
I don't use batch builds, but have CDK tools which I use almost regularly, and the progress window is really a PITA.Dave Rabelink wrote: ↑02 Jan 2023, 11:46Ah, maybe I forgot to add another feature request which is related: the progress window when using the CDK.
I have CDK tools running on large codebases to check stuff (on ad hoc basis) and this processing takes time.
During that I would like to work on other stuff, but this is nearly impossible as the progress window is constantly popping up and steals the focus away from the other applications.
And how many times I clicked within another application and, Murphy's law, right on top of the progress window cancel button.
This stuff should just run in the background.
I will create a separate feature request for this. I have seen that when putting too much requests in one ticket, the one or the other will not get picked up.
So I really welcome this feature request.
Hopefully this one will resolve the Migration Wizard issue also with popup windows for every single file, and if there is an error in the process you have to use some woodu stuff to find out which file has produced an error...
Igor Ivanovic
-
- Founder/Site Admin
- Posts: 3473
- Joined: 24 Feb 2017, 09:12
- Location: Gouda, The Netherlands
Re: TD-26634: Commandline builds using new switch -S for completely silent builds
Response from OpenText:
It appears that Development has added the feature request scheduled for TD version 7.6.
For your reference, please find the enhancement request details :
TD - 26634 -- Command line builds using new switch -S for completely silent builds
Regards,
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Dave Rabelink
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel
Who is online
Users browsing this forum: [Ccbot] and 0 guests