-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenDSS version #13
Comments
The usual version string in DSS.Version contains most of the info:
From the C-API version, you can see more in the changelog at https://github.com/dss-extensions/dss_capi/blob/master/docs/changelog.md#version-0121 and most of the omissions from our fork at listed at https://github.com/dss-extensions/dss_capi/blob/master/docs/known_differences.md Revision SVN 3460 can be seem through the official repo at https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/
And
|
Thanks. In my case, I wanted to cross-verify my dss_sharp program with an OpenDSS script, so I wanted to install standalone OpenDSS in a version that'd match dss_sharp build. With the above infomation, I could check in the OpenDSS history for the SVN 3460 changeset, and the 0.12.1 version of DSS C-API is somewhere between OpenDSS Version 9.4.1.2 and Version 9.4.2.1. |
I don't think it's that simple. Listing a version can lead to wrong conclusions since most users don't follow closely the development of either the official version nor DSS C-API. The codebase is quite different and we port things selectively after testing and cross-validating ourselves. Technically we would tag our latest release to match OpenDSS v9.4.2.1 for example, but the official version had a bug that affected a lot of systems. We noticed something was off and reverted the change for our release. If we mentioned it was based on v9.4.2.1, the results would be off. Besides occasional bugs, not every commit there needs to be ported for various reasons, be it code for features not exposed in the official OpenDSS (e.g. a lot of commits go to OpenDSSCmd for FPC, which is not exactly official), GUI, documentation, or just due to the different code architecture of DSS C-API v0.12.x. Maybe you found this: nowadays there is a .txt in the official repo for the version at https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Version8/Source/Current_ver.txt -- replace HEAD with the SVN revision and we usually should be between that and the previous version. I'd recommend keeping a known valid set of results to validate the new OpenDSS versions so you don't assume there are issues here. Most of the OpenDSS components are very stable and should not change from one release to another -- if something does and it's not explained in the changelog, it's usually a bug. |
I'll see if I can automate grabbing the version from that txt. If that works fine, as long as part of my previous comments are left in the |
That's definitely not very important, just a cosmetic thing - as you explained, there's ways to get at that version. But thanks! |
Text wall warning! TLDR: There are a few ways things can progress, only time will tell, but right now DSS C-API cannot use the original/official OpenDSS code anymore.
That can't be done anymore. The only feature we could add without much hassle would be mapping OpenDSS errors to exceptions, everything else including the API performance cannot be achieved. We've gone through a few phases already:
The DSS C-API library nowadays:
I'm working on finishing dss-extensions/dss_capi#88 next week. After that and reintegrating A-Diakoptics, DSS C-API v1.0 is almost ready. DSS Sharp itself needs some good examples and maybe a COM layer (so it can be used as a COM module) to reach v1.0. If you look in the DSS C-API repo, you will see that nearly all of the changes in the last couple of years are made by myself, with some ports from the SVN. Even the official repository is very restricted in terms of contributors. This is terrible. A big part of that is because nobody wants to touch Pascal/Delphi nowadays. I'm only comfortable with Pascal because I used in the 1998-2003. People are happier to test and contribute documentation, or work on the language bindings -- besides the projects here on DSS Extensions, I know people use it in Swift, Go, and a couple of people looking into Rust. For example, using other programming languages, a lot of people develop features OpenDSS lacks and sometimes reimplement features they consider limited in the official engine; a lot of that goes to waste or is restricted to a small subset of users. There are other reasons for that, but I firmly believe that OpenDSS being written in Pascal is one of the main issues. To workaround this Pascal issue, at the same time we've been working on finishing the C++ port to abandon Pascal completely (so, not a chance to even consider using the current official version of OpenDSS). Some of the changes in the engine incorporated here in DSS C-API will greatly facilitate that, and dss-extensions/dss_capi#88 is one of the final pieces -- like the rest of the big features, it will result in a major rewrite of the related code (and it's quite boring to work on), so I'm taking the opportunity to leave the code in a place that it's easier to port to C++. We already have a plan to address some concerns other people may have regarding this C++ port vs. the official version, so hopefully by next year we may have a more robust development community, and maybe (hopefully) more direct collaboration with EPRI. |
Thank you for the extensive explanation! |
Hi,
not really an issue, more of a documentation question. Where can we find which OpenDSS version is dss_sharp built against?
Regards,
Maciej
The text was updated successfully, but these errors were encountered: