[GemStone-Smalltalk] GemStone code management techniques
Jonas Bjelkerud via GemStone-Smalltalk
gemstone-smalltalk at lists.gemtalksystems.com
Tue Dec 5 02:28:59 PST 2017
At Computas, we have VA Smalltalk clients using GemBuilder and parts of the
code is shared between the client and the GemStone server.
> 1) What tools/editors do you use for writing GS Smalltalk code?
We keep our GemStone code together with our client code in VAST/ENVY. We
mark each application as "on GemStone" or not, which is used by our tools
for picking the right code to push to GemStone.
> 2) What packaging system do you use for organising your code and
separating out your extensions to core classes from GemTalk Systems' own
code?
We have our own custom made tools for extracting changed code for GemStone
and creating topaz upgrade scripts.
a) We first had a config-map-diffing approach. It worked quite well.
b) We currently have a more manual system where developers pick individual
class definitions and methods. We made this change to make it easier to
deliver smaller separate changes.
c) We are planning to go back to the config-map-diffing approach again, but
with enhancments to our tools and more frequent GS updates.
And:
- We have a feature/tool where we can store "GS overrides" for individual
methods separate from the client implementation. We store the GS overrides
as separate methods using a method naming convention which our tools
recognize. We try to use this feature as little as possible.
- We have little or no GS code that doesn't compile in the client (we don't
use GS indexing and GS indexing special syntax anymore), but the "GS
override" feature would be used to handle that.
- We use switches in our code (...isServer ifTrue: [] ifFalse: []) to store
client and server specific code in the same method.
- Our GS system class modifications are mainly stored as regular methods on
the class in question in VAST/ENVY, an a "on GemStone" application.
- We allow for some methods to have its master implementation reside in
GemStone.
- We have a three-way diffing tool which we use for handling our system
class modifications when upgrading to new versions of GemStone (we run a
diff on an empty GS version X database, an empty version Y database and our
GS version X application database and extract our system class
modifications and highlight any conflicts between GS changes from version X
to Y and our system class modifications).
>3) Which version control system do you use, and in what kind of
structure do you store your code (what does one file in your source code
repository represent, if file-based)? How do you extract a deployable set
of changes from your version control system?
We keep the code in ENVY, and create topaz upgrade scripts.
>4) What mechanism do you use for uploading code to your production
GemStone DB?
We deliver topaz upgrade scripts, which are used by operations to perform
the GS upgrade. We use the same scripts to incrementally upgrade our
development GemStone servers.
Jonas Bjelkerud
Computas AS
On 12/04/2017 09:47 AM, via GemStone-Smalltalk wrote:
>
> Hi,
>
>
>
> We're interested to know what techniques other GemStone users are using
> for their GS Smalltalk code management and deployment processes, hence a
> few very general questions to anybody inclined to answer:
>
>
>
> 1) What tools/editors do you use for writing GS Smalltalk code?
>
> 2) What packaging system do you use for organising your code and
> separating out your extensions to core classes from GemTalk Systems' own
> code?
>
> 3) Which version control system do you use, and in what kind of
> structure do you store your code (what does one file in your source code
> repository represent, if file-based)? How do you extract a deployable set
> of changes from your version control system?
>
> 4) What mechanism do you use for uploading code to your production
> GemStone DB?
>
>
>
> Any feedback much appreciated!
>
>
>
> Thanks and regards,
>
> Martin
>
>
> _______________________________________________
> GemStone-Smalltalk mailing listGemStone-Smalltalk at lists.gemtalksystems.comhttp://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>
>
>
> _______________________________________________
> GemStone-Smalltalk mailing list
> GemStone-Smalltalk at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/gemstone-smalltalk/attachments/20171205/b5f3aaa3/attachment-0001.html>
More information about the GemStone-Smalltalk
mailing list