<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Ticket search results</title><link>https://forge.codesys.com/tol/cforge/tickets/</link><description>You searched for !status:wont-fix &amp;&amp; !status:closed</description><language>en</language><lastBuildDate>Wed, 06 May 2026 10:57:04 -0000</lastBuildDate><item><title>Unable to Connect To OPC Ua server through UserName identity</title><link>https://forge.codesys.com/tol/cforge/tickets/34/</link><description>Hi Team, i'm using the codesys to create an opc ua client to read the data from "Prosys OPC UA server simulation" tool .. I can able to connect to the server with anonymous authentication ... 
But when i tried to connect with user name authentication if fails to disconnect and does not return any errorID ... I have fixed security_check_failed error by trusting the client certificate on server side and also fixed invalid_certificate issue by trusting the server cetificate on client side .. After fixing these to error it fails to connect with NO_ERROR message. 

And i also noticed an error message like "Demo mode for CmpOPCUAClient started. Will expire and stop!" in the device log tab .

please let me know the changes required to establish the connection ...</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kiranbsiddaiah</dc:creator><pubDate>Wed, 06 May 2026 10:57:04 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/34/</guid></item><item><title>markdown script nullreference exception</title><link>https://forge.codesys.com/tol/cforge/tickets/33/</link><description>Hi, 

I´m planning to use cforge for my new project and now I´m facing some issues with the markdown script.

I have a minimal project I wanted to check the cforge functionalities with.
I created a package first and then I wanted to build it to see the markdown output.

The markdown script ends with the error "exception System.NullReferenceException: Traceback" in line 36 of the python file.

Am I using it wrong or is this a known "feature"?

I appreciate any help you can provide.

Regards,
mase

</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mase</dc:creator><pubDate>Tue, 02 Jul 2024 08:47:18 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/33/</guid></item><item><title>Android App: Cache handling on Samsung S10 / Android 10</title><link>https://forge.codesys.com/tol/cforge/tickets/31/</link><description>At least on this device, we get an error "Website not found ... /saml?return_to=/forge/news/ ... net::ERR_CACHE_MISS"</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Thu, 24 Sep 2020 12:22:00 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/31/</guid></item><item><title>Checkout with cforge not working on large repos</title><link>https://forge.codesys.com/tol/cforge/tickets/30/</link><description>When checking out a large repo, e.g. using the checkout with cforge button, it gets to [this line](https://forge.codesys.com/tol/cforge/code/HEAD/tree/trunk/cforge/cforge/Package/CFORGE/Scripts/pysvn.py#l25) then gives the message 
~~~
svn: E175009: The XML response contains invalid XML
svn: E130003: Malformed XML: no element found at line 1
~~~
Experimenting  at [mqttsparkplugb#48](https://forge.codesys.com/prj/mqttsparkplugb/tickets/48/#) with the below command in command prompt shows that the problem is the server times out after 30 seconds during the list generarion, and instead sends a TCP FIN ACK

~~~
svn list  -R https://forge.codesys.com/svn/prj,mqttsparkplugb,code/
~~~

Question: is there a server side setting or client side setting to allow the svn list -R command on large repositories? Or if you like I or someone else could rewrite the script to be a bit more gentle?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Tue, 25 Aug 2020 11:51:27 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/30/</guid></item><item><title>cforge: .project to markdown converter misses CONSTANT keyword</title><link>https://forge.codesys.com/tol/cforge/tickets/28/</link><description>https://forge.codesys.com/prj/mqttchat/code/HEAD/tree/trunk/MQTTChat.project
the first line VAR_GLOBAL
should read VAR_GLOBAL CONSTANT
maybe should include the name of the GVL list also, similar to how the heading PLC_PRG is shown</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Wed, 25 Mar 2020 21:23:11 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/28/</guid></item><item><title>Android App: can't scroll menu in landscape mode</title><link>https://forge.codesys.com/tol/cforge/tickets/27/</link><description>Steps to repeat:
Turn phone to landscape mode
Hit menu
Try to scroll to "Users"
IS: can't scroll to "Users"
SHOULD: scrolling
WORKAROUND: Portrait mode

Same problem using Chrome App instead</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Thu, 20 Feb 2020 01:16:00 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/27/</guid></item><item><title>Android: Product News Page opened in App gives errors</title><link>https://forge.codesys.com/tol/cforge/tickets/26/</link><description>In the app, go to Product News, click CODESYS Store under the Profiler news item.
IS:
"Webpage not available
The webpage at http://store.codesys.com/ could not be loaded because:

net::ERR_CLEARTEXT_NOT_PERMITTED"
THEN:
press back, navigate to some page you haven't been before
IS:
"Webpage not available
The webpage at https://forge.codesys.com/forge/news/2020/02/app-update/ could not be loaded because:

net::ERR_CACHE_MISS"
THEN:
Wait 5 min or so. Links work again

SHOULD:
1. Some sort of error handling so permission errors with webview don't lock other links for 5minutes.
2. Forge product news should be sanitized to not break the app. Maybe https would fix it?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Fri, 21 Feb 2020 00:30:47 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/26/</guid></item><item><title>Notifications aren't fired after reboot</title><link>https://forge.codesys.com/tol/cforge/tickets/23/</link><description>Notifications are only fired when the app was opened once</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Sun, 02 Feb 2020 06:06:31 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/23/</guid></item><item><title>Future of cforge package</title><link>https://forge.codesys.com/tol/cforge/tickets/21/</link><description>What do you think about the current structure and handling of the package?

Shouldn't we put the SVN specific commands, and later the Git commands into hooks of Tortoise SVN or Tortoise Git?

Could improve the handling of repositories and the setup enormously in my opinion.

Hope to here some feedback and ideas from you.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Thu, 16 Apr 2020 20:08:04 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/21/</guid></item><item><title>renaming cforge commands</title><link>https://forge.codesys.com/tol/cforge/tickets/15/</link><description>Hi,

While using cForge to create a Package some questionmarks arose with me. Only after reading the wiki I understood the workflow. Therefore I would like to suggest some renaming in the context menu command's aso they will become more intuitive;

1) "Create Package" into =&gt; "Create Manifest for package" 
2) "Build" into =&gt; "Build Package"


Hope my suggestion will be picked up
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Sun, 19 Jan 2020 09:37:37 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/15/</guid></item><item><title>create Package bug</title><link>https://forge.codesys.com/tol/cforge/tickets/14/</link><description>Hi,

I found a bug in the "create package" command in cForge. Apperently spaces in the CWD are not permitted.
See the following output;

~~~
----------------------------------------------------------------------------
cforge started
Build date:     $WCNOW$
Revision based: $WCREV$
----------------------------------------------------------------------------

Easy attach enabled. Now attach with debugger, and then press Enter here!

CWD: C:\Users\user\Desktop\I2C mcp7941x
User elevated: False
default case: --create-package

[INFO] Executing: C:\Program Files\CODESYS 3.5.14.0\CODESYS\CFORGE\Scripts\create-package.py


[Exception] command create-package.py caused an exception:
Traceback (most recent call last):
  File "C:\Program Files\CODESYS 3.5.14.0\CODESYS\CFORGE\Scripts\create-package.py", line 145, in &lt;module&gt;
IOError: [Errno 2] Could not find a part of the path 'C:\Users\user\Desktop\I2C\license.txt'.: C:\Users\user\Desktop\I2C\license.txt

----------------------------------------------------------------------------
cforge finished.
----------------------------------------------------------------------------
~~~

As clearly seen, the original path is "C:\Users\user\Desktop\I2C mcp7941x"
But the output is being written to "C:\Users\user\Desktop\I2C\" which fails.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Sat, 18 Jan 2020 22:33:32 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/14/</guid></item><item><title>Automatic Build</title><link>https://forge.codesys.com/tol/cforge/tickets/13/</link><description>Support an automated build system by implementing a meta command, which executes several others, based on a configuration passed to it. (like passing a build job to cforge)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Sat, 20 Apr 2019 09:54:02 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/13/</guid></item><item><title>adding a "generate-chm.py" command to CFORGE</title><link>https://forge.codesys.com/tol/cforge/tickets/11/</link><description>I posted a little bootstrapper for CFORGE to detect svn.exe 
+ add LibDoc.exe path to the environment variables. 

Via libdoc.exe @ C:\Program Files\CODESYS 3.5.14.0\CODESYS\DocScripting\3.5.14.0 we can implement one or several toolchain commands to make life more easy. My basic idea is to to add a “generate-chm.py” command to extend CFORGE with a “generate chm from library” command. 
Then we (community) can add a automagicly generate .chm files from a library/project with and add them to our .package as end-user  documentation =&gt; very sweet 😊 
Check out the the “Script your documentation” section of CODESYS help for all details as this depends on IronPython scripting against CODESYS and LibDoc.exe =&gt; CFORGE is ideally suited for this! 

PS offcourse I can contribute on implementation.
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Mon, 03 Feb 2020 22:26:24 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/11/</guid></item><item><title>Draft for better bootstrapping and checking prerequisits</title><link>https://forge.codesys.com/tol/cforge/tickets/9/</link><description>I extended cForge helper class with a bootstrapper to detect SVN installation and to add the LibDoc.exe to the PATH environmentvariables. Offcourse its written in similair style to the excisting code.

