Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.16)
cmake_policy(SET CMP0074 NEW) # find_package() uses <PackageName>_ROOT implicit hints

project(jana2 VERSION 2026.01.00)
project(jana2 VERSION 2026.02.00)

set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Enable -fPIC for all targets

Expand Down
12 changes: 9 additions & 3 deletions cmake/AddJanaLibrary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ macro(add_jana_library library_name)

if (${PROJECT_NAME} STREQUAL "jana2")
# This is an internal plugin
set(INSTALL_NAMESPACE "JANA")
if (NOT DEFINED INSTALL_NAMESPACE)
set(INSTALL_NAMESPACE "JANA")
endif()
set(JANA_NAMESPACE "")
if (NOT LIBRARY_EXPORT)
set(LIBRARY_EXPORT "jana2_targets")
Expand Down Expand Up @@ -66,20 +68,24 @@ macro(add_jana_library library_name)

# Handle public headers
if (LIBRARY_PUBLIC_HEADER)
# Include files get installed to $CMAKE_PREFIX_PATH/$INSTALL_NAMESPACE/$CWD_NAME
# First we extract $CWD_NAME
get_filename_component(CWD_NAME "${CMAKE_CURRENT_SOURCE_DIR}" NAME)

set_target_properties(${library_name} PROPERTIES
PUBLIC_HEADER "${LIBRARY_PUBLIC_HEADER}"
)
target_include_directories(${library_name}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/${INSTALL_NAMESPACE}/${library_name}>
$<INSTALL_INTERFACE:include/${INSTALL_NAMESPACE}/${CWD_NAME}>
)
endif()

# Install target
install(TARGETS ${library_name}
EXPORT ${LIBRARY_EXPORT}
PUBLIC_HEADER DESTINATION include/${INSTALL_NAMESPACE}/${library_name}
PUBLIC_HEADER DESTINATION include/${INSTALL_NAMESPACE}/${CWD_NAME}
LIBRARY DESTINATION lib
)

Expand Down
4 changes: 3 additions & 1 deletion cmake/AddJanaPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ macro(add_jana_plugin plugin_name)

if (${PROJECT_NAME} STREQUAL "jana2")
# This is an internal plugin
set(INSTALL_NAMESPACE "JANA")
if (NOT DEFINED INSTALL_NAMESPACE)
set(INSTALL_NAMESPACE "JANA")
endif()
set(JANA_NAMESPACE "")
if (NOT PLUGIN_EXPORT)
set(PLUGIN_EXPORT "jana2_targets")
Expand Down
17 changes: 17 additions & 0 deletions docs/Download.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,23 @@
- [See online documentation](https://jeffersonlab.github.io/JANA2/)
- [See online doxygen documentation](https://jeffersonlab.github.io/JANA2/refcpp/)

### 2026.02.00

This release redesigns the `JFactory` state machine, changing `JFactory`'s behavior so that it now handles certain
edge cases correctly. The new design enforces the guarantees for the `Init()` callback, making sure that it is run
exactly once before `Process()` gets called, and doesn't get run if data is always `Insert()`ed instead. If `Init()` excepts, `Process()` is never run, and an empty collection is written instead. If `Process()` excepts, a partial collection may be written. This release also changes behavior such that if an exception is encountered in `Init()` or `Process()`, JANA2 will store the exception and re-throw it, rather than re-running the excepting callback.

The `JFactory::Status` enum now precisely describes the contents of the factory cache, i.e. `{Empty, Processed, Inserted, Excepted}`. Whether or not the factory has been initialized has been factored out into the `JFactory::InitStatus` enum, i.e. `{InitNotRun, InitRun, InitExcepted}`. The `JFactory::CreationStatus` has been deprecated but is still around because GlueX
uses it. It has been shrunk so that it only describes whether or not the factory has been activated, i.e. `{NotCreatedYet, Created}`, which is how it was used in practice.

This release primarily addresses issue #490. There are several additional bugfixes included:

- Adds CMake flags for disabling examples and tests, addressing issue #489
- JWiringService wasn't loading plugins listed in the wiring file
- JComponent::Input<T> wasn't calling JFactory::Create
- Adding a JEventUnfolder but no JEventProcessors triggered an error in the JEventQueue ordering logic


### 2026.01.00

This release brings a couple of exciting new features along with some important bugfixes. The big JFactory/JDatabundle refactoring is
Expand Down
1 change: 0 additions & 1 deletion src/examples/misc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

add_subdirectory(CsvWriter)
add_subdirectory(DstExample)
add_subdirectory(Tutorial)
add_subdirectory(EventGroupExample)
Expand Down
7 changes: 0 additions & 7 deletions src/examples/misc/CsvWriter/CMakeLists.txt

This file was deleted.

139 changes: 0 additions & 139 deletions src/examples/misc/CsvWriter/CsvWriter.cc

This file was deleted.

12 changes: 0 additions & 12 deletions src/examples/misc/CsvWriter/README.md

This file was deleted.

21 changes: 0 additions & 21 deletions src/examples/misc/JObjectDatamodel/CMakeLists.txt

This file was deleted.

40 changes: 0 additions & 40 deletions src/examples/misc/JObjectDatamodel/CalorimeterCluster.h

This file was deleted.

38 changes: 0 additions & 38 deletions src/examples/misc/JObjectDatamodel/CalorimeterHit.h

This file was deleted.

41 changes: 0 additions & 41 deletions src/examples/misc/JObjectDatamodel/F250Hit.h

This file was deleted.

Loading
Loading