Giter Site home page Giter Site logo

Comments (12)

fossell avatar fossell commented on August 18, 2024 1

@climbfuji - Thanks Dom, I was just responding with the branching strategy discussed last week. No rush on my end, it's up to your development team to decide what cmake mods need to go into release/public-v1 in preparation for v1.1.0 release. Just keep me posted!

from upp.

aerorahul avatar aerorahul commented on August 18, 2024

@fossell
I would suggest not bringing develop into release/public-v1. I don't think we want to mess with release/public-v1 branch. It is a released branch, and should be fixed hereafter. I would rather suggest creating a new branch from release/public-v1 (say feature/public-v1.1.0-rc). Ideally, one would do that from develop, even if it is an incremental change from release/public-v1. Otherwise, when release/public-v1.1 is released and we wish to merge any changes back in develop, one would have to cherry pick again.

The changes we want to checkout from develop and cherry pick into feature/public-v1.1.0-rc are from:

CMakeLists.txt
VERSION
.gitmodules
.gitignore
cmake/PackageConfig.cmake.in
sorc/ncep_post.fd/CMakeLists.txt

develop::sorc/ncep_post.fd/CMakeLists.txt added new files in the sources list, so we may want to cross-reference, and make sure the filelist is correct.

We can bump the VERSION to 1.1.0 now or wait till the changes settle and the release candidate branch is ready for final tagging and release. I would suggest the latter.

from upp.

climbfuji avatar climbfuji commented on August 18, 2024

@fossell
I would suggest not bringing develop into release/public-v1. I don't think we want to mess with release/public-v1 branch. It is a released branch, and should be fixed hereafter. I would rather suggest creating a new branch from release/public-v1 (say feature/public-v1.1.0-rc). Ideally, one would do that from develop, even if it is an incremental change from release/public-v1. Otherwise, when release/public-v1.1 is released and we wish to merge any changes back in develop, one would have to cherry pick again.

The changes we want to checkout from develop and cherry pick into feature/public-v1.1.0-rc are from:

CMakeLists.txt
VERSION
.gitmodules
.gitignore
cmake/PackageConfig.cmake.in
sorc/ncep_post.fd/CMakeLists.txt

develop::sorc/ncep_post.fd/CMakeLists.txt added new files in the sources list, so we may want to cross-reference, and make sure the filelist is correct.

We can bump the VERSION to 1.1.0 now or wait till the changes settle and the release candidate branch is ready for final tagging and release. I would suggest the latter.

@aerorahul please note that the branching strategy for the UFS releases has been discussed and decided upon in length. The rules are:

  • major releases (v1.0, v2.0) are created from develop (in the absence of master) by creating a major release branch, e.g. release/public-v1
  • all minor releases and bugfix releases are created from that major release branch, e.g. v1.1.0 is created frorm release/public-v1, as well as v1.1.1 etc.
  • there is no separate release branch v1.1.0 or the like
  • this is, however, for the model components and not strictly for external components, such as the NCEP libraries

What we really have to decide is whether we want to pass those changes that are currently in develop into release v1.1.0 or not. I would say we hold back until we have the updated NCEPLIBS-external working and then reassess. There is no new functionality except the UFS_UTILS and EMC_post bug fixes that we need for MRW App release 1.1.0. Maybe it is enough to just cherry-pick those into the existing public/release-v1 branches of the two repositories and leave the other NCEPLIBS-* and (most of) the NCEPLIBS umbrella build as-is.

For SRW App release v1.0, we would then create an entirely new release/public-v2 for the NCEPLIBS and prerequisites, and release SRW App v1.0 with v2.0 of the NCEPLIBS (and hopefully a MRW App v2.0 in early 2021 with v2.0 or 2.x of NCEPLIBS).

from upp.

aerorahul avatar aerorahul commented on August 18, 2024

@climbfuji
I am not arguing what the UFS wants to call their releases.
Also, I said ideally.
Is v1.1.0 just a bugfix release?
How will the public/user distinguish between release/public-v1 and this new bugfix release? Will there be a branch or a tag or just a SHA to go by?

May be there is a document that describes all this. If so, please point me to that document.

from upp.

