Skip to content

Releases: go-hep/hep

Release v0.35.0

20 Jun 15:06
Compare
Choose a tag to compare

What's Changed

  • all: bump x/net@v0.17.0 and klauspost/compress@v1.17.1 by @sbinet in #1000
  • cmd/root2csv: add support for converting Graph{,Errors} to CSV by @sbinet in #1001
  • groot: add read support for TCanvas by @sbinet in #1002
  • groot: streamline serialization header extraction by @sbinet in #1003
  • all: bump x/crypto@v0.17.0, sbinet/npyio@v0.8.0 and klauspost/compress@v1.17.4 by @sbinet in #1005
  • all: bump to ROOT-6.30/02 by @sbinet in #1006
  • groot: add support for TScatter by @sbinet in #1007
  • Go1.22 by @sbinet in #1008
  • groot: add handling of top-level key with string payload by @sbinet in #1009
  • all: bump deps epok@v0.5.0, npyio@v0.9.0 and x/{crypto,sync,tools,net,sys} by @sbinet in #1012
  • all: adapt tests and floating-point precision for Mac-Silicon by @sbinet in #1013
  • all: bump to ROOT-6.32/00 by @sbinet

Full Changelog: v0.34.1...v0.35.0

Release v0.34.1

19 Dec 14:07
Compare
Choose a tag to compare

What's Changed

  • groot/rhist: implement RSlicer for TGraph{,Errors,AsymErrors,MultiErrors} by @sbinet in #996
  • all: apply loopvar fixups by @sbinet in #997
  • all: bump epok@v0.4.0, x/{image,net,sync,tools} by @sbinet in #999

Full Changelog: v0.34.0...v0.34.1

Release v0.34.0

08 Sep 16:48
Compare
Choose a tag to compare

DOI

Release v0.34.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

hplot

  • hplot/vgop: a new package to implement JSON serialization of gonum/plot canvases
p := hplot.New()
// ...
err := hplot.Save(p, 10*vg.Centimeter, 20*vg.Centimeter, "plot.json")
  • hplot is now using gonum/plot@v0.14.0 which has the necessary infrastructure to get nicer timeseries axes. See the provided examples (here) for the hplot.Ticks type.

  • hplot has gained some basic capability to display the legend (a color palette with numbers) of a 2D plot. See the provided example.

  • added a convenience forward function for gonum/plot/plotter.NewLinePoints (as hplot.NewLinePoints)

groot

  • added support for ROOT 6.28/04
  • groot/rjson: a new package to implement JSROOT-compatible JSON serialization of groot's histogram types (rhist.H{1,2}x)
h, err := f.Get("h1d")
raw, err := rjson.Marshal(h)

See the complete example here.

  • groot/rtree is now able to read trees created by Geant4 in multithreaded mode (see here for more details).
  • added support for the "new" TLeafG branch.

Changelog

  • 6e9be99 all: bump gioui@v0.30, x/{crypto,exp,image,text,tools}@latest
  • 970796d hplot{,vgop}: add support for Save("foo.json")
  • e1cbaa6 hplot/vgop: first import
  • 301b96c groot/rjson: first import
  • d280b3c groot: implement RSlicer for TH{1,2}x
  • 8795bae groot/rbytes: introduce RSlicer interface
  • 8631271 cmd/root2arrow: use latest arrow-cat for tests
  • 1d490da cmd/root2npy: use internal/diff
  • 0e69116 groot: add tests for TLeafG
  • 85fd5fd groot: add support for TLeafG
  • 7cb2fac groot: bump to ROOT 6.28/04
  • 548d277 groot/rtree: handle parallel-merged TBaskets
  • 404ed51 ci: bump staticcheck@2023.1.5
  • d41b03d hplot: add NewLinePoints forward
  • b6113fa hplot: add timeseries examples with epok
  • 948b009 hplot: add automatic legend creation to H2D
  • d26c986 hplot: add support for legend to Figure
  • 0294666 hplot: forward plot.Legend
  • d0eea6a fwk: bump to gonuts/commander@v0.4.1
  • fa91d5d all: bump Gonum@v0.14.0, Gioui@v0.2.0
  • 233c6a4 all: bump Go-1.21, drop Go-1.19
  • d85e15f groot/cmd/root-gen-streamer: use an in-memory buffer for generation
  • c00ff1a hplot: update examples
  • 8c9cc40 hplot: update embedmd invocation
  • 673ab4c ci: improve mk-release to setup symlinks

