<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Offline Review process for LabVIEW: Which tools and workflows do you use? in Continuous Integration</title>
    <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399536#M514</link>
    <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I am currently faced with the task of implementing a Continuous Integration CI toolchain and the corresponding workflow for LabVIEW. A crucial component is the offline review process, which I want to include. So after reaching a certain point in development - such as after a feature merge, milestone, or a set number of commits - an offline review is triggered. The reviewer then examines the code changes at a time that suits them. There are several tools for text-based programming, like JetBrains Space, that efficiently support this review process. However, these tools are only partially suitable for VIs due to their binary format. I've explored various options and come across some interesting approaches, most of them focused on a peer review, but none of them seem to utilize a dedicated offline review tool for LabVIEW specifically:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/LabVIEW-Development-Best/Improving-Code-Quality-and-Performing-Code-Reviews/ba-p/3479142?profile.language=en" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/LabVIEW-Development-Best/Improving-Code-Quality-and-Performing-Code-Reviews&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/North-Oakland-County-LabVIEW/Code-Review-and-VI-Analyzer-5-6-20/td-p/4046549" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/North-Oakland-County-LabVIEW/Code-Review-and-VI-Analyzer-5-6-20&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/Random-Ramblings-on-LabVIEW/SSDC-Document-Deep-Dive-Code-Review-Checklist/ba-p/3696770" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/Random-Ramblings-on-LabVIEW/SSDC-Document-Deep-Dive-Code-Review-Checklist&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.ni.com/en/shop/labview/doing-code-reviews.html" target="_blank" rel="noopener"&gt;https://www.ni.com/en/shop/labview/doing-code-reviews.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://argentaconsult.com/_userfiles/pages/files/cla_2018_code_reviews.pdf" target="_blank" rel="noopener"&gt;https://argentaconsult.com/_userfiles/pages/files/cla_2018_code_reviews.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://learn.ni.com/learning-paths/implementing-a-test-strategy-in-labview" target="_self"&gt;https://learn.ni.com/learning-paths/implementing-a-test-strategy-in-labview&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=YBio2wy9ycI" target="_blank" rel="noopener"&gt;Tom's LabVIEW Adventure - 4 - How to do Code Reviews&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://stravaro.com/lvjournal/2012/08/labview-code-review-session-at-niweek/" target="_blank" rel="noopener"&gt;https://stravaro.com/lvjournal/2012/08/labview-code-review-session-at-niweek&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would be interested to know whether any of you use such tools in your workflow, perhaps with customizations, or whether you have developed your own solutions for the review process of LabVIEW code. What experiences have you had, and which approaches or tools have made the review process easier for you?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I look forward to your suggestions and ideas!&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;</description>
    <pubDate>Tue, 15 Oct 2024 11:59:50 GMT</pubDate>
    <dc:creator>mclordo</dc:creator>
    <dc:date>2024-10-15T11:59:50Z</dc:date>
    <item>
      <title>Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399536#M514</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I am currently faced with the task of implementing a Continuous Integration CI toolchain and the corresponding workflow for LabVIEW. A crucial component is the offline review process, which I want to include. So after reaching a certain point in development - such as after a feature merge, milestone, or a set number of commits - an offline review is triggered. The reviewer then examines the code changes at a time that suits them. There are several tools for text-based programming, like JetBrains Space, that efficiently support this review process. However, these tools are only partially suitable for VIs due to their binary format. I've explored various options and come across some interesting approaches, most of them focused on a peer review, but none of them seem to utilize a dedicated offline review tool for LabVIEW specifically:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/LabVIEW-Development-Best/Improving-Code-Quality-and-Performing-Code-Reviews/ba-p/3479142?profile.language=en" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/LabVIEW-Development-Best/Improving-Code-Quality-and-Performing-Code-Reviews&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/North-Oakland-County-LabVIEW/Code-Review-and-VI-Analyzer-5-6-20/td-p/4046549" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/North-Oakland-County-LabVIEW/Code-Review-and-VI-Analyzer-5-6-20&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.ni.com/t5/Random-Ramblings-on-LabVIEW/SSDC-Document-Deep-Dive-Code-Review-Checklist/ba-p/3696770" target="_blank" rel="noopener"&gt;https://forums.ni.com/t5/Random-Ramblings-on-LabVIEW/SSDC-Document-Deep-Dive-Code-Review-Checklist&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.ni.com/en/shop/labview/doing-code-reviews.html" target="_blank" rel="noopener"&gt;https://www.ni.com/en/shop/labview/doing-code-reviews.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://argentaconsult.com/_userfiles/pages/files/cla_2018_code_reviews.pdf" target="_blank" rel="noopener"&gt;https://argentaconsult.com/_userfiles/pages/files/cla_2018_code_reviews.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://learn.ni.com/learning-paths/implementing-a-test-strategy-in-labview" target="_self"&gt;https://learn.ni.com/learning-paths/implementing-a-test-strategy-in-labview&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=YBio2wy9ycI" target="_blank" rel="noopener"&gt;Tom's LabVIEW Adventure - 4 - How to do Code Reviews&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://stravaro.com/lvjournal/2012/08/labview-code-review-session-at-niweek/" target="_blank" rel="noopener"&gt;https://stravaro.com/lvjournal/2012/08/labview-code-review-session-at-niweek&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would be interested to know whether any of you use such tools in your workflow, perhaps with customizations, or whether you have developed your own solutions for the review process of LabVIEW code. What experiences have you had, and which approaches or tools have made the review process easier for you?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I look forward to your suggestions and ideas!&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;</description>
      <pubDate>Tue, 15 Oct 2024 11:59:50 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399536#M514</guid>
      <dc:creator>mclordo</dc:creator>
      <dc:date>2024-10-15T11:59:50Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399632#M515</link>
      <description>&lt;P&gt;Interesting question! I'm used to doing offline reviews before a merge quite informally, just writing a note on the feature ticket that it had been done. I use the graphical TortoiseGit log in Windows Explorer to see what changes have been made, and look at each LabVIEW diff launched manually from TortoiseGit which I set up to diff with LabVIEW for .vi, .ctl etc.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do have some ideas though for building something more formal. Some parts are easier than others.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- Trigger = pushing a #review tag in git? You could assume you want to look at changes since the last review or since it last branched from main&lt;/P&gt;&lt;P&gt;- Other triggers might be more appropriate e.g. find some way of passing in a commit hash to compare against.&lt;/P&gt;&lt;P&gt;- You can write code to list the changed files only, between the two commits. I have done this before for 'compare to last commit'.&amp;nbsp;&lt;/P&gt;&lt;P&gt;- You could make it send out an email (to a specified reviewer e.g. in yaml file or some other method) listing the changed files.&lt;/P&gt;&lt;P&gt;- It would be nice if the email could have each file path as a hyperlink to open up the appropriate diff. The only way I can think of doing this in my toolchain is making a folder of .bat files which execute commands that call the diff from TortoiseGit ( &lt;A href="https://tortoisegit.org/docs/tortoisegit/tgit-automation.html" target="_self"&gt;https://tortoisegit.org/docs/tortoisegit/tgit-automation.html&lt;/A&gt;&amp;nbsp;). Not very neat.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Just some ideas, keen to hear what other people think!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 Oct 2024 16:54:06 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399632#M515</guid>
      <dc:creator>leahmedwards</dc:creator>
      <dc:date>2024-10-15T16:54:06Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399679#M516</link>
      <description>&lt;P&gt;At JKI we made an internal review tool for VIs using GIT&lt;BR /&gt;&lt;BR /&gt;1. You point to a local GIT checkout, and specify the branch name to compare to. It had to do some magic to get both copies of the code checked out in a way that won't break LabVIEW.&lt;BR /&gt;2. It would then do a binary diff to get the list of added/removed/changed VIs.&lt;/P&gt;
&lt;P&gt;3. It then calls into LVDiff to display the UI diff for each VI as you click down the change list.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;This tool was primarily developed for LabVIEW 2020, In LabVIEW 2024, there are some new diff features that should make this tool even more powerful, but I am just starting to switch some of my projects over.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Diff tool is just an internal tool, but JKI offers a CI/CD suite including &lt;A href="https://www.youtube.com/watch?v=_N7Hk5nNBNc" target="_self"&gt;Static Analysis&lt;/A&gt;, Unit Testing, Automated Builds, and Security audit tools. I love that no one can commit a broken VI to our repo with our tools, so that code review is not the only tool you have to monitor code quality.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Oct 2024 20:07:28 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399679#M516</guid>
      <dc:creator>hunter_jki</dc:creator>
      <dc:date>2024-10-15T20:07:28Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399877#M517</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/693978"&gt;@hunter_jki&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;At JKI we made an internal review tool for VIs using GIT&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This internal tool is it to be compared with this toolkit: &lt;A href="https://www.youtube.com/watch?v=68CuI1XTFeE" target="_blank" rel="noopener"&gt;LabVIEW Code Comparison Tool for Git&lt;/A&gt; from GLA Summit 2024?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/693978"&gt;@hunter_jki&lt;/a&gt;&amp;nbsp;wrote:&lt;P&gt;This tool was primarily developed for LabVIEW 2020, In LabVIEW 2024, there are some new diff features that should make this tool even more powerful, but I am just starting to switch some of my projects over.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Which new diff features in 2024&amp;nbsp;&lt;SPAN&gt;do you mean?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Oct 2024 13:36:17 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399877#M517</guid>
      <dc:creator>mclordo</dc:creator>
      <dc:date>2024-10-16T13:36:17Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399887#M518</link>
      <description>&lt;P&gt;Is your tool available to the public?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Ron&lt;/P&gt;</description>
      <pubDate>Wed, 16 Oct 2024 14:07:25 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399887#M518</guid>
      <dc:creator>mysticfree</dc:creator>
      <dc:date>2024-10-16T14:07:25Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399945#M519</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/90702"&gt;@mysticfree&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;Is your tool available to the public?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Ron&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;I'm sure JKI's tool is nice and polished but if you want something less polished and free,&lt;/P&gt;&lt;P&gt;if you set up LVCompare using this: &lt;A href="https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge/" target="_blank" rel="noopener"&gt;https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;You can use the gitdifftool command and get basically the same thing for free. It's certainly not polished - its just a terminal interface, no fancy UI and you have to clone the repository -but it does the job. It works well for developers. For a manager who doesn't write LabVIEW code, probably not sufficient.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want a nicer polished experience, then throw Jim some money (assuming they are interested in selling it). I'm sure it's worth it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Oct 2024 16:58:17 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4399945#M519</guid>
      <dc:creator>Taggart</dc:creator>
      <dc:date>2024-10-16T16:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Offline Review process for LabVIEW: Which tools and workflows do you use?</title>
      <link>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4407317#M521</link>
      <description>&lt;P&gt;We have a custom tool that hooks into our GitLab instance via its &lt;A href="https://docs.gitlab.com/ee/api/api_resources.html" target="_self"&gt;REST API&lt;/A&gt;:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Retrieve list of merge requests assigned to user running tool&lt;/LI&gt;&lt;LI&gt;On selection, clone each commit being compared and dependencies to independent temp folders&lt;OL&gt;&lt;LI&gt;Disk hierarchies for our code in git are preserved&lt;/LI&gt;&lt;LI&gt;Links to symbolic paths (vi.lib etc) are independent of location on disk so these are preserved as well&lt;/LI&gt;&lt;LI&gt;There are various ways to speed this up by not retrieving the whole git history every time&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Display a UI showing each changed/added/deleted file&lt;/LI&gt;&lt;LI&gt;On selection, open file(s) in temp projects, one temp project for each side of the comparison&lt;UL&gt;&lt;LI&gt;This step along with the independent folder structures allows both sides of the compare to compile (no broken arrow) because no files have to be renamed since they're in separate app instances&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;If comparison is a modified VI, use the&amp;nbsp;"project\procmphier.llb\CMP Compare two VIs.vi" to open the LVCompare window&lt;UL&gt;&lt;LI&gt;Note the 2 app ref inputs...&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Comparing LVClass member VIs correctly requires this hassle since renaming anything breaks the class and all its VIs; you HAVE to use 2 app instances and you HAVE to have both versions of the class on disk in different folders.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have a similar tool for merges (which requires 4 app instances) but LVMerge straight up sucks so it is barely useful.&lt;/P&gt;</description>
      <pubDate>Wed, 06 Nov 2024 19:22:27 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Continuous-Integration/Offline-Review-process-for-LabVIEW-Which-tools-and-workflows-do/m-p/4407317#M521</guid>
      <dc:creator>avogadro5</dc:creator>
      <dc:date>2024-11-06T19:22:27Z</dc:date>
    </item>
  </channel>
</rss>

