From 6bbeb7f759bd33abbd84bf47f2a928701786e038 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 11:17:02 +0200 Subject: [PATCH 01/21] Restructure evolution methods a bit --- pineappl/src/grid.rs | 83 +++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/pineappl/src/grid.rs b/pineappl/src/grid.rs index 86e744b9..9a39105a 100644 --- a/pineappl/src/grid.rs +++ b/pineappl/src/grid.rs @@ -12,7 +12,7 @@ use super::ntuple_subgrid::NtupleSubgridV1; use super::pids::{self, PidBasis}; use super::subgrid::{ExtraSubgridParams, Mu2, Subgrid, SubgridEnum, SubgridParams}; use bitflags::bitflags; -use float_cmp::approx_eq; +use float_cmp::{approx_eq, assert_approx_eq}; use git_version::git_version; use lz4_flex::frame::{FrameDecoder, FrameEncoder}; use ndarray::{s, Array3, ArrayView3, ArrayView5, ArrayViewMut3, Axis, CowArray, Dimension, Ix4}; @@ -1411,11 +1411,20 @@ impl Grid { use super::evolution::EVOLVE_INFO_TOL_ULPS; let mut lhs: Option = None; - let mut fac1 = Vec::new(); + let mut op_fac1 = Vec::new(); + // Q2 slices needed by the grid + let grid_fac1: Vec<_> = self + .evolve_info(order_mask) + .fac1 + .into_iter() + .map(|fac| xi.1 * xi.1 * fac) + .collect(); for result in slices { let (info, operator) = result.map_err(|err| GridError::Other(err.into()))?; + op_fac1.push(info.fac1); + let op_info_dim = ( info.pids1.len(), info.x1.len(), @@ -1458,27 +1467,19 @@ impl Grid { } else { lhs = Some(rhs); } - - fac1.push(info.fac1); } // UNWRAP: if we can't compare two numbers there's a bug - fac1.sort_by(|a, b| a.partial_cmp(b).unwrap_or_else(|| unreachable!())); + op_fac1.sort_by(|a, b| a.partial_cmp(b).unwrap_or_else(|| unreachable!())); // make sure we've evolved all slices - if let Some(muf2) = self - .evolve_info(order_mask) - .fac1 - .into_iter() - .map(|mu2| xi.1 * xi.1 * mu2) - .find(|&grid_mu2| { - !fac1 - .iter() - .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) - }) - { + if let Some(muf2) = grid_fac1.into_iter().find(|&grid_mu2| { + !op_fac1 + .iter() + .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) + }) { return Err(GridError::EvolutionFailure(format!( - "no operator for muf2 = {muf2} found in {fac1:?}" + "no operator for muf2 = {muf2} found in {op_fac1:?}" ))); } @@ -1512,12 +1513,29 @@ impl Grid { use itertools::izip; let mut lhs: Option = None; - let mut fac1 = Vec::new(); + let mut op_fac1 = Vec::new(); + // Q2 slices needed by the grid + let grid_fac1: Vec<_> = self + .evolve_info(order_mask) + .fac1 + .into_iter() + .map(|fac| xi.1 * xi.1 * fac) + .collect(); // TODO: simplify the ugly repetition below by offloading some ops into fn for (result_a, result_b) in izip!(slices_a, slices_b) { // Operate on `slices_a` let (info_a, operator_a) = result_a.map_err(|err| GridError::Other(err.into()))?; + // Operate on `slices_b` + let (info_b, operator_b) = result_b.map_err(|err| GridError::Other(err.into()))?; + + // TODO: what if the scales of the EKOs don't agree? Is there an ordering problem? + assert_approx_eq!(f64, info_a.fac1, info_b.fac1, ulps = EVOLVE_INFO_TOL_ULPS); + + // also the PID bases must be the same + assert_eq!(info_a.pid_basis, info_b.pid_basis); + + op_fac1.push(info_a.fac1); let op_info_dim_a = ( info_a.pids1.len(), @@ -1534,9 +1552,6 @@ impl Grid { ))); } - // Operate on `slices_b` - let (info_b, operator_b) = result_b.map_err(|err| GridError::Other(err.into()))?; - let op_info_dim_b = ( info_b.pids1.len(), info_b.x1.len(), @@ -1586,8 +1601,6 @@ impl Grid { more_members: self.more_members.clone(), }; - assert_eq!(infos[0].pid_basis, infos[1].pid_basis); - // TODO: use a new constructor to set this information rhs.set_pid_basis(infos[0].pid_basis); @@ -1596,28 +1609,19 @@ impl Grid { } else { lhs = Some(rhs); } - - // NOTE: The following should be shared by the 2 EKOs(?) - fac1.push(infos[0].fac1); } // UNWRAP: if we can't compare two numbers there's a bug - fac1.sort_by(|a, b| a.partial_cmp(b).unwrap_or_else(|| unreachable!())); + op_fac1.sort_by(|a, b| a.partial_cmp(b).unwrap_or_else(|| unreachable!())); // make sure we've evolved all slices - if let Some(muf2) = self - .evolve_info(order_mask) - .fac1 - .into_iter() - .map(|mu2| xi.1 * xi.1 * mu2) - .find(|&grid_mu2| { - !fac1 - .iter() - .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) - }) - { + if let Some(muf2) = grid_fac1.into_iter().find(|&grid_mu2| { + !op_fac1 + .iter() + .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) + }) { return Err(GridError::EvolutionFailure(format!( - "no operator for muf2 = {muf2} found in {fac1:?}" + "no operator for muf2 = {muf2} found in {op_fac1:?}" ))); } @@ -1816,7 +1820,6 @@ impl Grid { mod tests { use super::*; use crate::channel; - use float_cmp::assert_approx_eq; use std::fs::File; #[test] From ecd287ec4a6b790ef5fc7ed1cb42d33c42340be2 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 11:23:10 +0200 Subject: [PATCH 02/21] Skip unused Q2 slices in the evolution --- pineappl/src/grid.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/pineappl/src/grid.rs b/pineappl/src/grid.rs index 9a39105a..adf15a9c 100644 --- a/pineappl/src/grid.rs +++ b/pineappl/src/grid.rs @@ -1411,6 +1411,9 @@ impl Grid { use super::evolution::EVOLVE_INFO_TOL_ULPS; let mut lhs: Option = None; + // Q2 slices we use + let mut used_op_fac1 = Vec::new(); + // Q2 slices we encounter, but possibly don't use let mut op_fac1 = Vec::new(); // Q2 slices needed by the grid let grid_fac1: Vec<_> = self @@ -1425,6 +1428,14 @@ impl Grid { op_fac1.push(info.fac1); + // skip slices that the grid doesn't use + if !grid_fac1 + .iter() + .any(|&fac| approx_eq!(f64, fac, info.fac1, ulps = EVOLVE_INFO_TOL_ULPS)) + { + continue; + } + let op_info_dim = ( info.pids1.len(), info.x1.len(), @@ -1467,6 +1478,8 @@ impl Grid { } else { lhs = Some(rhs); } + + used_op_fac1.push(info.fac1); } // UNWRAP: if we can't compare two numbers there's a bug @@ -1474,7 +1487,7 @@ impl Grid { // make sure we've evolved all slices if let Some(muf2) = grid_fac1.into_iter().find(|&grid_mu2| { - !op_fac1 + !used_op_fac1 .iter() .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) }) { @@ -1513,6 +1526,9 @@ impl Grid { use itertools::izip; let mut lhs: Option = None; + // Q2 slices we use + let mut used_op_fac1 = Vec::new(); + // Q2 slices we encounter, but possibly don't use let mut op_fac1 = Vec::new(); // Q2 slices needed by the grid let grid_fac1: Vec<_> = self @@ -1537,6 +1553,14 @@ impl Grid { op_fac1.push(info_a.fac1); + // skip slices that the grid doesn't use + if !grid_fac1 + .iter() + .any(|&fac| approx_eq!(f64, fac, info_a.fac1, ulps = EVOLVE_INFO_TOL_ULPS)) + { + continue; + } + let op_info_dim_a = ( info_a.pids1.len(), info_a.x1.len(), @@ -1609,6 +1633,8 @@ impl Grid { } else { lhs = Some(rhs); } + + used_op_fac1.push(infos[0].fac1); } // UNWRAP: if we can't compare two numbers there's a bug @@ -1616,7 +1642,7 @@ impl Grid { // make sure we've evolved all slices if let Some(muf2) = grid_fac1.into_iter().find(|&grid_mu2| { - !op_fac1 + !used_op_fac1 .iter() .any(|&eko_mu2| approx_eq!(f64, grid_mu2, eko_mu2, ulps = EVOLVE_INFO_TOL_ULPS)) }) { From 2a2aa4ad088763f99b6f40c7931240ba703f6ddc Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 11:27:50 +0200 Subject: [PATCH 03/21] Do not evolve the same Q2 slice more than once --- pineappl/src/evolution.rs | 2 +- pineappl/src/grid.rs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pineappl/src/evolution.rs b/pineappl/src/evolution.rs index cefcc209..83e57c3d 100644 --- a/pineappl/src/evolution.rs +++ b/pineappl/src/evolution.rs @@ -16,7 +16,7 @@ use ndarray::{s, Array1, Array2, Array3, ArrayView1, ArrayView4, Axis}; use std::iter; /// Number of ULPS used to de-duplicate grid values in [`Grid::evolve_info`]. -pub(crate) const EVOLVE_INFO_TOL_ULPS: i64 = 64; +pub(crate) const EVOLVE_INFO_TOL_ULPS: i64 = 256; /// Number of ULPS used to search for grid values in this module. This value must be a large-enough /// multiple of [`EVOLVE_INFO_TOL_ULPS`], because otherwise similar values are not found in diff --git a/pineappl/src/grid.rs b/pineappl/src/grid.rs index adf15a9c..623e7efb 100644 --- a/pineappl/src/grid.rs +++ b/pineappl/src/grid.rs @@ -1428,6 +1428,15 @@ impl Grid { op_fac1.push(info.fac1); + // it's possible that due to small numerical differences we get two slices which are + // almost the same. We have to skip those in order not to evolve the 'same' slice twice + if used_op_fac1 + .iter() + .any(|&fac| approx_eq!(f64, fac, info.fac1, ulps = EVOLVE_INFO_TOL_ULPS)) + { + continue; + } + // skip slices that the grid doesn't use if !grid_fac1 .iter() @@ -1553,6 +1562,15 @@ impl Grid { op_fac1.push(info_a.fac1); + // it's possible that due to small numerical differences we get two slices which are + // almost the same. We have to skip those in order not to evolve the 'same' slice twice + if used_op_fac1 + .iter() + .any(|&fac| approx_eq!(f64, fac, info_a.fac1, ulps = EVOLVE_INFO_TOL_ULPS)) + { + continue; + } + // skip slices that the grid doesn't use if !grid_fac1 .iter() From 22cbd5beb5f76947c5e4bf537ddda5a4f9fc6243 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 11:35:07 +0200 Subject: [PATCH 04/21] Update `CHANGELOG.md` --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fe08fc0..707dcee7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- fixed a problem in the evolution when an EKO with 'similar' Q2 slices was + used to evolve; this caused the Q2 slices of the grids to be evolved several + times, leading to wrong results + ## [0.8.2] - 22/07/2024 ### Changed From 8f3cc4c48e44c9b6a4b79f8b3ce40f7dd99f10e6 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 11:51:13 +0200 Subject: [PATCH 05/21] Allow release from branches other than `master` --- maintainer/make-release.sh | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/maintainer/make-release.sh b/maintainer/make-release.sh index 74ce4942..2ec56519 100755 --- a/maintainer/make-release.sh +++ b/maintainer/make-release.sh @@ -19,9 +19,6 @@ features=( fktable ) -main=master -this_branch=$(git rev-parse --abbrev-ref HEAD) - cd .. if [[ $# != 1 ]]; then @@ -38,13 +35,6 @@ if [[ $(echo ${version} | grep -oP '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?: exit 1 fi -# in branches that are not master we only allow prereleases -if [[ ${this_branch} != ${main} ]] && [[ ${prerelease} == "" ]]; then - echo "Ordinary releases are only allowed in the '${main}' branch." - echo "If you really want to make a release from '${this_branch}', consider making a prerelease." - exit 1 -fi - for crate in ${crates[@]}; do if [[ -n $(git status ${crate} --porcelain) ]]; then echo "This repository isn't clean. Make sure to add or delete the corresponding files." From 56cd14ac363620c7eb6fb6b875881cd5ba72d7ca Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 30 Aug 2024 13:38:20 +0200 Subject: [PATCH 06/21] Release v0.8.3 --- CHANGELOG.md | 5 ++++- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- pineappl_capi/Cargo.toml | 2 +- pineappl_cli/Cargo.toml | 6 +++--- pineappl_py/Cargo.toml | 2 +- xtask/Cargo.toml | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 707dcee7..70850d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.3] - 30/08/2024 + ### Fixed - fixed a problem in the evolution when an EKO with 'similar' Q2 slices was @@ -651,7 +653,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - first release -[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.2...HEAD +[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.3...HEAD +[0.8.3]: https://github.com/NNPDF/pineappl/compare/v0.8.2...v0.8.3 [0.8.2]: https://github.com/NNPDF/pineappl/compare/v0.8.1...v0.8.2 [0.8.1]: https://github.com/NNPDF/pineappl/compare/v0.8.0...v0.8.1 [0.8.0]: https://github.com/NNPDF/pineappl/compare/v0.7.4...v0.8.0 diff --git a/Cargo.lock b/Cargo.lock index 164f0ca6..65dfee87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1225,7 +1225,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pineappl" -version = "0.8.2" +version = "0.8.3" dependencies = [ "anyhow", "arrayvec", @@ -1250,7 +1250,7 @@ dependencies = [ [[package]] name = "pineappl_applgrid" -version = "0.8.2" +version = "0.8.3" dependencies = [ "cc", "cxx", @@ -1261,7 +1261,7 @@ dependencies = [ [[package]] name = "pineappl_capi" -version = "0.8.2" +version = "0.8.3" dependencies = [ "itertools", "pineappl", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "pineappl_cli" -version = "0.8.2" +version = "0.8.3" dependencies = [ "anyhow", "assert_cmd", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "pineappl_fastnlo" -version = "0.8.2" +version = "0.8.3" dependencies = [ "cxx", "cxx-build", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "pineappl_py" -version = "0.8.2" +version = "0.8.3" dependencies = [ "itertools", "ndarray", @@ -2480,7 +2480,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.8.2" +version = "0.8.3" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 5e3d2445..7a1580ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ keywords = ["high-energy-physics", "physics"] license = "GPL-3.0-or-later" repository = "https://github.com/NNPDF/pineappl" rust-version = "1.70.0" -version = "0.8.2" +version = "0.8.3" [workspace.lints.clippy] all = { level = "warn", priority = -1 } diff --git a/pineappl_capi/Cargo.toml b/pineappl_capi/Cargo.toml index eeb0d044..45651640 100644 --- a/pineappl_capi/Cargo.toml +++ b/pineappl_capi/Cargo.toml @@ -16,7 +16,7 @@ version.workspace = true workspace = true [dependencies] -pineappl = { path = "../pineappl", version = "=0.8.2" } +pineappl = { path = "../pineappl", version = "=0.8.3" } itertools = "0.10.1" [features] diff --git a/pineappl_cli/Cargo.toml b/pineappl_cli/Cargo.toml index bc0bdadb..f9c62982 100644 --- a/pineappl_cli/Cargo.toml +++ b/pineappl_cli/Cargo.toml @@ -30,9 +30,9 @@ lhapdf = { package = "managed-lhapdf", version = "0.3.2" } lz4_flex = { optional = true, version = "0.9.2" } ndarray = "0.15.4" ndarray-npy = { optional = true, version = "0.8.1" } -pineappl = { path = "../pineappl", version = "=0.8.2" } -pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.2" } -pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.2" } +pineappl = { path = "../pineappl", version = "=0.8.3" } +pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.3" } +pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.3" } prettytable-rs = { default-features = false, features = ["win_crlf"], version = "0.10.0" } rayon = "1.5.1" serde = { features = ["derive"], optional = true, version = "1.0.130" } diff --git a/pineappl_py/Cargo.toml b/pineappl_py/Cargo.toml index 526e3dff..b5850f49 100644 --- a/pineappl_py/Cargo.toml +++ b/pineappl_py/Cargo.toml @@ -30,5 +30,5 @@ crate-type = ["cdylib"] itertools = "0.10.1" ndarray = "0.15.4" numpy = "0.21.0" -pineappl = { path = "../pineappl", version = "=0.8.2" } +pineappl = { path = "../pineappl", version = "=0.8.3" } pyo3 = { features = ["extension-module"], version = "0.21.2" } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 908d0fc6..13092834 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -21,4 +21,4 @@ clap_mangen = "0.2.18" enum_dispatch = "0.3.7" #git2 = "0.17.2" #semver = "1.0.17" -pineappl_cli = { path = "../pineappl_cli", version = "=0.8.2" } +pineappl_cli = { path = "../pineappl_cli", version = "=0.8.3" } From 744bf41fb528d7ec2dedb72fc2aa58d74201b960 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Tue, 27 Aug 2024 18:53:06 +0200 Subject: [PATCH 07/21] Update also other metadata in `Grid::set_convolution` --- pineappl/src/grid.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pineappl/src/grid.rs b/pineappl/src/grid.rs index 623e7efb..c347891d 100644 --- a/pineappl/src/grid.rs +++ b/pineappl/src/grid.rs @@ -856,6 +856,19 @@ impl Grid { self.set_key_value(&format!("convolution_type_{}", index + 1), &type_); self.set_key_value(&format!("convolution_particle_{}", index + 1), &particle); + + // update the remaining metadata + for (index, convolution) in self.convolutions().into_iter().enumerate() { + if self + .key_values() + // UNWRAP: we set some key-values before so there must be a storage + .unwrap_or_else(|| unreachable!()) + .get(&format!("initial_state_{}", index + 1)) + .is_some() + { + self.set_convolution(index, convolution); + } + } } fn increase_shape(&mut self, new_dim: &(usize, usize, usize)) { From 26ed6f6f0b37b7c440ff2851b9ba926aa9e1d0ba Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 4 Oct 2024 17:22:51 +0200 Subject: [PATCH 08/21] Update `CHANGELOG.md` --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70850d39..6c79da8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- fixed a bug that lead to inconsistent convolution metadata + (https://github.com/NNPDF/pineappl/issues/316) + ## [0.8.3] - 30/08/2024 ### Fixed From 99e2bf42d4bf1bb72e399bb07976367a935a0d01 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 4 Oct 2024 17:56:07 +0200 Subject: [PATCH 09/21] Release v0.8.4 --- CHANGELOG.md | 5 ++++- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- pineappl_capi/Cargo.toml | 2 +- pineappl_cli/Cargo.toml | 6 +++--- pineappl_py/Cargo.toml | 2 +- xtask/Cargo.toml | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c79da8d..9dc7fcb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.4] - 04/10/2024 + ### Fixed - fixed a bug that lead to inconsistent convolution metadata @@ -658,7 +660,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - first release -[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.3...HEAD +[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.4...HEAD +[0.8.4]: https://github.com/NNPDF/pineappl/compare/v0.8.3...v0.8.4 [0.8.3]: https://github.com/NNPDF/pineappl/compare/v0.8.2...v0.8.3 [0.8.2]: https://github.com/NNPDF/pineappl/compare/v0.8.1...v0.8.2 [0.8.1]: https://github.com/NNPDF/pineappl/compare/v0.8.0...v0.8.1 diff --git a/Cargo.lock b/Cargo.lock index 65dfee87..41f53233 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1225,7 +1225,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pineappl" -version = "0.8.3" +version = "0.8.4" dependencies = [ "anyhow", "arrayvec", @@ -1250,7 +1250,7 @@ dependencies = [ [[package]] name = "pineappl_applgrid" -version = "0.8.3" +version = "0.8.4" dependencies = [ "cc", "cxx", @@ -1261,7 +1261,7 @@ dependencies = [ [[package]] name = "pineappl_capi" -version = "0.8.3" +version = "0.8.4" dependencies = [ "itertools", "pineappl", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "pineappl_cli" -version = "0.8.3" +version = "0.8.4" dependencies = [ "anyhow", "assert_cmd", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "pineappl_fastnlo" -version = "0.8.3" +version = "0.8.4" dependencies = [ "cxx", "cxx-build", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "pineappl_py" -version = "0.8.3" +version = "0.8.4" dependencies = [ "itertools", "ndarray", @@ -2480,7 +2480,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.8.3" +version = "0.8.4" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 7a1580ac..3bea902d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ keywords = ["high-energy-physics", "physics"] license = "GPL-3.0-or-later" repository = "https://github.com/NNPDF/pineappl" rust-version = "1.70.0" -version = "0.8.3" +version = "0.8.4" [workspace.lints.clippy] all = { level = "warn", priority = -1 } diff --git a/pineappl_capi/Cargo.toml b/pineappl_capi/Cargo.toml index 45651640..52362c04 100644 --- a/pineappl_capi/Cargo.toml +++ b/pineappl_capi/Cargo.toml @@ -16,7 +16,7 @@ version.workspace = true workspace = true [dependencies] -pineappl = { path = "../pineappl", version = "=0.8.3" } +pineappl = { path = "../pineappl", version = "=0.8.4" } itertools = "0.10.1" [features] diff --git a/pineappl_cli/Cargo.toml b/pineappl_cli/Cargo.toml index f9c62982..a9c10e73 100644 --- a/pineappl_cli/Cargo.toml +++ b/pineappl_cli/Cargo.toml @@ -30,9 +30,9 @@ lhapdf = { package = "managed-lhapdf", version = "0.3.2" } lz4_flex = { optional = true, version = "0.9.2" } ndarray = "0.15.4" ndarray-npy = { optional = true, version = "0.8.1" } -pineappl = { path = "../pineappl", version = "=0.8.3" } -pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.3" } -pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.3" } +pineappl = { path = "../pineappl", version = "=0.8.4" } +pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.4" } +pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.4" } prettytable-rs = { default-features = false, features = ["win_crlf"], version = "0.10.0" } rayon = "1.5.1" serde = { features = ["derive"], optional = true, version = "1.0.130" } diff --git a/pineappl_py/Cargo.toml b/pineappl_py/Cargo.toml index b5850f49..d7b30b4b 100644 --- a/pineappl_py/Cargo.toml +++ b/pineappl_py/Cargo.toml @@ -30,5 +30,5 @@ crate-type = ["cdylib"] itertools = "0.10.1" ndarray = "0.15.4" numpy = "0.21.0" -pineappl = { path = "../pineappl", version = "=0.8.3" } +pineappl = { path = "../pineappl", version = "=0.8.4" } pyo3 = { features = ["extension-module"], version = "0.21.2" } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 13092834..01a8bd44 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -21,4 +21,4 @@ clap_mangen = "0.2.18" enum_dispatch = "0.3.7" #git2 = "0.17.2" #semver = "1.0.17" -pineappl_cli = { path = "../pineappl_cli", version = "=0.8.3" } +pineappl_cli = { path = "../pineappl_cli", version = "=0.8.4" } From e6a2dea855a10c9ef7cd7868815758a9c4b261af Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 4 Oct 2024 17:57:17 +0200 Subject: [PATCH 10/21] Fix `make_release.sh` --- maintainer/make-release.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/maintainer/make-release.sh b/maintainer/make-release.sh index 2ec56519..074c9dfa 100755 --- a/maintainer/make-release.sh +++ b/maintainer/make-release.sh @@ -62,12 +62,6 @@ for feature in ${features[@]}; do cargo test --release --features=${feature} done -echo ">>> Testing if 'pineappl' can be published ..." - -cd pineappl -cargo publish --dry-run -cd .. - echo ">>> Updating version strings ..." # we don't want to create a changelog entry for prereleases, which are solely @@ -97,6 +91,12 @@ echo ">>> Updating Cargo.lock ..." echo ${crates[@]} | xargs printf ' -p %s' | xargs cargo update git add Cargo.lock +echo ">>> Testing if 'pineappl' can be published ..." + +cd pineappl +cargo publish --dry-run +cd .. + echo ">>> Commiting and pushing changes ..." git commit -m "Release v${version}" From 49e1c08609be2716538388e6c1e0e79e52a10743 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 4 Sep 2024 14:11:29 +0200 Subject: [PATCH 11/21] Fix library installation directory --- .github/workflows/capi.yaml | 3 +-- docs/installation.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/capi.yaml b/.github/workflows/capi.yaml index 90f3d021..5f9c49a2 100644 --- a/.github/workflows/capi.yaml +++ b/.github/workflows/capi.yaml @@ -16,8 +16,7 @@ jobs: - name: Install PineAPPL's C API run: | - export RUSTFLAGS="-Cinstrument-coverage" - cargo cinstall --verbose --prefix=/usr/local/ --manifest-path pineappl_capi/Cargo.toml + cargo cinstall --verbose --prefix=/usr/local/ --libdir=lib --manifest-path pineappl_capi/Cargo.toml ldconfig - name: Test C++ example diff --git a/docs/installation.md b/docs/installation.md index d01aa21f..d8cb00f0 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -75,7 +75,7 @@ If you want to build the CAPI from its sources instead, you first need to 3. Now install `pineappl_capi`, PineAPPL's C API: cd pineappl_capi - cargo cinstall --release --prefix=${prefix} + cargo cinstall --release --prefix=${prefix} --libdir=lib cd .. where `${prefix}` points to the desired installation directory. From a3a080477c38fe58fa3fb70029b5e4476be05244 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 5 Sep 2024 14:30:35 +0200 Subject: [PATCH 12/21] Add back missing compiler flags --- .github/workflows/capi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/capi.yaml b/.github/workflows/capi.yaml index 5f9c49a2..49cdf51e 100644 --- a/.github/workflows/capi.yaml +++ b/.github/workflows/capi.yaml @@ -15,6 +15,8 @@ jobs: - uses: actions/checkout@v4 - name: Install PineAPPL's C API + env: + RUSTFLAGS: '-Cinstrument-coverage' run: | cargo cinstall --verbose --prefix=/usr/local/ --libdir=lib --manifest-path pineappl_capi/Cargo.toml ldconfig From 76a1e89153c49acc7b0f2682b2d9ed05b145130a Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 5 Sep 2024 14:31:02 +0200 Subject: [PATCH 13/21] Add `-Clink-dead-code` to avoid warnings --- .github/workflows/capi.yaml | 3 ++- .github/workflows/python.yml | 3 +++ .github/workflows/rust.yml | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/capi.yaml b/.github/workflows/capi.yaml index 49cdf51e..c89ca0e5 100644 --- a/.github/workflows/capi.yaml +++ b/.github/workflows/capi.yaml @@ -16,7 +16,8 @@ jobs: - name: Install PineAPPL's C API env: - RUSTFLAGS: '-Cinstrument-coverage' + # `-C link-dead-code` is needed to prevent 'warning: XX functions have mismatched data' warnings + RUSTFLAGS: '-Cinstrument-coverage -Clink-dead-code' run: | cargo cinstall --verbose --prefix=/usr/local/ --libdir=lib --manifest-path pineappl_capi/Cargo.toml ldconfig diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index a28f8b3a..bbb7ef7f 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -20,6 +20,9 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Test + env: + # `-C link-dead-code` is needed to prevent 'warning: XX functions have mismatched data' warnings + RUSTFLAGS: '-Cinstrument-coverage -Clink-dead-code' run: | cd pineappl_py python -m venv env diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f416ed0c..5e97ed9d 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -66,7 +66,8 @@ jobs: - name: Run tests env: - RUSTFLAGS: '-Cinstrument-coverage' + # `-C link-dead-code` is needed to prevent 'warning: XX functions have mismatched data' warnings + RUSTFLAGS: '-Cinstrument-coverage -Clink-dead-code' run: | # we need stderr, but we can't run test twice because it'll regenerate/modify the binaries which interferes with `llvm-cov` cargo test --features=applgrid,evolve,fastnlo,fktable --no-fail-fast 2> >(tee stderr 1>&2) From 208d475cdf015cd15e399397fb0647b21e310500 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Mon, 7 Oct 2024 11:44:56 +0200 Subject: [PATCH 14/21] Add missing linker paths to the APPLgrid interface --- pineappl_applgrid/build.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pineappl_applgrid/build.rs b/pineappl_applgrid/build.rs index 7719d3e7..699122a2 100644 --- a/pineappl_applgrid/build.rs +++ b/pineappl_applgrid/build.rs @@ -115,6 +115,14 @@ fn main() { "" }; + // `--ldflags` contains linker paths not contained in `--libdir` + for lib_path in libs + .split_whitespace() + .filter_map(|token| token.strip_prefix("-L")) + { + println!("cargo:rustc-link-search={lib_path}"); + } + for lib in libs .split_whitespace() .filter_map(|token| token.strip_prefix("-l")) From ab746df553af6ceb1665827028113997b0a5ea95 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Mon, 7 Oct 2024 14:42:29 +0200 Subject: [PATCH 15/21] Update `CHANGELOG.md` --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dc7fcb6..d361494a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- fixed a bug in `pineappl_applgrid` that lead to linking problems with ROOT + and `gfortran` + ## [0.8.4] - 04/10/2024 ### Fixed From 769d8803af97544bb647b10842a3c5af35636926 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Mon, 7 Oct 2024 14:44:16 +0200 Subject: [PATCH 16/21] Release v0.8.5 --- CHANGELOG.md | 5 ++++- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- pineappl_capi/Cargo.toml | 2 +- pineappl_cli/Cargo.toml | 6 +++--- pineappl_py/Cargo.toml | 2 +- xtask/Cargo.toml | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d361494a..cd39b96f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.5] - 07/10/2024 + ### Fixed - fixed a bug in `pineappl_applgrid` that lead to linking problems with ROOT @@ -665,7 +667,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - first release -[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.4...HEAD +[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.5...HEAD +[0.8.5]: https://github.com/NNPDF/pineappl/compare/v0.8.4...v0.8.5 [0.8.4]: https://github.com/NNPDF/pineappl/compare/v0.8.3...v0.8.4 [0.8.3]: https://github.com/NNPDF/pineappl/compare/v0.8.2...v0.8.3 [0.8.2]: https://github.com/NNPDF/pineappl/compare/v0.8.1...v0.8.2 diff --git a/Cargo.lock b/Cargo.lock index 41f53233..ff1bc6ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1225,7 +1225,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pineappl" -version = "0.8.4" +version = "0.8.5" dependencies = [ "anyhow", "arrayvec", @@ -1250,7 +1250,7 @@ dependencies = [ [[package]] name = "pineappl_applgrid" -version = "0.8.4" +version = "0.8.5" dependencies = [ "cc", "cxx", @@ -1261,7 +1261,7 @@ dependencies = [ [[package]] name = "pineappl_capi" -version = "0.8.4" +version = "0.8.5" dependencies = [ "itertools", "pineappl", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "pineappl_cli" -version = "0.8.4" +version = "0.8.5" dependencies = [ "anyhow", "assert_cmd", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "pineappl_fastnlo" -version = "0.8.4" +version = "0.8.5" dependencies = [ "cxx", "cxx-build", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "pineappl_py" -version = "0.8.4" +version = "0.8.5" dependencies = [ "itertools", "ndarray", @@ -2480,7 +2480,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.8.4" +version = "0.8.5" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 3bea902d..ddf9c5cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ keywords = ["high-energy-physics", "physics"] license = "GPL-3.0-or-later" repository = "https://github.com/NNPDF/pineappl" rust-version = "1.70.0" -version = "0.8.4" +version = "0.8.5" [workspace.lints.clippy] all = { level = "warn", priority = -1 } diff --git a/pineappl_capi/Cargo.toml b/pineappl_capi/Cargo.toml index 52362c04..663134fc 100644 --- a/pineappl_capi/Cargo.toml +++ b/pineappl_capi/Cargo.toml @@ -16,7 +16,7 @@ version.workspace = true workspace = true [dependencies] -pineappl = { path = "../pineappl", version = "=0.8.4" } +pineappl = { path = "../pineappl", version = "=0.8.5" } itertools = "0.10.1" [features] diff --git a/pineappl_cli/Cargo.toml b/pineappl_cli/Cargo.toml index a9c10e73..db628154 100644 --- a/pineappl_cli/Cargo.toml +++ b/pineappl_cli/Cargo.toml @@ -30,9 +30,9 @@ lhapdf = { package = "managed-lhapdf", version = "0.3.2" } lz4_flex = { optional = true, version = "0.9.2" } ndarray = "0.15.4" ndarray-npy = { optional = true, version = "0.8.1" } -pineappl = { path = "../pineappl", version = "=0.8.4" } -pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.4" } -pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.4" } +pineappl = { path = "../pineappl", version = "=0.8.5" } +pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.5" } +pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.5" } prettytable-rs = { default-features = false, features = ["win_crlf"], version = "0.10.0" } rayon = "1.5.1" serde = { features = ["derive"], optional = true, version = "1.0.130" } diff --git a/pineappl_py/Cargo.toml b/pineappl_py/Cargo.toml index d7b30b4b..f2a57e80 100644 --- a/pineappl_py/Cargo.toml +++ b/pineappl_py/Cargo.toml @@ -30,5 +30,5 @@ crate-type = ["cdylib"] itertools = "0.10.1" ndarray = "0.15.4" numpy = "0.21.0" -pineappl = { path = "../pineappl", version = "=0.8.4" } +pineappl = { path = "../pineappl", version = "=0.8.5" } pyo3 = { features = ["extension-module"], version = "0.21.2" } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 01a8bd44..21d32a85 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -21,4 +21,4 @@ clap_mangen = "0.2.18" enum_dispatch = "0.3.7" #git2 = "0.17.2" #semver = "1.0.17" -pineappl_cli = { path = "../pineappl_cli", version = "=0.8.4" } +pineappl_cli = { path = "../pineappl_cli", version = "=0.8.5" } From 44e3bfff17285e6249b31a32dcfde8f9e6a62039 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 18 Oct 2024 15:33:44 +0200 Subject: [PATCH 17/21] Fix import of `NPDFDim = 2` fastNLO tables --- maintainer/generate-coverage.sh | 1 + pineappl_cli/src/import/fastnlo.rs | 13 ++++++++++++- pineappl_cli/tests/import.rs | 28 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/maintainer/generate-coverage.sh b/maintainer/generate-coverage.sh index bba5931d..ba4815bf 100755 --- a/maintainer/generate-coverage.sh +++ b/maintainer/generate-coverage.sh @@ -11,6 +11,7 @@ wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/E906nlo_bin_00.tar' wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/FK_ATLASTTBARTOT13TEV.dat' wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/FK_POSXDQ.dat' +wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/LHC8-Mtt-HT4-173_3-bin1.tab.gz' wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/LHCBWZMU7TEV_PI_part1.appl' wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/LHCB_DY_8TEV.pineappl.lz4' wget --no-verbose --no-clobber -P test-data 'https://data.nnpdf.science/pineappl/test-data/LHCB_DY_8TEV.tar' diff --git a/pineappl_cli/src/import/fastnlo.rs b/pineappl_cli/src/import/fastnlo.rs index 4e79d3f3..8e422593 100644 --- a/pineappl_cli/src/import/fastnlo.rs +++ b/pineappl_cli/src/import/fastnlo.rs @@ -13,6 +13,7 @@ use pineappl_fastnlo::ffi::{ fastNLOPDFLinearCombinations, EScaleFunctionalForm, }; use std::f64::consts::TAU; +use std::mem; fn pid_to_pdg_id(pid: i32) -> i32 { match pid { @@ -130,6 +131,8 @@ fn convert_coeff_add_fix( let total_scalenodes: usize = table.GetTotalScalenodes().try_into().unwrap(); + let npdfdim = table.GetNPDFDim(); + for obs in 0..table_as_add_base.GetNObsBin() { let x1_values = ffi::GetXNodes1(table_as_add_base, obs); @@ -178,13 +181,21 @@ fn convert_coeff_add_fix( table.GetSigmaTilde(obs, j, mu2_slice.try_into().unwrap(), ix, subproc); if value != 0.0 { + if npdfdim == 2 { + mem::swap(&mut ix1, &mut ix2); + } + array[[mu2_slice, ix2, ix1]] = value / factor * x1_values[ix1] * x2_values[ix2]; + + if npdfdim == 2 { + mem::swap(&mut ix1, &mut ix2); + } } ix1 += 1; - match table.GetNPDFDim() { + match npdfdim { 2 => { if ix1 == x1_values.len() { ix1 = 0; diff --git a/pineappl_cli/tests/import.rs b/pineappl_cli/tests/import.rs index c66f66c2..630d3a20 100644 --- a/pineappl_cli/tests/import.rs +++ b/pineappl_cli/tests/import.rs @@ -306,6 +306,16 @@ const IMPORT_DOUBLE_HADRONIC_FASTNLO_STR: &str = 20 2.0326950e-2 2.0326950e-2 6.6613381e-15 1.3211654e-14 "; +#[cfg(feature = "fastnlo")] +const IMPORT_NPDFDIM_2_TABLE_STR: &str = "0 1.0824021e0 1.0824021e0 1.4654944e-14 +1 1.0680553e0 1.0680553e0 -1.4432899e-15 +2 6.4959982e-1 6.4959982e-1 4.4408921e-15 +3 3.3033872e-1 3.3033872e-1 2.0872193e-14 +4 1.3360159e-1 1.3360159e-1 -2.3092639e-14 +5 3.2728146e-2 3.2728146e-2 -5.7731597e-15 +6 3.8508907e-3 3.8508907e-3 2.2870594e-14 +"; + #[test] fn help() { Command::cargo_bin("pineappl") @@ -1268,3 +1278,21 @@ fn import_double_hadronic_fastnlo() { IMPORT_DOUBLE_HADRONIC_FASTNLO_STR, )); } + +#[test] +#[cfg(feature = "fastnlo")] +fn import_npdfdim_2_table() { + let output = NamedTempFile::new("converted10.pineappl.lz4").unwrap(); + + Command::cargo_bin("pineappl") + .unwrap() + .args([ + "import", + "../test-data/LHC8-Mtt-HT4-173_3-bin1.tab.gz", + output.path().to_str().unwrap(), + "NNPDF31_nlo_as_0118_luxqed", + ]) + .assert() + .success() + .stdout(predicates::str::ends_with(IMPORT_NPDFDIM_2_TABLE_STR)); +} From c16fb47bb99288fa116f313cafcb1f826ac5eac3 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 18 Oct 2024 15:38:06 +0200 Subject: [PATCH 18/21] Update `CHANGELOG.md` --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd39b96f..75936ecd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- fixed [Issue #318](https://github.com/NNPDF/pineappl/issues/318) that caused + fastNLO tables with `NPDFDim = 2` to be incorrectly imported + ## [0.8.5] - 07/10/2024 ### Fixed From c39ce64158ceecad9463ad9e960de4fe7b28d0c1 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 18 Oct 2024 15:52:54 +0200 Subject: [PATCH 19/21] Update cache to download new test data --- .github/workflows/rust.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5e97ed9d..b4d69849 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -25,7 +25,7 @@ jobs: uses: actions/cache@v4 with: path: test-data - key: test-data-v12 + key: test-data-v14 - name: Download test data if: steps.cache-test-data.outputs.cache-hit != 'true' run: | @@ -38,6 +38,7 @@ jobs: curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/E906nlo_bin_00.tar' curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/FK_ATLASTTBARTOT13TEV.dat' curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/FK_POSXDQ.dat' + curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/LHC8-Mtt-HT4-173_3-bin1.tab.gz' curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/LHCBWZMU7TEV_PI_part1.appl' curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/LHCB_DY_8TEV.pineappl.lz4' curl -s -C - -O 'https://data.nnpdf.science/pineappl/test-data/LHCB_DY_8TEV.tar' From ff311f511da3aaa1edcdd2b40fc6fc7a6c00fa59 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 18 Oct 2024 16:04:02 +0200 Subject: [PATCH 20/21] Release v0.8.6 --- CHANGELOG.md | 5 ++++- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- pineappl_capi/Cargo.toml | 2 +- pineappl_cli/Cargo.toml | 6 +++--- pineappl_py/Cargo.toml | 2 +- xtask/Cargo.toml | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75936ecd..18964e93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.6] - 18/10/2024 + ### Fixed - fixed [Issue #318](https://github.com/NNPDF/pineappl/issues/318) that caused @@ -672,7 +674,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - first release -[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.5...HEAD +[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.8.6...HEAD +[0.8.6]: https://github.com/NNPDF/pineappl/compare/v0.8.5...v0.8.6 [0.8.5]: https://github.com/NNPDF/pineappl/compare/v0.8.4...v0.8.5 [0.8.4]: https://github.com/NNPDF/pineappl/compare/v0.8.3...v0.8.4 [0.8.3]: https://github.com/NNPDF/pineappl/compare/v0.8.2...v0.8.3 diff --git a/Cargo.lock b/Cargo.lock index ff1bc6ca..0eedb981 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1225,7 +1225,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pineappl" -version = "0.8.5" +version = "0.8.6" dependencies = [ "anyhow", "arrayvec", @@ -1250,7 +1250,7 @@ dependencies = [ [[package]] name = "pineappl_applgrid" -version = "0.8.5" +version = "0.8.6" dependencies = [ "cc", "cxx", @@ -1261,7 +1261,7 @@ dependencies = [ [[package]] name = "pineappl_capi" -version = "0.8.5" +version = "0.8.6" dependencies = [ "itertools", "pineappl", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "pineappl_cli" -version = "0.8.5" +version = "0.8.6" dependencies = [ "anyhow", "assert_cmd", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "pineappl_fastnlo" -version = "0.8.5" +version = "0.8.6" dependencies = [ "cxx", "cxx-build", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "pineappl_py" -version = "0.8.5" +version = "0.8.6" dependencies = [ "itertools", "ndarray", @@ -2480,7 +2480,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.8.5" +version = "0.8.6" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index ddf9c5cb..3eb63dac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ keywords = ["high-energy-physics", "physics"] license = "GPL-3.0-or-later" repository = "https://github.com/NNPDF/pineappl" rust-version = "1.70.0" -version = "0.8.5" +version = "0.8.6" [workspace.lints.clippy] all = { level = "warn", priority = -1 } diff --git a/pineappl_capi/Cargo.toml b/pineappl_capi/Cargo.toml index 663134fc..ed789978 100644 --- a/pineappl_capi/Cargo.toml +++ b/pineappl_capi/Cargo.toml @@ -16,7 +16,7 @@ version.workspace = true workspace = true [dependencies] -pineappl = { path = "../pineappl", version = "=0.8.5" } +pineappl = { path = "../pineappl", version = "=0.8.6" } itertools = "0.10.1" [features] diff --git a/pineappl_cli/Cargo.toml b/pineappl_cli/Cargo.toml index db628154..e3e95a58 100644 --- a/pineappl_cli/Cargo.toml +++ b/pineappl_cli/Cargo.toml @@ -30,9 +30,9 @@ lhapdf = { package = "managed-lhapdf", version = "0.3.2" } lz4_flex = { optional = true, version = "0.9.2" } ndarray = "0.15.4" ndarray-npy = { optional = true, version = "0.8.1" } -pineappl = { path = "../pineappl", version = "=0.8.5" } -pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.5" } -pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.5" } +pineappl = { path = "../pineappl", version = "=0.8.6" } +pineappl_applgrid = { optional = true, path = "../pineappl_applgrid", version = "=0.8.6" } +pineappl_fastnlo = { optional = true, path = "../pineappl_fastnlo", version = "=0.8.6" } prettytable-rs = { default-features = false, features = ["win_crlf"], version = "0.10.0" } rayon = "1.5.1" serde = { features = ["derive"], optional = true, version = "1.0.130" } diff --git a/pineappl_py/Cargo.toml b/pineappl_py/Cargo.toml index f2a57e80..d8ff17cb 100644 --- a/pineappl_py/Cargo.toml +++ b/pineappl_py/Cargo.toml @@ -30,5 +30,5 @@ crate-type = ["cdylib"] itertools = "0.10.1" ndarray = "0.15.4" numpy = "0.21.0" -pineappl = { path = "../pineappl", version = "=0.8.5" } +pineappl = { path = "../pineappl", version = "=0.8.6" } pyo3 = { features = ["extension-module"], version = "0.21.2" } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 21d32a85..0f1ea2bb 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -21,4 +21,4 @@ clap_mangen = "0.2.18" enum_dispatch = "0.3.7" #git2 = "0.17.2" #semver = "1.0.17" -pineappl_cli = { path = "../pineappl_cli", version = "=0.8.5" } +pineappl_cli = { path = "../pineappl_cli", version = "=0.8.6" } From 7b19f885729ac5e605e89926da45cb2857273eb8 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 18 Oct 2024 16:18:19 +0200 Subject: [PATCH 21/21] Increase cache version to re-download test data --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b4d69849..c9297eb5 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -25,7 +25,7 @@ jobs: uses: actions/cache@v4 with: path: test-data - key: test-data-v14 + key: test-data-v15 - name: Download test data if: steps.cache-test-data.outputs.cache-hit != 'true' run: |