Release v0.33.0

12 May 08:41
Compare
Choose a tag to compare

DOI

Release v0.33.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

cmd

  • cmd/hepmc2root: is a new command to automatically convert HepMC2 ASCII files to flat n-tuples ROOT files.
$> hepmc2root -h
hepmc2root converts a HepMC2 ASCII file into a ROOT file and (flat) tree.

Usage: hepmc2root [OPTIONS] hepmc.ascii

Example:

$> hepmc2root ./hepmc.ascii
$> hepmc2root -o out.root -t mytree ./hepmc.ascii

Options:
  -o string
    	path to output ROOT file name (default "out.root")
  -t string
    	name of the output tree (default "tree")

hplot

hplot has been migrated to the new Gio API, and needs Gonum/plot@v0.13.0.

Slight differences are to be expected in the rendering of plots.
With the new Gio version we are using, you may need development headers for Vulkan on Linux.
See the installation instructions of Gio for more details: Gio Installation

  • fix a bug in hplot.TiledPlot.Plot(i, j int) where the *hplot.Plot returned by Plot(i,j) was actually the conjugate of what the documentation specified. Now, Plot(i,j) returns the plot as documented.

sliceop

  • introduce a generic sliceop.Resize that can reuse []T capacity
  • introduce generic versions of sliceop.Take and sliceop.Find

Changelog

Full Changelog: v0.32.1...v0.33.0

Release v0.32.1

16 Sep 16:06
Compare
Choose a tag to compare

What's Changed

  • groot/riofs: provide a stable top-dir to Walk by @sbinet in #960

Full Changelog: v0.32.0...v0.32.1

Release v0.32.0

05 Sep 12:51
Compare
Choose a tag to compare

DOI

Release v0.32.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

This release drops support for Go-1.17 (and earlier) and is the first release with the introduction of a few generics-based APIs.

Thanks to Olivier Mengué (@dolmen) there were a couple of house cleaning changes that have been applied (as part of the CERN+Google Hackathon).
Thanks again Olivier.

There has been some work on RNTuple front, but nothing that can be released yet.

brio

General clean-ups by Olivier M.

fwk

General clean-ups by Olivier M.

groot

  • riofs: add generic Get[T] to retrieve ROOT objects
  • riofs: export in-memory read-only RMemFile ROOT file

hbook

General clean-ups by Olivier M.

lhef

General clean-ups by Oliver M.
Olivier also reduced the amount of memory allocations in lhef.NewDecoder.

sliceop

  • introduce sliceop and generics-based functions that mimick what sliceop/f64s did
  • implement sliceop/f64s in terms of sliceop

