I agree with Ciro that the de facto standard used by most projects is that
mainline development should happen in master and releases should be new
branches created off of master.

You could also create a branch “stable” or “latest” that gets updated to
the latest release.

The default download instructions could say something like

git clone <url> —branch stable


On Wed, Nov 27, 2019 at 8:54 AM Jason Lowe-Power <ja...@lowepower.com>
wrote:

> Thanks for the input Ciro!
>
> My pushback here is that most people who use gem5 will be making
> modifications to it (at least for the foreseeable future). I don't think we
> want to common use case to be 1) Download a tarball, 2) make local
> modifications to the source. I think we want people to 1) clone a "stable"
> gem5, 2) make modifications to the stable branch for their research *in
> git*.
>
> My experience with architecture grad students and researchers is that if
> you don't force them to use things like git most of them won't. One of my
> (personal) goals is to make it easy/default to use gem5 "the right way".
>
> In fact, I almost don't want to provide tarballs at all. Unless we can
> provide pre-build gem5 binaries, I don't think it makes sense to provide
> tarballs. I don't think prebuilt binaries make sense for the research use
> case of gem5 since almost all research will require extending gem5 and
> there's no way to dynamically load in new modules (though we should support
> this in the future!). For teaching with gem5 prebuilt binaries could make
> sense, but I think we'll hold off on that for now, TBH.
>
> I think this comes down to "make the common case fast". I believe the
> common case is researchers who want to make minor changes to gem5 (e.g.,
> add a new SimObject or modify the cache protocol) and run experiments for
> their research. Developing gem5 for the community (using the development
> branch) is actually the uncommon case.
>
> BTW, I agree with you that we should try to follow whatever practices are
> most popular when it makes sense. However, in many ways gem5 is a unique
> project, so following others doesn't always make sense :).
>
> I'm open to discussion on this. Thoughts?
>
> Cheers,
> Jason
>
> On Wed, Nov 27, 2019 at 12:01 AM Ciro Santilli <ciro.santi...@arm.com>
> wrote:
>
> > Thanks Bobby for pushing this forward, having releases would be a good
> > thing for gem5.
> >
> > I would recommend against having both master and develop branch though,
> > because in the large majority of projects out there, master == the latest
> > version, so I'm always confused when I have to switch to develop,
> specially
> > if it isn't the default HEAD (is is however possible to set the default
> > branch to develop as shown as:
> >
> https://gerrit-review.googlesource.com/Documentation/project-configuration.html#default-branch
> > )
> >
> > This is even more important if we start having prebuilt releases or tgzs
> > with source (which are smaller than full repo) for the tags, at which
> point
> > basically everyone who clones wants the latest.
> >
> > I would instead recommend:
> >
> > - master: latest version
> > - v2019: a tag. The latest one can be easily found with:
> >
> https://stackoverflow.com/questions/1404796/how-to-get-the-latest-tag-name-in-current-branch-in-git
> > - 2019 or b2019: branch created at the same time as v2019 to which
> > backports are applied, and to which v2019.0.1 tags can also be optionally
> > applied
> >
> >
> > ________________________________
> > From: gem5-dev <gem5-dev-boun...@gem5.org> on behalf of Bobby Bruce <
> > bbr...@ucdavis.edu>
> > Sent: Wednesday, November 27, 2019 12:10 AM
> > To: gem5-dev@gem5.org <gem5-dev@gem5.org>
> > Subject: [gem5-dev] gem5 19.0.0 : New git branching proposal
> >
> > Dear all,
> >
> > As you know, at the end of this quarter we will be releasing gem5-19, the
> > first official release of gem5. As part of this release we'd like to
> change
> > our git branching structure. Therefore, I'm writing to ask for feedback
> on
> > what we have planned and whether it can be improved upon.
> >
> > We'd like to have a git repo structure similar to that used in gitflow
> > development: https://nvie.com/posts/a-successful-git-branching-model .
> > I've
> > seen this model work well before, as it has some worthwhile abstractors
> for
> > public, open source git projects with regular releases. What I'd like to
> > incorporate from this model is the following:
> >
> > - Two permanent branches: master and develop.
> > - "develop" would function as master does now. This would be the main
> point
> > in which changes are applied between gem5 releases.
> > - Upon a new release of gem5, the develop branch would be merged into
> > master and a new git tag added to master indicating the release version.
> > Ergo, the master branch would always contain the latest release of gem5.
> > - If a quick hotfix is needed, a new "hotfix" branch would be created and
> > merged into both the develop and master branches upon completion. This
> > would also require a new tag on the master branch. (I suggest using the
> > standard "Version [Major].[Minor].[Hotfix]" version numbering system.
> I.e.,
> > the first version would be V19.0.0, a hotfix to this would make it
> V19.0.1,
> > and a minor release would make it V19.1.0).
> > - The creation of feature branches would be permitted. These branches
> would
> > encapsulate the gradual development of large features (i.e., ones carried
> > out over many commits). When complete a feature branch would be merged
> into
> > the develop branch. They'd be no obligation to use feature branches
> though
> > we believe they could be of value in certain cases. For example, if a
> > developer wishes to postpone a developed feature for a given gem5 release
> > (e.g., something more suited for a major release rather than a minor
> one),
> > then they could submit their changes as a feature branch and wait to
> merge
> > to the develop branch at a later date.
> >
> > I believe this setup would make our development process run smoother and
> > give gem5 users more stability. Day-to-day development wouldn't change
> much
> > as committing to the develop branch would work in the same way as
> > submitting to master does now.
> >
> > If anyone has any thoughts about this, I'd be happy to hear from you.
> >
> > Kind regards,
> > Bobby
> > --
> > Dr. Bobby R. Bruce
> > Room 2235,
> > Kemper Hall, UC Davis
> > Davis,
> > CA, 95616
> > _______________________________________________
> > gem5-dev mailing list
> > gem5-dev@gem5.org
> > http://m5sim.org/mailman/listinfo/gem5-dev
> > _______________________________________________
> > gem5-dev mailing list
> > gem5-dev@gem5.org
> > http://m5sim.org/mailman/listinfo/gem5-dev
> _______________________________________________
> gem5-dev mailing list
> gem5-dev@gem5.org
> http://m5sim.org/mailman/listinfo/gem5-dev

-- 

Vince Harron |  Engineering Manager |  vhar...@google.com |  858-442-0868
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to