Comments (7)
I agree with @jamal919 that having tagged versions (or releases) is important in reproducibility of runs based on SCHISM. Also, in operational settings, a frozen version could be implemented for a long time before various tests and hindcasts allow for an update. The way it is now, one has to tag their forks themselves which could create confusion.
As Joseph mentioned, if the code is indeed functional at any given time, then you should create occasional releases referencing the corresponding new features.
from schism.
I agree with the issue, but I think we have all the plumbing to so this. Perhaps we could get a start on this by getting a release branch done within 2 days?
There is no need for a change in branch strategies just for stable releases. The strategy we originally vetted, Trunk Based Development (see trunkbaseddevelopment.com) is really fine for that as long as it is fully utilized.
A "stable release" in the TBD model is done in two steps. First, you create a release branch every once in a while and the feature set and interface is frozen but perhaps still honed for a bit. The release branch is a space for curators and maintainers, not for the main development. The release branch is also not a complete release, but rather a "parent" of releases -- it has only the major and minor version number, e.g. 5.9. The actual releases are tags (5.9.0, 5.9.1 etc) are made off this branch. Risky dev continues on master and any bug fix in master that are worthy get an isolated commit and are cherry-picked to the release branch. Release branches are never folded back in to master, and that is their key virtue ... you aren't developing things that require reintegration.
There are other branching styles (checkout GitFlow, GitHubFlow, Trunk Based Development and Branching By Abstraction). The one usually associated with 'develop' is GitFlow. GitFlow is considered the most complex, and that isn't necessarily a good fit for our culture, but I say that in some ignorance ... I have limited experience with one project where it worked out fine but there was someone collecting $100K per year to make it work.
from schism.
from schism.
This is a good point, but a tag is almost like a hash ... Jaime pointed out it is really a commit an mutable, but this is esoteric compared to our current woes. At DWR we like having the occasional anointed version number we could describe over the phone, although there are times we've saved ourselves with a full hash when it wasn't a tag and you don't have to have the agreement of the community. Plus it is perfectly unambiguous.
There are good reasons for semantic version numbers. I like knowing the sequence of tags 5.10.1, 5.10.2 is a "feature frozen" set and hashes, while great as ID numbers, don't convey organization of the work.
from schism.
from schism.
Thanks all for participating in this discussion. I am happy with the direction we are going finally adopting a branching strategy for named versions. Since Joseph just posted the v5.8 branch, I will consider this issue to be resolved and close it. Thanks again to all.
from schism.
from schism.
Related Issues (20)
- Error copying Fortran module "include/schism_glbl.mod" HOT 23
- Incorrect Pi value in read_output10_xyz.f90 HOT 2
- Help SCHISM-WWM III HOT 1
- Update ugrid conventions HOT 13
- Help - pschism seems to not able to find the hdf5 libraries and netcdf-c libraries. HOT 3
- General Info: how to run Pschism on AWS pcluster with Spack HOT 1
- Format overflow in staout HOT 1
- Issue Running with Sflux generated from HAFS HOT 10
- No rule to make target 'pschism' / BLD_STANDALONE HOT 5
- Exit code is zero even when simulator fails HOT 3
- Compile GOTM 3.2.5 HOT 2
- Updating variable names in hotstart.nc HOT 6
- latest version in git wants deprecated NetCDF-Fotran build (with f90) HOT 7
- set_mask error during compilation of SCHISM-FABMv2-(ECOSMO) HOT 6
- FABM/SCHISM: UNFULFILLED DEPENDENCY: downwelling_photosynthetic_radiative_flux HOT 6
- Error when run a 2D model with tidal elevation and velocity ( 23: ABORT: STEP: wetted cross section length on open bnd <=0; boundary ndx= 1 , length= 0.000000000000000E+000) HOT 3
- Support for the Intel 2024+ compilers
- Julian Date Calculation Imprecision Leads to Issues with Time Indices Slicing in the sflux_air_1.0001.nc File HOT 3
- Missing inverse barometer effect? HOT 3
- Initial timesteps results for a hotstart run HOT 25
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schism.