From GridLAB-D Wiki
The following is an enumeration of the build and release process for the Gridlab-D project. This outline will be flushed out at a later date, and is the basis for the automated script currently being developed.
- Update working directory to latest version of source.
- Perform a release build from within Visual Studio
- Build installer
- Install Gridlab-D using installer
- Run released models to ensure the build works
- Create a Linux release build in working directory
- Create tag using the build number from the linux release
- Subtract the bits that shouldn't be in the tag (proprietary, experimental, unreleased) directly from the repository
- Checkout tag to new working directory
- Create Linux build using cygwin (updates the version.h file in windows tree)
- Update the build numbers in the windows installer files
- Build a release build using Visual Studio
- Build windows installer
- Install from installer, run released models
- Check-in changes to the tag (version.h, installer files)
- Place installers on Development website for testing, update links
- After testing is complete, copy download directory on Development website to Production
Some things to note:
- The release working directory is created as described to ensure that history information and a baseline revision are carried over to the tagged source, allowing us to be able to merge from trunk if necessary (though, this shouldn't be needed the option is still open).
- Subtract the items that aren't going to be released because this is fewer steps in a manual process. There is a downside to the subtractive approach, in that until you remove the unreleased items, it is possible for a third party to download them. That is why the subtraction step is immediately after the creation of the tag. For the script, we should use an additive approach to creating the tag which would eliminate this issue altogether.
- Although it seems that a number of the steps are repetitive, we don't want to create a tag for something that doesn't at least pass basic tests, and the later testing validates not only the Gridlab-D executable, but ensures that a viable release can be made from the tagged source.
Environment variable | Description | Default path | Files installed |
---|---|---|---|
GRIDLABD | Main GridLAB-D installation | C:\Program Files\GridLAB-D | |
PATH | Executable and utility scripts | ${GRIDLABD}\bin | *.exe *.bat |
GLPATH | Libraries | ${GRIDLABD}\lib | *.dll *.py *.java |
GLPATH | Support files | ${GRIDLABD}\etc | *.txt *.shape |
GLPATH | Runtime files | ${GRIDLABD}\rt | *.conf *.h |
GLPATH | Climate files | ${GRIDLABD}\tmy | *.tmy2 |
(na) | GridLAB-D sample models | ${GRIDLABD}\samples | *.glm |
PATH | MinGW executables | C:\MinGW\bin | *.exe |
INCLUDE | MinGW include files | C:\MinGW\include | *.h |
LIB | MinGW libraries | C:\MinGW\lib | *.lib |
PATH | Gnuplot executables | C:\GnuPlot\bin | *.exe |
Environment variable | Description | Default path | Files installed |
---|---|---|---|
GRIDLABD | Main GridLAB-D installation | /usr/etc/gridlabd | |
PATH | Executable and utility scripts | /usr/bin | gridlabd *.py *.java |
GLPATH | Libraries | /usr/lib/gridlabd | *.{so,dylib} |
GLPATH | Support files | ${GRIDLABD} | *.txt *.shape |
GLPATH | Runtime files | ${GRIDLABD}/rt | *.conf *.h |
GLPATH | Climate files | ${GRIDLABD}/tmy | *.tmy2 |
(na) | GridLAB-D sample models | ${GRIDLABD}/samples | *.glm |