Skip to content

Releases: JeffersonLab/JANA2

v2.3.3

07 Nov 06:03
02089a2
Compare
Choose a tag to compare

2.3.3

Bugfixes

  • Fix problem with user-defined factory generators (#366)
  • JEventProcessor::Process() called before BeginRun() (#367)
  • Lock overwrite in RootFillLock() (#369)
  • JFactory::Finish() is called (#377)

Features

  • JTopologyBuilder supports topologies with arbitrarily nested levels (#346)
  • Barrier events are back (#371)

Refactoring

  • Improved log output (#368)
  • JTest uses new-style component interfaces (#374)
  • JArrows now fire on individual events (#375, #378)

Full Changelog: v2.3.2...v2.3.3

v2.3.2

18 Sep 19:51
Compare
Choose a tag to compare

What's Changed

Features

  • Added a simple JWiringService which can be used to wire JOmniFactories via a TOML file. (#353, #363)
  • Added add_jana_plugin, add_jana_library, and add_jana_test CMake macros (#364)

Bugfixes

  • A multithreading bug in JEventProcessor has been fixed.
  • JFactory::Create now checks JEventSource::GetObjects (#361)
  • JPluginLoader no longer loads plugins twice in certain cases (#343)
  • JParameterManager::FilterParameters marks parameters as 'used', thereby avoiding spurious 'unused parameter' warnings. (#331)
  • JTypeInfo::to_string_with_si_prefix generates the correct SI prefix in certain cases (#348)

Refactoring

  • Plugins and their headers are now installed to a directory that doesn't conflict with a system install (#330)
  • JPluginLoader has been extensively rewritten (#339)
  • JCsvWriter has been moved into examples (#350)
  • JANA's internal performance testing RNG has been refactored to be more reproducible, and to avoid ASAN violations. (#315)
  • JPodioExample has been split into several reusable examples. (#352)
  • Code was moved from Omni and Status into Components, making the layered architecture clearer (#351)
  • Documentation has been overhauled, including adding an extensive JANA1-to-JANA2 migration guide (#334, #336, #342, #354, #357, #359)
  • CI testing has been extended (#332, #341)

Behavior changes:

  • JANA now has one internal logger, configurable via the jana:loglevel parameter. External loggers are now configurable via the jana:global_loglevel parameter.
  • Log output has been streamlined: oversized tables are now YAML, and essential information is now logged at WARN level. (#362)
  • JPluginLoader now stops when a plugin fails to load, rather than continuing searching for another plugin with the same name.
  • JPluginLoader no longer accepts paths as part of a valid plugin name
  • JFactorySet is no longer silent when the user attempts to include duplicates of the same factory (#343)
  • JMetadata is deprecated, to be replaced with JMultifactory. (#345)
  • All JFactories now call JEventSource::GetObjects, not just JGetObjectsFactory. (#361)

New Contributors

v2.3.1

01 Aug 16:15
4b95840
Compare
Choose a tag to compare

Bugfix: janadot produces nearly empty output files

This release fixes a bug which caused janadot plugin to stop producing output. It also drops support for Podio <= 00-17 by replacing the user-provided PodioTypeMap with the builtin PodioT::collection_type.

Full Changelog: v2.3.0...v2.3.1

v2.3.0

23 Jul 13:55
Compare
Choose a tag to compare

Features

  • There is a new "interactive mode" accessible by pressing Ctrl-C during running. This pauses processing and allows the user to manually fire individual arrows, as well as look up information about components, collections, topology, and processing performance: #307, #322
  • Users can now configure how strict JParameterManager will be about extra (e.g. misspelled) parameters: #302
  • Users can now configure how much detail the parameters table will show at startup: #302
  • Users can now directly look up which factories produce or consume each collection, and which collections are produced or consumed by each factory: #312
  • Users can access expanded, constexpr version information from JVersion.h: #320

Bugfixes

  • Improved CI coverage: #300, #319, #323
  • Improved exception handling logic in all components: #301
  • Components not being destroyed when they should: #299
  • jana-generate.py no longer pulls in ROOT dependency by default, breaking the tutorial: #310
  • CMake compiler_definitions inconsistent with jana_config.h: #313
  • Suppress spurious error messages during JVersion.h creation: #317
  • Factory parameters show up in parameters table: #311
  • jana-config script sets RPATH correctly: #309

Refactoring

  • Users no longer need to import and forward defines such as JANA2_HAVE_PODIO because they have been moved into JVersion.h: #313
  • Code deduplication: jana_config.h fully replaced by JVersion.h: #313
  • Dead code removal: JSubeventMailbox: #304
  • All library code uses #pragma once instead of header guards: #308
  • Example programs are installed to $PREFIX/bin instead of $PREFIX/programs: #309

Documentation

  • JANA code style conventions: #306
  • JANA release process: #306

Full Changelog: v2.2.0...v2.3.0

v2.2.1

08 May 01:41
72948eb
Compare
Choose a tag to compare
v2.2.1 Pre-release
Pre-release

Add support for event levels and timeslices

New features

Bugfixes

Refactoring

Full Changelog: v2.1.2...v2.2.0

v2.1.2

21 Nov 22:33
Compare
Choose a tag to compare
  • Fix rough edges involving PODIO and JMultifactories (“TODO: NWB:” in the code) (#263, #247, #253)
  • Fix exported CMake target’s link libraries and compile definitions (#242)
  • Fix parameter manager bugs: No more ”loses equality with itself after stringification!” warnings (#256, #233)
  • Add support for std::array parameters (#236)
  • Deprecate PodioTypeMap/data model glue (#262)
  • Improve performance test suite (for regression testing!) (#260)
  • Fix race condition which emerges when nthreads > 80 (#227)

v2.1.1

21 Jul 20:06
Compare
Choose a tag to compare
  • Add missing GetApplication() in JMultifactory (Issue #225)
  • Bugfixes in JFactoryPodioT (PR #234)
  • Add config parameters jana:ticker_interval, janadot:output_file, janadot:weight_edges (PR #232)
  • Add RTD+Sphinx documentation (PR #230)
  • Fix free-after-use in JBacktrace.h (PR #224)
  • Fix missing header in JTypeInfo.h (PR #223)
  • Add self-hosted macOS CI runner (PR #220, #221)
  • Fix conflict between USE_PODIO and USE_PYTHON CMake flats (PR #219)
  • Change JParameter template specialization (PR #218)

v2.1.0

26 Mar 18:45
Compare
Choose a tag to compare

JANA2 v2.1.0

Summary

This release adds support for factories with multiple outputs ("Multifactories") and improves the experimental PODIO integration first introduced in v2.0.9. The show-stopping double-free on exit bug present in v2.0.9 has been fixed. The BlockExample has received a number of bug fixes, and custom topologies can now use components that are loaded from plugins. The janacontrol plugin has gained a feature to sample and inspect processed events without pausing the event stream, along with some bug fixes. The RPATHs have been reconfigured so that we need to set the LD_LIBRARY_PATH less often. The vendorized pybind11 is upgraded to version 2.10.3.

Important

  • JANA2 requires the C++17 language standard or higher.
  • JANA2 requires PODIO v0.16.3 or higher.

Pull requests

Full changelog

v2.0.9...v2.1.0

v2.0.9

01 Mar 16:21
c3e2f1e
Compare
Choose a tag to compare

v2.0.9 provides first-class PODIO integration as well as a variety of bugfixes

v2.0.8

15 Nov 22:26
d39fc3e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.7...v2.0.8