Skip to content

Commit 5683bbd

Browse files
committed
Update 0.3 release notes for binary tarballs and Isolated ROOT linkage to the ROOT gstreamer plugin
1 parent 34dc8ea commit 5683bbd

4 files changed

Lines changed: 44 additions & 13 deletions

File tree

.github/workflows/gemc_binary_tarball_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@ jobs:
9292
"${TEST_IMAGE}" \
9393
bash -lc '
9494
set -euo pipefail
95-
gemc_home=/path/to/gemc
95+
gemc_home=/root/gemc
9696
mkdir -p "$gemc_home"
9797
cd "$gemc_home"
9898
curl -L -o "$GEMC_TARBALL_ARCHIVE" "$GEMC_TARBALL_URL"
9999
tar -xzf "$GEMC_TARBALL_ARCHIVE" -C "$gemc_home" --strip-components=1
100100
./install_geant4_data.sh
101-
source /path/to/gemc/gemc.env
101+
source /root/gemc/gemc.env
102102
gemc -v
103103
test_gdynamic_plugin_load
104104
test_gdata_event_verbose

gstreamer/meson.build

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ streamer_plugins = {
9999
}
100100

101101
streamer_dependencies = [yaml_cpp_dep, clhep_deps, geant4_core_deps]
102+
streamer_plugin_dependencies = {}
102103
additional_includes = ['gstreamer', 'gstreamer/factories/ASCII', 'gstreamer/factories/CSV', 'gstreamer/factories/JLABSRO', 'gstreamer/factories/JSON']
103104

104105
# Add ROOT bits if available
105106
if root_dep.found()
106107
streamer_plugins += { 'gstreamer_root_plugin' : root_plugin_files }
107-
streamer_dependencies += root_dep
108+
streamer_plugin_dependencies += { 'gstreamer_root_plugin' : [root_dep] }
108109
additional_includes += ['gstreamer/factories/ROOT']
109110
endif
110111

@@ -141,6 +142,7 @@ LD += {
141142
'headers' : files('gstreamer.h', 'gstreamerConventions.h', 'gstreamer_options.h'),
142143
'plugins' : streamer_plugins,
143144
'dependencies' : streamer_dependencies,
145+
'plugin_dependencies' : streamer_plugin_dependencies,
144146
'internal_dependencies' : internal_deps,
145147
'additional_includes' : additional_includes,
146148
'examples' : examples,

meson.build

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ foreach L : LD
8888
this_deps = L.get('dependencies', [])
8989
this_internal_libs = L.get('internal_dependencies', [])
9090
plugins = L.get('plugins', empty_dict)
91+
plugin_dependencies = L.get('plugin_dependencies', empty_dict)
9192
additional_includes = L.get('additional_includes', [''])
9293
moc_headers = L.get('moc_headers', [''])
9394
moc_sources = []
@@ -138,11 +139,15 @@ foreach L : LD
138139

139140
if plugins != empty_dict
140141
foreach name, sources : plugins
142+
this_plugin_dependencies = [this_deps, zlib_dep]
143+
if plugin_dependencies.has_key(name)
144+
this_plugin_dependencies += plugin_dependencies[name]
145+
endif
141146
shared_library(
142147
name,
143148
sources[0],
144149
install : sources[1],
145-
dependencies : [this_deps, zlib_dep],
150+
dependencies : this_plugin_dependencies,
146151
include_directories : all_includes + this_lib_name + additional_includes,
147152
link_with : this_library_link_with,
148153
name_suffix : 'gplugin',

releases/0.3.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,27 @@ This version includes:
33
- New python module: pygemc
44
- Generators in GUI
55
- Photon detection
6+
- Binary `gemc` tarballs for Linux CI platforms
67

78
<br/>
89

910
# Release notes
1011

12+
- Added Linux binary `gemc` tarballs to the development deployment workflow.
13+
The archives contain the installed executable, support files, selected smoke
14+
tests, `gemc.env`, and a generated Geant4 data installer.
15+
- Added automated binary tarball installation tests on base OS images using
16+
runtime packages only. These tests install Geant4 datasets into the unpacked
17+
tarball and run `gemc -v` plus smoke tests.
18+
- Isolated ROOT linkage to the ROOT gstreamer plugin so the main `gemc`
19+
executable can run without ROOT shared libraries.
1120
- Removed the need for GEMC-specific environment variables in Python example
1221
workflows: the API runs through the `pygemc` module, and users only need the
1322
executable in `PATH`.
1423
- Updated the Cherenkov optical example with neutral demonstration radiator names:
1524
`lowIndexRadiator`, `mediumIndexRadiator`, and `highIndexRadiator`.
1625
- Added y-vs-x analyzer plotting support in `pygemc` and used it for the
1726
Cherenkov homepage plots.
18-
- Regenerated the Cherenkov homepage VTK and PNG assets with the updated
19-
radiator variations.
20-
- Updated the Cherenkov example documentation to use a one-electron quick
21-
workflow and to note that demonstration optical constants may be unphysical.
2227

2328
<br/>
2429

@@ -31,15 +36,22 @@ This version includes:
3136

3237
## Documentation
3338

39+
- Added binary tarball installation instructions with per-platform download,
40+
unpack, Geant4 data install, environment setup, and smoke-test commands.
41+
- Added ROOT-free binary installation prerequisite tabs and retitled the full
42+
source-build prerequisite section to distinguish it from binary installation.
3443
- Updated the Cherenkov homepage documentation for the neutral radiator
3544
variations and one-electron quick workflow.
36-
- Documented that the Cherenkov demonstration optical constants may be
37-
unphysical.
45+
- Updated the Cherenkov example documentation to use a one-electron quick
46+
workflow and to note that demonstration optical constants may be unphysical.
3847

3948
<br/>
4049

4150
## Tests
4251

52+
- Added a nightly binary tarball workflow that builds base OS images, installs
53+
the runtime package subset, downloads the matching dev tarball, installs
54+
Geant4 data, and runs binary smoke checks.
4355
- Added analyzer coverage in `pygemc` for y-vs-x plotting and CLI image output.
4456

4557
<br/>
@@ -59,9 +71,9 @@ This version includes:
5971
Both x86_64 and ARM64 platforms are supported.
6072

6173
- macOS: 26
62-
- Ubuntu: 24.04
63-
- AlmaLinux: 9.4
64-
- Fedora: 42
74+
- Ubuntu: 24.04, 26.04
75+
- AlmaLinux: 10
76+
- Fedora: 44
6577
- Debian: 13
6678
- Arch Linux: latest
6779

@@ -83,6 +95,18 @@ Both x86_64 and ARM64 platforms are supported.
8395

8496
## Detailed list of changes and fixes
8597

98+
- Added `ci/package_install.sh` to build installable tarballs from CI install
99+
prefixes while excluding `python_env` and keeping only `gemc` plus selected
100+
smoke-test executables in `bin`.
101+
- Generated `gemc.env` and `install_geant4_data.sh` during tarball packaging
102+
from the Geant4 data environment exported by `geant4-config --sh`.
103+
- Added package-export stages to the deploy/test Dockerfile generation and
104+
attached tarballs to the `dev` GitHub release with explicit repository
105+
selection for `gh release`.
106+
- Added `ci/binary_packages.py` as the dedicated source of truth for ROOT-free
107+
binary runtime packages used by tarball tests.
108+
- Added per-plugin dependency handling in Meson and moved `root_dep` from the
109+
core gstreamer static library to `gstreamer_root_plugin`.
86110
- Better generator statistics for some examples
87111
- Api and analyzer moved to pygemc module
88112
- Examples and tests adapted to use pygemc

0 commit comments

Comments
 (0)