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
[RF] Disable RooFit
banner with CMAKE_CXX_FLAGS
option __ROOFIT_NOBANNER
by default
#9954
Comments
I +1 the idea that the banner should be disabled by default. |
I generally expect libraries to be silent and applications to write log files. If an application uses a dozen libraries, users don't want to see a dozen banners scroll past their terminal whenever they run it. A mark of a library's success is when it gets into the infrastructure in ways that downstream users might not even know about. If that's the goal here—for RooFit to be a library that other libraries or applications are built upon—then it shouldn't print its banner on startup. Although RooFit's API was designed with data analysts in mind (i.e. as an application), in recent years it has de-facto become a library with the likes of HistFactory, Combine, and lots of mini-frameworks built on top of it. If it were me, I would take that as a good sign and embrace it by becoming more library-like. (I have the same opinion of FastJet's banner, but that's another story.) |
I am fine with suppressing the banner by default. Thanks for checking. |
Thanks, @dkirkby ! If it's disabled by default then I am positive nobody will go the extra mile to enable it in their builds. Which means we should remove the banner and the infrastructure to disable it, through rootrc or a CMake variable. @matthewfeickert would you be able to propose a PR? |
Thank you all for your comments. I will discuss also with Wouter and the other RooFit developers next week and we will then fix this. |
I would agree.
I can outline the sections to be removed in this (or another) Issue for discussion and then make one if that's helpful @Axel-Naumann. Though I take it from @lmoneta's comment that they would prefer to wait. Is that correct? |
Thanks for opening this issue. It was also on my personal agenda for the next ROOT release anyway :) Indeed I wanted to bring it up with Wouter and the others. No serious library nowadays has such a banner, why should RooFit have it. @Axel-Naumann, @matthewfeickert, I will take care of opening a PR for this, as I already have the commit ready. |
See GitHub issue root-project#9954 for nice post making a case for this.
I agree with that assessment today, but the open-source landscape was quite different when that banner originated, over 20 years ago. |
Indeed. I really think that there should be a discussion (maybe in another Issue?) of making sure that we credit RooFit in a nicer more modern format. Its been a workhorse for the community for a long time and we should be citing it more! |
See GitHub issue #9954 for nice post making a case for this.
Fixed by #9965 in the 6.28 development cycle. |
RooFit
banner with CMAKE_CXX_FLAGS
option __ROOFIT_NOBANNER
by defaultRooFit
banner with CMAKE_CXX_FLAGS
option __ROOFIT_NOBANNER
by default
Explain what you would like to see improved
When RooFit code is run it will print a copyright "banner"
root/roofit/roofitcore/src/Initialisation.cxx
Lines 16 to 31 in 87a998d
when RooFit was being developed in the early 2000s this might have been about the only way to get open source software recognized and (hopefully!) cited (I was not involved with scientific open source then, so someone who was should feel free to correct me if I have the history wrong). However, in the time since there has been significant improvements in the citation and scholarship of open source software (e.g., some key points being the existence of JOSS and
CITATION.cff
native support on GitHub). As RooFit is also effectively absorbed into ROOT (I hope this is safe to say given the development history on therootfit
module in ROOT and that the RooFit development GitHub org does their development in a fork of ROOT) and any development as a solo project on SourceForge has long halted, the banner is a recurring pain point and nuisance for many users.The banner can be disabled at runtime through adding
RooFit.Banner: no
to.rootrc
or permanently disabled by passing the compile flag
-D__ROOFIT_NOBANNER
to RooFit at compile time and if building ROOT with CMake you can pass this flag to RooFit through theCMAKE_CXX_FLAGS
option.Disabling the RooFit banner with
as a default and finding a more constructive and useful form of attribution to the RooFit developers seems like a much better solution then continuing to keep it around as a default. (Altering the
.rootrc
seems like a nice way to deal with legacy versions of ROOT, but is not a good reason to keep the banner.)Optional: share how it could be improved
Make the CMake build option
the default to disable the RooFit banner from being enabled by default.
In addition to disabling the banner, there should be some additional action to preserve the copyright and attribution to Wouter and David in a more useful manner, as well as update it to reflect the huge amount of work that has happened since 2013 (here I would suggest a
CITATION.cff
file. I also think ROOT should get one too, but that's another Issue.).As Wouter doesn't appear to have a GitHub account (edit: I'm wrong, he's @wverkerke), I'll tag @egpbos as a public member of the RooFit development team (apologies if I should have tagged someone else) as well as @dkirkby to see if they have any particular thoughts on the matter.
To Reproduce
To trigger the RooFit banner simply run any piece of code that uses any part of RooFit. Example:
Setup
For the examples I've shown above are using ROOT
v6.24/06
built from sourceAdditional context
__ROOFIT_NOBANNER=ON
CMake option seems to have no effectThe text was updated successfully, but these errors were encountered: