Although the repository itself has a formal version scheme (currently on 2.4.0) used for releases and tags, this doesn't connect properly to the contained sources or built artifacts (i.e., Python package and Fortran modules). Version values that are being used for the artifacts don't appear to have been maintained, and the process for that isn't well documented.
Current behavior
The individual Python packages use there own independent values for versions. These are explicitly set either within the pyproject.toml or __init__.py file of each package. Right now, despite the repo itself having released 2.4.0, the packages are set as:
[!IMPORTANT]
There is, however, an apparent reference to version 2.4.0 in src/troute-network/troute/nhd_network.py, so this issue probably qualifies as a bug.
@deprecated(version='2.4.0', reason="Functionality moved to Network classes")
I also didn't see anything in a makefile or CMakeLists.txt in the sources for the Fortran module indicating any versioning was being used. Being less familiar with Fortran, it's possible there is something I missed, though nothing that specifically references 2.4.0.
Expected behavior
With the source code for the repo producing multiple, somewhat independent artifacts, it's not immediately clear whether it is more appropriate to version them identically (i.e., they all should be at 2.4.0 right now) or independently (but not at 0.0.0). Other repos with multiple nested packages (e.g., ngen-cal, DMOD) have versioned them independently, but the packages' relationships with each other and to the core purpose of their repository seem different here than for those other repos. Independently versioned packages may also require the existing version scheme for tags and releases to be modified.
More discussion is needed on what approach is best. Regardless, the approach needs to be consistent and clearly documented, and current versions should be updated to something other than 0.0.0 that is consistent with any @deprecated usage.
Although the repository itself has a formal version scheme (currently on
2.4.0
) used for releases and tags, this doesn't connect properly to the contained sources or built artifacts (i.e., Python package and Fortran modules). Version values that are being used for the artifacts don't appear to have been maintained, and the process for that isn't well documented.Current behavior
The individual Python packages use there own independent values for versions. These are explicitly set either within the
pyproject.toml
or__init__.py
file of each package. Right now, despite the repo itself having released2.4.0
, the packages are set as:I also didn't see anything in a
makefile
orCMakeLists.txt
in the sources for the Fortran module indicating any versioning was being used. Being less familiar with Fortran, it's possible there is something I missed, though nothing that specifically references2.4.0
.Expected behavior
With the source code for the repo producing multiple, somewhat independent artifacts, it's not immediately clear whether it is more appropriate to version them identically (i.e., they all should be at
2.4.0
right now) or independently (but not at0.0.0
). Other repos with multiple nested packages (e.g., ngen-cal, DMOD) have versioned them independently, but the packages' relationships with each other and to the core purpose of their repository seem different here than for those other repos. Independently versioned packages may also require the existing version scheme for tags and releases to be modified.More discussion is needed on what approach is best. Regardless, the approach needs to be consistent and clearly documented, and current versions should be updated to something other than
0.0.0
that is consistent with any@deprecated
usage.