Greetings! I am trying to figure out what’s the latest stable release for GSF. I see download links to a series of beta releases here - https://www.nuget.org/packages/GSF.Historian/2.3.266-beta , however where can I find the most recent production quality GSF release? Also how do I figure which versions of GSF are tested/compatible with which versions of OpenHistorian? Is that information maintained anywhere?
Unfortunately, there is no easy answer to your questions, but I can try to describe our build process to give you an idea of how to find the information you’re looking for.
GPA wrote a number of build scripts that we host on a server that schedules the nightly builds once daily at midnight ET. The GSF scripts include a “BuildNightly” script, which creates the beta builds you mentioned and automatically uploads them to NuGet with the “-beta” tag on the version. There is also a “BuildRelease” script which we can run manually to create a release version and automatically upload to NuGet without the “-beta” tag. In practice, the “BuildRelease” script ended up being somewhat inconvenient and we instead always depend on the beta builds for release versions of our products. Therefore, the closest thing you’ll get to a release version of GSF is the version that was used as a dependency when creating a release for one of our products.
In addition to the build scripts for GSF, we also maintain build scripts for most of our products that depend on GSF, including openHistorian. This means that each update to the GSF codebase also results in a new nightly build of openHistorian. While the openHistorian version can be updated without a corresponding update to GSF, most version changes for openHistorian will correspond to a version change in GSF. This means that if you identify the timestamp of a version change commit in the openHistorian repository on GitHub, there is a high chance that there will be a similar version change commit in GSF that is highly correlated by time.
If all else fails, you can download the source code for a specific openHistorian build and then navigate to
...\Source\Dependencies\GSF. If you check the file properties of any of the
GSF.*.dll files in that folder, you can find the GSF version number used by that version of openHistorian. If you have installed a version of openHistorian from the releases, you can navigate to the openHistorian installation folder, and the GSF assemblies should be right there in the root. Again, you can use the file properties to check version numbers.
Thanks for the detailed explanation, that’s helpful. Few more questions as I am new to the project! If we make local changes, how can I make sure these do not cause regressions in functionality elsewhere? For example, are there automated tests that get run on GSF and OpenHistorian daily builds and what’s the best way for me to run these tests locally against our changes to OpenHistorian? Also,when’s the OpenHistorian 2.7 release version likely to be coming out? What’s the process for contributing any code changes or tests back into the project? (My question is primarily regarding the testing aspect rather than coding conventions etc which I have found on https://github.com/GridProtectionAlliance/openHistorian#contributing)
I’m pleased to hear you are interested in contributing. Unfortunately, there are no such automated tests to validate code changes. Although, if you were looking for a good place to start contributing, we are in need of them. As far as the process goes for submitting code changes, simply submitting a pull request on GitHub is probably the easiest way for everyone involved.