Highlighted
Absent Member.
Absent Member.
646 views

[archive] Program Version Information

[Migrated content. Thread originally posted on 07 April 2005]

I have been investigating new methods of keeping our customers up-to-date with the latest program changes we have made, and I am interested in creating something like an auto-update feature. One thing which makes keeping track of our programs more difficult is the lack of any version information accessible once the program has been compiled. When I look at the properties of a DLL or OCX file (or many other file types, for that matter), it displays a "Version" tab, which has the program version and other information readily accessible. The best situation, however, would be the ability to make the program version available to the runtime, so that a program could be written to look at each file, and generate a list of which program files are installed, and the version of each. This list could then be compared to the list of currently released programs to determine if anything is out-of-date. Our software runs strictly on Win32 platforms, and any development related to this issue would be done under the AcuCOBOL-GT 6.2 runtime.
On a related note, does anyone have a suggestion for a good Win32 code tracking app? We are keeping track of our code under UNIX, and I am examining alternatives.

Thanks in advance,
-Chris
0 Likes
7 Replies
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

OK,

If you're using UNIX, have you looked into using SCCS (Source code control system)?

Shaun
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

Although it may be a manual process, you could code a literal string into each of your programs that had the version number embedded in it, then search for that string by opening the object file as a binary file.

For example, you might have:

01 PROGRAM-VERSION PIC X(16) VALUE "(~~03.85.00~~)".

To determine a version number, you can open the object file as a binary file and search the bits for the pattern "(~~##.##.##~~)" and extract the version number.

Each time the program was changed, you would need to update this working storage variable.

Or, depending on the source code control program you are using, you might be able to get it to update it for you when programs are checked in.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

I'll let you have a copy of the unix scripts we used when using SCCS under unix.

These worked in the same fashion as JoeD is describing to you, except they are automated.

Shaun
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

A popular free Version Control System is Subversion(a better version of CVS). It has a command line interface and a windows client called TortoiseSVN that ties into the Windows explorer and desktop menus. We don't use it at work because we already had something in place a few years ago, but I do use it(as client, not admin) with opensource projects that I'm involved in. http://subversion.tigris.org/
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

Thanks for the help/advice. We are looking into SubVersion, and possibly using SubWCRev.exe along with it (which will perform substitutions for you when you compile, such as adding the SubVersion version number. I was told by one of the Acucorp support folks that a cusomter had created some method of versioning the compiled programs, but that it hadn't been released yet by Acucorp, and I would be notified if/when it is/will be (I hope that makes sense 😄 ) Just being able to do what JoeD suggests would be huge, but it would be even better if there were a way to get the information across so that you could right-click through Explorer and get the version info that way as well. I'm still doing some searching, as the only information I have found thus far is for compiling under C#, VB, etc...

Thanks again,
-Chris
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

The problem with getting the version number to display on the Version tab in the Properties window in Explorer is that Windows knows how to pull this out of the resource section of an executable file (exe/dll). But the Acucobol object files are not executables.

If Acucobol standardized on some method of embedding the version number in the object code, a Property Sheet shell extension could be written to do the same thing - but I think the object code file extension would have to be standardized and that shell extension would have to get installed on end user systems.

Technically, using the method I described above (using a "signature" string), you could implement this right now by writing the shell extension yourself.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Program Version Information

Joe;
I think we are probably going to go ahead and start using a method like the one you described. We have apparently used something very similar for other reasons. I have been looking into using SubVersion with SubWCRev, which is an executable which will perform substitutions based on SubVersion version numbers. This way, we could run the SubWCRev program as the first prt of the compile process, which would put the current version into the source before it was compiled. The shell extension you mentioned would be nice, but I think it would be unnecessary for our purposes, as we could simply "read" the version from within our software. As I mentioned, the final idea behind this is to be able to implement something like a "Windows Update" type service to keep our customers up-to-date with our latest program changes. The secondary reason is to get our programming staff working more efficiently. I added to an old post about Source Control Mangement, which has more details on the subject.

Thanks again for the help,
-Chris
0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.