Here are my code snippets;

In Program.cs edit case setup to call the bootstrapper;

~~~
case "--setup":
                        if (!Helper.IsUserElevated())
                        {
                            Console.WriteLine("[INFO] Setup URL Handler and add tool to path. ");
                            Helper.RunElevated("--setup");

                        }
                        else
                        {
                            /// bootstrapper 
                            Helper.bootstrap(bDebug);
                            Helper.RegisterProtocol(bDebug);
                            Helper.AddToSystemPath(bDebug);
                        }
                        break;
~~~


And extend SystemPath region in Helper.cs with Bootstrapper;
~~~

        #region SystemPath

        public static void AddToSystemPath(bool bVerbose)
        {
            string strPath = System.Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine);
            string[] split = strPath.Split(new Char[] { ';' });
            string path = Path.GetDirectoryName(GetCFORGEAssemblyPath());
            string strNewSystemPath = strPath + ";" + path;

            if (!split.Contains(path))
            {
                System.Environment.SetEnvironmentVariable("Path", strNewSystemPath, EnvironmentVariableTarget.Machine);
            }

 
        }


        public static void bootstrap(bool bVerbose)
        {
            /// bootstrapper 
            /// warning for svn.exe if not present
            string exepath = Helper.FindExePath("svn.exe");
            if (exepath == String.Empty)
            {
                Console.WriteLine("[WARNING] Please install Turtoise SVN with command line client option!");
            }
            else
            {
                Console.WriteLine("[INFO] Turtoise SVN detected. \r\n\tPath is: " + exepath);
                exepath = String.Empty;
            }

            /// add libdoc.exe to path to enable CODESYS libdocscripting (TODO expand this section)
            exepath = Helper.FindExePath("libdoc.exe");
            string strPath = System.Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine);
            string path = String.Empty;
            string strNewSystemPath = String.Empty;
            if (exepath == String.Empty)
            {
                /// add path to: "C:\Program Files\CODESYS 3.5.14.0\CODESYS\DocScripting\3.5.14.0"
                /// for now quick and dirty =&gt; should become dynamic 
                path = "C:\\Program Files\\CODESYS 3.5.14.0\\CODESYS\\DocScripting\\3.5.14.0";
                strNewSystemPath = strPath + ";" + path;
                System.Environment.SetEnvironmentVariable("Path", strNewSystemPath, EnvironmentVariableTarget.Machine);
                Console.WriteLine("[INFO] Environmentvariable for DocScripting added:  \r\n\tPath is: " + path);
            }
            else
            {
                Console.WriteLine("[INFO] DocScripting detected. \r\n\tPath is: " + exepath);
                exepath = String.Empty;
            }


        }


            /// &lt;summary&gt;
            /// Expands environment variables and, if unqualified, locates the exe in the working directory
            /// or the evironment's path.
            /// &lt;/summary&gt;
            /// &lt;param name="exe"&gt;The name of the executable file&lt;/param&gt;
            /// &lt;returns&gt;The fully-qualified path to the file&lt;/returns&gt;
            /// &lt;exception cref="System.IO.FileNotFoundException"&gt;Raised when the exe was not found&lt;/exception&gt;
            public static string FindExePath(string exe)
        {
            exe = Environment.ExpandEnvironmentVariables(exe);
            if (!File.Exists(exe))
            {
                if (Path.GetDirectoryName(exe) == String.Empty)
                {
                    foreach (string test in (Environment.GetEnvironmentVariable("PATH") ?? "").Split(';'))
                    {
                        string path = test.Trim();
                        if (!String.IsNullOrEmpty(path) &amp;&amp; File.Exists(path = Path.Combine(path, exe)))
                            return Path.GetFullPath(path);
                    }
                }
                return String.Empty;
                /// throw new FileNotFoundException(new FileNotFoundException().Message, exe);
            }
            return Path.GetFullPath(exe);
        }

        #endregion
~~~



</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Tue, 03 Dec 2019 04:19:15 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/9/</guid></item><item><title>Repository handling</title><link>https://forge.codesys.com/tol/cforge/tickets/3/</link><description>The repository handling is one of the most trickiest parts of this projects. In a discussion with  erichspitzweg, we discovered the following:

* Instlalled packages need to be tracked locally, as the information can't get easily out of the CODESYS Package Management
* The available packages can be served either by a full repository list (like in debian), or in a distributed way (like with npm).
* When doing it distributed, we could use (as an option) the project url (e.g. 'tol/cforge') as the base URI to find the manifests of dependent packages

With this ticket, the following commands should be implemented:

* list
* install
* remove</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Fri, 16 Mar 2018 10:31:49 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/cforge/tickets/3/</guid></item></channel></rss>