Releases: JeffersonLab/JANA2
v2.3.3
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
What's Changed
Features
- Added a simple
JWiringService
which can be used to wireJOmniFactories
via a TOML file. (#353, #363) - Added
add_jana_plugin
,add_jana_library
, andadd_jana_test
CMake macros (#364)
Bugfixes
- A multithreading bug in
JEventProcessor
has been fixed. JFactory::Create
now checksJEventSource::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 intoexamples
(#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
andStatus
intoComponents
, 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 thejana: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 nameJFactorySet
is no longer silent when the user attempts to include duplicates of the same factory (#343)JMetadata
is deprecated, to be replaced withJMultifactory
. (#345)- All
JFactories
now callJEventSource::GetObjects
, not justJGetObjectsFactory
. (#361)
New Contributors
-
@RaiqaRasool made their first contribution in #332
-
Full Changelog: v2.3.1...v2.3.2
v2.3.1
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
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 intoJVersion.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
Full Changelog: v2.2.0...v2.3.0
v2.2.1
Add support for event levels and timeslices
New features
- Add support for timeslices by @nathanwbrei in #278
- Develop TimesliceExample by @nathanwbrei in #281
- TimesliceExample: Wire factories externally by @nathanwbrei in #289
- Add JFactory "REGENERATE" flag by @nathanwbrei in #285
- Polish timeslice example by @nathanwbrei in #290
Bugfixes
- Fixes for the next PODIO version by @veprbl in #269
- Small fix to pushd and popd around source thisroot.sh by @kkauder in #272
- PodioExample: add schema_version by @wdconinc in #271
- fix: no copy constructor in PodioExample.cc by @wdconinc in #273
- Bugfix: Exceptions in JPluginLoader produce correct exit code by @nathanwbrei in #286
- Service initialization fixes by @nathanwbrei in #287
- Small fixes inspired by debugging eicrecon by @nathanwbrei in #288
Refactoring
- Arrow refactoring by @nathanwbrei in #270
- Cleanup: Remove obsolete, unused functionality by @nathanwbrei in #282
- JService is now a JComponent by @nathanwbrei in #283
Full Changelog: v2.1.2...v2.2.0
v2.1.2
- 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
- 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
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
- Automatically add the RPATH by @faustus123 in #198
- No sources bug fix by @faustus123 in #200
- Custom topologies can now access components loaded from plugins by @nathanwbrei in #204
- Fix JBlockSourceArrow::execute::lambda_result never change by @cissieAB in #206
- Fix double free on exit. by @faustus123 in #205
- Fixes to BlockExample by @nathanwbrei in #208
- janacontrol bug fixes by @faustus123 in #209
- Add Fetch feature to janacontrol. by @faustus123 in #211
- Fix compiler warnings about sprintf by @faustus123 in #213
- Revise CI to add BlockExample tests in by @cissieAB in #203
- Python update by @faustus123 in #214
- Experimental multifactory implementation by @nathanwbrei in #215
Full changelog
v2.0.9
v2.0.9 provides first-class PODIO integration as well as a variety of bugfixes
v2.0.8
What's Changed
- Fix typo in Tutorial.md by @cissieAB in #152
- Fix JAutoActivator factory name parsing by @nathanwbrei in #161
- Generate an up-to-date JVersion.h via CMake by @nathanwbrei in #163
- Improvements to JParameters by @nathanwbrei in #167
- Fix janadot by @faustus123 in #169
- Error handling fixes by @nathanwbrei in #170
- JPluginLoader: Improve handling of short vs long plugin names by @nathanwbrei in #172
- Fix deadlock when calling JApplication::Quit by @nathanwbrei in #171
New Contributors
Full Changelog: v2.0.7...v2.0.8