Changelog

  • c8c6fbf fmom: update for new gonum.org/v1/gonum@v0.12.0/r3 API
  • 3e7183c all: update gonum@v0.12, gokrb5@v8.4.3, compress@v1.15.9, lz4@v4.1.15, npyio@v0.7.0 and go/x
  • 535619c ci: add Go-1.19
  • c6ebf25 all: use git.sr.ht/~sbinet/go-arrow@v0.2.0 fork
  • 770e2dc all: bump x/tools@v0.1.11
  • ece275b groot: fix go:generate portability for root-gen-type
  • 0c1ce51 brio-gen: cleanup files produced by test on test success
  • 8c3e3fa ci: bump actions/{setup-go,cache,checkout}/v3
  • fafbeb6 all: bump yaml@v3.0.1
  • ff19fc7 groot: document interop model with ROOT/C++
  • 0eeae22 groot/rmeta: regnerate stringer
  • f9b4365 groot/{cmd/root-gen-type,rdict}: add support for generating RVec types
  • dc2dcf6 groot/{rcmd,rdict}: add support for reading ROOT::VecOps::RVec
  • fd8c2dc cmd/lhef2hepmc: improve warning message and display event number
  • f979a1c all: apply gofmt-1.19 formating rules
  • 2d8ce49 fwk/internal/fwktest: apply staticcheck cosmetic change
  • f81a84e fwk: gofmt
  • f596c97 fwk: manual fix of the last reference of pkg testdata
  • d4ec96b fwk: fix references to pkg testdata
  • c04eef8 fwk: rename pkg ./testdata to ./internal/fwktest
  • 07f22fc sliceop: use errors.New for constant errors
  • 40700b8 hbook: regenerate files produced by brio-gen
  • 25b579b hbook: fix go:generate to not require to install brio-gen
  • 7fe81f6 brio-gen: fix generated code to follow the Go standard
  • 3396f5f brio-gen: add .gitignore for temporary files produced by tests
  • 1992369 lhef: reduce allocs on event decoding
  • 9c5c566 lhef: more Decoder tests
  • cbb4935 lhef: reduce allocs in NewDecoder
  • 163d127 lhef: use errors.New instead of fmt.Errorf for constants
  • 020835d cmd/root2yoda: removes unreacheable statement
  • cf9adbb ci: use codecov-action@v2
  • 474d07a groot/riofs: export in-memory read-only RMemFile ROOT file
  • bb8ad3d groot/{cmd/root-gen-type,riofs}: add testdata for base+derived classes
  • c52e43d groot/rdict: correctly handle generation of marshaling for base classes
  • 7f90bc7 all: bump x/crypto, x/exp and x/sys
  • 4f927c3 sliceop: improve performances of Take
  • c2ec83e sliceop{,/f64s}: introduce generics sliceop
  • 582dce6 groot/riofs: add generic Get[T] to retrieve ROOT objects
  • ccbaeb3 all: apply staticcheck fixes
  • e93f8a1 ci: use staticcheck instead of golangci-lint
  • 7a3ff60 ci: reduce git-checkout depth
  • ddf2dc7 all: drop Go-1.17

What's Changed

  • all: drop Go-1.17 by @sbinet in #929
  • groot/riofs: add generic Get[T] to retrieve ROOT objects by @sbinet in #930
  • sliceop{,/f64s}: introduce generics sliceop by @sbinet in #931
  • all: bump x/crypto, x/exp and x/sys by @sbinet in #932
  • Groot gen type base by @sbinet in #933
  • groot/riofs: export in-memory read-only RMemFile ROOT file by @sbinet in #935
  • ci: use codecov-action@v2 by @sbinet in #936
  • removes unreacheable statement by @chavacava in #928
  • lhef: use errors.New instead of fmt.Errorf for constants by @dolmen in #937
  • lhef: reduce number of allocs in Decoder by @dolmen in #938
  • brio-gen: follow Go standard for generated files by @dolmen in #939
  • sliceop: use errors.New for constant errors by @dolmen in #940
  • fwk: rename package testdata to internal/fwktest by @dolmen in #942
  • Staticcheck fix by @sbinet in #943
  • cmd/lhef2hepmc: improve warning message and display event number by @sbinet in #944
  • Groot vecops by @sbinet in #945
  • groot/rmeta: regnerate stringer by @dolmen in #946
  • groot: document interop model with ROOT/C++ by @sbinet in #948
  • all: bump yaml@v3.0.1 by @sbinet in #949
  • ci: bump actions/{setup-go,cache,checkout}@V3 by @sbinet in #950
  • brio-gen: cleanup files produced by tests on test success by @dolmen in #951
  • groot: fix go:generate portability for root-gen-type by @dolmen in #952
  • Go x tools by @sbinet in #953
  • ci: add Go-1.19 by @sbinet in #954
  • all: update gokrb5@v8.4.3, compress@v1.15.9, lz4@v4.1.15, npyio@v0.7.… by @sbinet in #957

New Contributors

Full Changelog: v0.31.0...v0.32.0

Release v0.31.1

15 Apr 13:13
Compare
Choose a tag to compare

Full Changelog: v0.31.0...v0.31.1

  • c31af82 groot/{cmd/root-gen-type,riofs}: add testdata for base+derived classes
  • 8883629 groot/rdict: correctly handle generation of marshaling for base classes

Release v0.31.0

22 Mar 15:49
Compare
Choose a tag to compare

DOI

Release v0.31.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

This release drops support for Go-1.16 (and earlier).

groot

  • bump to ROOT-6.26/00
  • implement a riofs Reader over HTTP(s), instead of downloading the whole file locally
  • improve performances of rcmd.Dump(tree)
  • add support for TMultiGraph
  • add support for TDatime
  • add support for TGraphMultiErrors
  • add support for TProfile{,2D}
  • add support for TEfficiency
  • add support for TConfidenceLevel, TLimit{,DataSource}
  • add support for TF1 and TFormula
  • add support for reading std::vector<T, myalloc<T>>
  • introduced a new package groot/rnpy, to ease ROOT/NumPy conversions (like groot/rarrow does for Arrow)
  • improve memory usage of root2npy, by materializing into memory only one column at a time
  • streamline C++ templates parsing for STL containers (vector,deque,map,unordered_{,multi}{map,set}, pair, ...)

xrootd

  • improve the read performances 10-fold, using a finer-grained lock to protect session IDs

AOB

That's all for today.
Last release we said there would probably be some work on the RNTuple front.
We didn't lie, but this didn't happen in the form we thought it would.
A surprise is in the works... stay tuned.

Next cycle will probably see some work on the RNTuple front, and that work appear in main.

Changelog

  • b02724a all: bump x/crypto
  • 6c35963 all: drop old +build foo stanza, use //go:build
  • 2481769 all: bump klauspost/compress@v1.15.1 and pierrec/lz4@v4.1.14
  • 59c6c67 all: bump gonum/gonum@v0.11.0, gonum/plot@v0.11.0
  • c6f7c48 all: drop Go-1.16, add Go-1.18
  • 7909cd7 groot/internal/httpio: add a pool of http.Request
  • 0e0b993 groot/riofs/plugin/http: first stab at a caching+concurrent http-reader
  • 53a256f groot/internal/httpio: first import
  • e6d5f90 groot: bump to ROOT-6.26/00
  • 6f88941 xrootd: improve read performances 10-fold
  • c38575f groot/rcmd: improve Dump tree performances
  • ca83c45 groot/{internal/rtests,riofs}: better ACliC handling
  • e453fa7 groot/{rcmd,rhist,rvers}: add support for TMultiGraph
  • 1747412 groot/{rbase,riofs,rvers}: add support for TDatime
  • 0034b01 groot/internal/rtests: make sure macros are run thru ACliC
  • 0bd7c62 groot/{rcmd,riofs,rmeta}: add support for read std::vector<T,my_alloc>
  • 551dabd groot/{rcmd,riofs}: add tests for more STL containers
  • f1aa905 groot/rtree: add rvar dispatch for map[K]V
  • b467854 groot/rdict: add r/w-streamer+type handling for TString
  • 480971d groot/rdict: handle TString streaming in collections
  • 22da515 groot/rdict: use []T for disk storage of std::set
  • 34d6347 groot/rdict: proper handling of 'This' streamers
  • 0a85f50 groot: introduce rbytes.Header
  • e16891d groot/rcmd: add tests for POD data files
  • 2a34461 groot/rdict: generate RVersioner if not implemented
  • d23d2f4 groot/{rdict,rmeta}: introduce CxxTemplate, streamline template parsing
  • be7ddfa groot/rnpy: new package to ease ROOT-Tree/NumPy conversion
  • 37a9ac0 cmd/root2npy: improve memory usage
  • 04a2d5f groot: streamline r/w buffer ops
  • 1b25234 groot/{rdict,rhist,rvers}: add r/w support for TGraphMultiErrors
  • 73b9506 groot/{rhist,riofs,rvers}: add r/w support for TProfile{,2D}
  • 449e81e groot/rdict: add initial support for enums in genGoType
  • e6f8d63 groot/{rcmd,rdict,rhist,rvers}: add r/w support for TEfficiency
  • 929ec73 groot/rhist: add write support to TF1 and TFormula
  • 129831f groot/{rcmd,rdict,rhist,riofs,rvers}: add r/w support for TConfidenceLevel and TLimit{,DataSource}
  • ffc817e root/rbytes: add WriteStdVectorF64
  • e488e92 root/rbytes: add WriteObject
  • fa6827e groot/{rdict,rhist,rvers}: add initial read support for TF1 and TFormula
  • d8d3eb5 groot/rbytes: add RBuffer.ReadStdVectorI32
  • 1737316 groot/rbytes: add RBuffer.ReadStdVectorF64
  • ad66388 cmd/root2{arrow,csv,npy}: use riofs.Dir to retrieve trees

Release v0.30.1

26 Jan 14:24
Compare
Choose a tag to compare

DOI

Release v0.30.1 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

fwk

  • updated fwk-app to use the latest gonuts/commander version that provides auto-completion of commands, flags and sub-commands.

groot

  • add support for TBranchObject and TLeafObject
  • add support for TLorentzVector (in root-dump and friends)
  • add support for TNtuple and TNtupleD (in root-dump and friends)

hplot

  • fixed a race in hplot.New where the global variable from gonum/plot was being modified without a critical section. This race appeared when one would create multiple hplot.Plot concurrently.

sliceop

  • improved performances of sliceop/f64s.Take. Do note that sliceop/f64s will probably be rewritten in terms of a generic implementation (and deprecated) once Go-1.18 is generally available.

AOB

That's all for today.
Next cycle will probably see some work on the RNTuple front.

Changelog

  • 76e7c86 all: bump npyio@v0.6.0
  • baa058b groot/{rdict,rtree,rvers}: bump to ROOT-6.24/06
  • bc00032 all: bump peterh/liner, x/crypto, x/image, x/tools and ql
  • b57330a groot/{rcmd,riofs,rtree,rvers}: add rtree.Reader support for TNtuple{,D}
  • 24ff587 all: bump klauspost/compress@v1.14.2
  • d1e8a6f all: 2022 is the year of the Gopher
  • 505ab93 fwk/cmd/fwk-app: use gonuts/commander@v0.3.x
  • c571134 hplot: fix race in hplot.New on gonum/plot.DefaultFont
  • eaeb641 groot/rphys: test RStreamer with Bind+Unmarshaler for TLorentzVector
  • 679c886 groot/rphys: make Vector{2,3} implement fmt.Stringer
  • 7851644 groot/rphys: make LorentzVector implement fmt.Stringer
  • 07e2951 groot/rdict: leverage rbytes.{Unm,M}arshaler implementation in Bind
  • e370fce groot/riofs: add generation of TLorentzVector testdata
  • c117054 groot/{rdict,rtree,rvers}: add support for T{Branch,Leaf}Object
  • 975023e groot: remove old comment about write-mode of TTrees
  • 7735669 sliceop/f64s: improve Take performances
  • 4ca091c all: bump x/tools@v0.1.7

Release v0.30.0

26 Jan 11:30
Compare
Choose a tag to compare

DOI

Release v0.30.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

fwk

  • updated fwk-app to use the latest gonuts/commander version that provides auto-completion of commands, flags and sub-commands.

groot

  • add support for TBranchObject and TLeafObject
  • add support for TLorentzVector (in root-dump and friends)
  • add support for TNtuple and TNtupleD (in root-dump and friends)

hplot

  • fixed a race in hplot.New where the global variable from gonum/plot was being modified without a critical section. This race appeared when one would create multiple hplot.Plot concurrently.

sliceop

  • improved performances of sliceop/f64s.Take. Do note that sliceop/f64s will probably be rewritten in terms of a generic implementation (and deprecated) once Go-1.18 is generally available.

AOB

That's all for today.
Next cycle will probably see some work on the RNTuple front.

Changelog

  • baa058b groot/{rdict,rtree,rvers}: bump to ROOT-6.24/06
  • bc00032 all: bump peterh/liner, x/crypto, x/image, x/tools and ql
  • b57330a groot/{rcmd,riofs,rtree,rvers}: add rtree.Reader support for TNtuple{,D}
  • 24ff587 all: bump klauspost/compress@v1.14.2
  • d1e8a6f all: 2022 is the year of the Gopher
  • 505ab93 fwk/cmd/fwk-app: use gonuts/commander@v0.3.x
  • c571134 hplot: fix race in hplot.New on gonum/plot.DefaultFont
  • eaeb641 groot/rphys: test RStreamer with Bind+Unmarshaler for TLorentzVector
  • 679c886 groot/rphys: make Vector{2,3} implement fmt.Stringer
  • 7851644 groot/rphys: make LorentzVector implement fmt.Stringer
  • 07e2951 groot/rdict: leverage rbytes.{Unm,M}arshaler implementation in Bind
  • e370fce groot/riofs: add generation of TLorentzVector testdata
  • c117054 groot/{rdict,rtree,rvers}: add support for T{Branch,Leaf}Object
  • 975023e groot: remove old comment about write-mode of TTrees
  • 7735669 sliceop/f64s: improve Take performances
  • 4ca091c all: bump x/tools@v0.1.7