
Project Updater

Provides a way to keep files in sync with new releases and a package installer for installing user projects hosted on wavemetrics.com.
The Updater.ipf procedure file must be saved in the Igor Procedures folder. Look for 'Show Igor Pro User Files' in the Help menu.
How to Install
For first time installation
- download the latest release below
- unzip the downloaded file
- Install either by opening the file "Install Updater.itx" in Igor Pro, or by moving the file Updater.ipf to the Igor Procedures folder
- Restart Igor Pro to complete installation
Subsequent releases can be installed using the user interface described below.
Package Installer
Look for 'IgorExchange Projects' menu item in the Misc menu. The names of all of the user contributions are retrieved from wavemetrics.com. Be patient, it may take a while to parse all of the projects from the archive. If you select one of these and click 'Install' the project will be downloaded and installed in a location of your choice.
The projects list can be resorted by clicking on the column titles.
Checking for Updates
If you use the IgorExchange installer to install a project, when a new version is released you will see an alert with the option to open the IgorExchange Projects control panel and view available updates.
Look in the Updates tab of the IgorExchange Projects panel to see the update status of installed projects. Other compatible projects may be listed if you select the option to search in the User Procedures folder.
Updater can update procedure files that are currently open in Igor. This is necessary when the updater project updates itself. For seamless updating, it's best to set the setting for Text Editing like this: Look in the Misc menu for Miscellaneus Settings, then select Text Editing -> External Editor and check Reload Automatically -> As Soon as Modification is Detected. If Igor presents you with an option to review modified files, you should select the option to resolve any conflict by reloading from file.
Click the cog icon in the IgorExchange Projects panel to change settings. You can set the frequency with which Igor checks for updates in the background. The default value is 'weekly'. You may also need to adjust the timeout settings for downloads.
Notes
- An install log and cache file are saved in the User Procedures folder. When projects are installed using the IgorExchange installer, details of the installation are recorded in the install log. If any of the installed files are moved or deleted the project will be listed in the updates tab as 'incomplete' or 'missing'. Right-click for an option to locate a missing project, or reinstall the project from the projects tab.
-
There are three options for checking for updates:
- Check files in Installed Projects: Limited to projects that have been installed or updated using the IgorExchange Projects panel. The remote version is checked against the version info stored in the install log.
- Check Files in User Procedures Folder: Remote version number is compared with version info in procedure files that have the required updater header. This works for procedure files that have not been installed with the IgorExchange Projects panel, but does not work for projects that do not contain a procedure file with the required header.
- Check Files in Current Experiment: Same as 2, but check only open procedures.
- This package relies on being able to access and interpret the web pages at wavemetrics.com for the project to be updated.
- The user is presented with a DoAlert dialog before overwriting any file.
Information for Developers
If an end-user installs a project from IgorExchange using the package installer - the install tab of the user interface described above - the package files and version info will be recorded in the install log and the user will be notified when you upload a new release. You don't need to do anything other than fill out the fields on the release page correctly. If you want your project to be fully compatible with the updater, even if the user has installed the project manually by copying files to User Procedures folder, you should add a couple of lines to the main procedure file, as described below.
To ensure compatibility with IgorExchange installer:
It's best to compress (zip) your project file(s) before uploading a project release.
Make sure that the version number fields are filled in correctly on the IgorExchange project release page. If your file version is 1.03, set the patch version to 03, NOT 3! The installer will refuse to install projects that do not have these fields filled in properly.
Be aware that a list of the installed files is recorded in the install log on the user's computer at the time of installation. If files are moved or replaced by the user this will interfere with the updating function of the installer.
Design your project so that files do not have to be moved into other locations after installation. You can provide an itx script as part of your package if you need Igor to create shortcuts for XOPs, help files, etc.
If you want your package to be listed in the updates tab even if it has not been installed using the IgorExchange Installer, add two lines to the procedure file (for packages with multiple files, add this to the main procedure file at the root level of the package folder):
// updater headers static constant kProjectID=12345 // the project node on IgorExchange static strconstant ksShortTitle="MyProject" // the project short title on IgorExchange
Set the project ID to the 'node' for your project, as seen in the project url:
https://www.wavemetrics.com/node/12345
Set ksShortTitle to the short title that you filled in on the project page.
A Utility that Helps Developers to Prepare IgorExchange Project Releases
For help with preparing project releases, you may wish to add a menu item to call the PrepareProjectRelease() function in updater:
menu "Misc", hideable "Prepare project release", /Q, updater#PrepareProjectRelease() end
Running the PrepareProjectRelease() function will allow you to select the release files to be added to a zip archive. This is designed for projects that include at least one ipf file. The function will make some checks to see if the version information looks correct and flags anything that looks like it needs to be changed before release. The output is printed in the history.
Related Project
Procedure Loader provides an easy way to load and unload procedure files from the User Procedures or Wavemetrics Procedures folders.
Important Note
Use this software at your own risk. Installing and updating projects requires that this software downloads from the web, and overwrites files on your computer. No warranty is offered against error or vulnerability to exploitation of this software or of third-party (web) services.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Project Details
Current Project Release
Updater IGOR.8.00.x-5.12
Release File: | Updater512.zip (74.81 KB) |
Version: | IGOR.8.00.x-5.12 |
Version Date: | |
Version Major: | 5 |
Version Patch Level: | 12 |
OS Compatibility: | Windows Mac-Intel |
Release Notes: |
minor code cleanup to remove unused functions |

Forum

Support

Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More
Just FYI. Version 5.11 has two functions tic and toc to start and start an MSTimer. They are not called from anywhere in the routines as far as I can tell. The toc function in particular threw an error when I opened an experiment that had a wave named ToC (temperature in oC).
April 23, 2025 at 08:57 am - Permalink
Are you sure that it is this function that causes the error? This is an independent module that should have its own namespace. I just created a wave named ToC without problem. Maybe you have another procedure with a function toc()? Maybe even one of mine that's not an IM?
April 23, 2025 at 01:05 pm - Permalink
I cannot get the error to repeat itself. It is however flagging the Updater package. I will explore further and contact you off-line when I learn more. Thanks.
April 23, 2025 at 03:09 pm - Permalink