climbfuji avatar climbfuji commented on August 18, 2024

@climbfuji
I am not arguing what the UFS wants to call their releases.
Also, I said ideally.
Is v1.1.0 just a bugfix release?
How will the public/user distinguish between release/public-v1 and this new bugfix release? Will there be a branch or a tag or just a SHA to go by?

May be there is a document that describes all this. If so, please point me to that document.

No offense, so many moving parts.

To answer your question: tags - everything was tagged as v1.0.0 when the release came out in March. Whatever we want to bring into release v1.1.0 (which is a minor release / feature upgrade; for NCEPLIBS, there are bug fixes in UFS_UTILS and EMC_post, and the capability to process netCDF files - i.e. a feature upgrade and not a bugfix) will go into the release/public-v1 branches and those then get tagged as v1.1.0.

It is probably the only time in history that a release number of NCEPLIBS matches 1:1 the release number of a UFS app, so this adds to the confusion.

from upp.

climbfuji avatar climbfuji commented on August 18, 2024

Here is a link to the visualization/discussion. The solution we agreed on last Friday is on slides 5 and 6.

https://docs.google.com/presentation/d/1qCk0hwDMxeSlnGHES6gyDSwcrh43jhxgnQYWLTOpZWU/edit?usp=sharing

from upp.

aerorahul avatar aerorahul commented on August 18, 2024

slide 2 is git-flow. This is the gold standard, so to speak.
slide 5 is UFS suggested flow and NOT entirely git-flow.
The offending arrows are the ones originating from develop and being merged in the bugfix orminor releases.
I understand bugfixes can go both in bugfix release and develop, but that is typically done with 2 branches, one off-of develop and other off-of release branch. To have a wholesale arrow from develop to release branch is a bit misguided to call it git-flow.
Also, lumping build system andetc. is a bit vague. E.g., if someone proposes using scons instead of cmake, it technically satisfies a minor/bugfix release criteria. I suppose, it depends on who you ask.

Either way, thanks for the clarification.

from upp.

climbfuji avatar climbfuji commented on August 18, 2024

slide 2 is git-flow. This is the gold standard, so to speak.
slide 5 is UFS suggested flow and NOT entirely git-flow.
The offending arrows are the ones originating from develop and being merged in the bugfix orminor releases.
I understand bugfixes can go both in bugfix release and develop, but that is typically done with 2 branches, one off-of develop and other off-of release branch. To have a wholesale arrow from develop to release branch is a bit misguided to call it git-flow.
Also, lumping build system andetc. is a bit vague. E.g., if someone proposes using scons instead of cmake, it technically satisfies a minor/bugfix release criteria. I suppose, it depends on who you ask.

Either way, thanks for the clarification.

I know. There is no ideal solution here. The git-flow approach in slide 2 as used for WRF is something EMC did not want to adopt. We'll work around all this, and as I said this is strictly speaking for the ufs model and its components, not necessarily for external libraries.

from upp.

junwang-noaa avatar junwang-noaa commented on August 18, 2024

from upp.

fossell avatar fossell commented on August 18, 2024

@junwang-noaa - Yes, I think that's the idea and why I started this Issue to find out from @aerorahul and UFS developers if any of those cmake mods that went into develop branch need to be brought into the release/public-v1 branch for the v1.1 release. I think bringing in develop branch changes into the release branch is done on a case by case basis to be determined by code managers, hence this Issue. It sounds like these changes may not be necessary for v1.1, but I leave that up to the UFS MRW folks to decide.

from upp.

climbfuji avatar climbfuji commented on August 18, 2024

@junwang-noaa - Yes, I think that's the idea and why I started this Issue to find out from @aerorahul and UFS developers if any of those cmake mods that went into develop branch need to be brought into the release/public-v1 branch for the v1.1 release. I think bringing in develop branch changes into the release branch is done on a case by case basis to be determined by code managers, hence this Issue. It sounds like these changes may not be necessary for v1.1, but I leave that up to the UFS MRW folks to decide.

@fossell thanks for explaining this so well.

from upp.

aerorahul avatar aerorahul commented on August 18, 2024

closing unresolved issue.

from upp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.