Skip to content
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

Address Versioning Differences Between Repository and Sources/Artifacts #845

Open
robertbartel opened this issue Oct 23, 2024 · 0 comments

Comments

@robertbartel
Copy link

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:

nwm_routing            0.0.0
troute.config          0.0.3
troute.network         0.0.0
troute.routing         0.0.0

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant