× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Dane,
 
I've looked into doing this myself, but that project hasn't gotten off the 
ground yet, so my method is as yet unproven.  I think versioning is a fine term 
for this, actually.
 
If you keep all of your procedure prototypes in a /COPY member, the programmer 
can use one procedure name.  Within the copy member, for each include an 
EXTPROC keyword on the D-specs.  So:
 myProc         pr                    extproc(myProcv5r1m0)
 ...
 
Then, using an // IF DEFINED directive you can reverse-compile for previous 
versions with a defined condition.  So:
/COPY copylib/qcpysrc,myproc
 /IF DEFINED(V5R1M0)
 myProc        pr                     extproc(myProcv5r1m0)
 ...
 /ELSE
 myProc        pr                     extproc(myProcv5r1m1)
 ...
 /ENDIF
 
Use the binding directory to manage the signatures in the service program and, 
if my thinking is correct, you've got a versioning system!
 
Cheers,
Eric Filson

Dane Cox <DCox@xxxxxxxxxxxxx> wrote:
I've been doing some research into the mechanics of 'versioning' RPG
code on the iSeries. Because versioning tends to mean one thing to one
person and one thing to another person, let me try and make my
definition clear, even if it is not quite accurate. I have no doubt
I'll get lots of advice on the proper terminology, which of course, is
one of the reasons I'm posting this.

Versioning as I understand is the distinction of one version of
'something' from another version of the same 'something'. For the sake
of specificity, let's say that I have a simple program that performs an
inquiry on an account. It receives 2 input parameters, chains to a
file, and returns 50 output parameters, nothing too complicated. Now, I
have the very first version of this program in a library call TEST2005.

What are my options for modifying this program to return an additional
10 output parameters? At this point, let's say I already have a change
management application that helps me promote my code changes from
development to test/QA to production. Typically, this change management
application simply overlays the old object with the new, right? Well,
what happens if I need to be able to deploy multiple versions of this
program throughout a development life cycle? How do I keep this old
copy in a deployable state while also making changes and creating new
versions of it over time? Stated another way, how do I handle 'minor'
versions of the code (PTF's or 'hot fixes') during the life cycle of a
major version of the code.

My first reaction would be a separate promotion path with target
libraries different from the original (e.g. TEST2005V1). Is that the
only option on the iSeries? As I understand it, PC versioning is done a
little differently where the code is labeled or 'versioned' and any
version can be deployed at will. Is this correct? If so, how is this
accomplished on the iSeries?

I have searched the archives on this topic, and can't seem to find any
recent information that is related to this closely enough. If I've
missed something, by all means point me in the right direction.

Best regards,
Dane

--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.