pyswmm / Stormwater-Management-Model

PySWMM Stormwater Management Model repository
Other
99 stars 77 forks source link

revise version management #391

Closed karosc closed 1 year ago

karosc commented 1 year ago

This PR is to create a discussion around an approach to address #382

The changes in this PR at the time of its submission restore the EPA version management approach (constant int defined in consts.h). The EPA versioning is maintained to define the EPA engine upon which the pyswmm-SWMM code is based. When changes are made in EPA code, they (along with the version definition) will be merged into this fork without updating the version defined in the swmm-solver cmake project.

The swmm-solver version that is defined in the CMakeLists.txt file is repurposed to define the version of the toolkit API. As changes are made to the toolkit api, the swmm-solver version should be incremented accordingly.

The EPA report file header is restored to document the EPA engine version that was used to run the simulation. A second header line is added to the report file to document the pyswmm toolkit version included in the engine used to run the simulation. Restoring the EPA header to the first line of the rpt file has the added benefit of making it compatible with PCSWMM gui software, where as previously the OWA header would prevent the PCSWMM from parsing the rpt file properly.

In addition to these changes, I'd like to discuss revising code annotations in the source code. Previously the SWMM model was defined as OWA SWMM. Since the project has migrated away from OWA, I am wondering if we should rebrand the source code accordingly. I propose instances of "OWA" or "Open Water Analytics" in the source code by replaced with "pyswmm". Thoughts?

Since the rpt file header has changed, regression tests will fail until this new engine is used to generate new benchmark files with the updated rpt header.

@bemcdonnell @abhiramm7 @michaeltryby

karosc commented 1 year ago

Thanks @bemcdonnell , I reverted the changes and implemented a TOOLKIT_VERSION variable in version.h.in that is used to write the API version to the RPT file.

My other question regarding the annotation and project org name in the source stands. I am

In addition to these changes, I'd like to discuss revising code annotations in the source code. Previously the SWMM model was defined as OWA SWMM. Since the project has migrated away from OWA, I am wondering if we should rebrand the source code accordingly. I propose instances of "OWA" or "Open Water Analytics" in the source code by replaced with "pyswmm". Thoughts?

bemcdonnell commented 1 year ago

@karosc do you have plans to finish this concept? I'm hoping we can make a new release of the API and cascade to swmm-toolkit and pyswmm in the next couple weeks. I want to do some testing on this new calibration method that I'm working on :)

bemcdonnell commented 1 year ago

Also, to address the failed reg tests I am wondering if we can just ask NRTEST to skip some header rows.