@@ -13,16 +13,83 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313- New Classes to interact with Database QoS (WIP)
1414 - ` pyslurm.db.QualityOfService `
1515 - ` pyslurm.db.QualitiesOfService `
16+
17+ ## [ 23.2.3] ( https://github.com/PySlurm/pyslurm/releases/tag/v23.2.3 ) - 2025-01-03
18+
19+ ### Added
20+
1621- Add ` truncate_time ` option to ` pyslurm.db.JobFilter ` , which is the same as -T /
1722 --truncate from sacct.
1823- Add new Attributes to ` pyslurm.db.Jobs ` that help gathering statistics for a
1924 collection of Jobs more convenient.
20- - Fix ` allocated_gres ` attribute in the ` pyslurm.Node ` Class returning nothing.
2125- Add new ` idle_memory ` and ` allocated_tres ` attributes to ` pyslurm.Node ` class
26+ - Added ` stats ` attribute to both ` pyslurm.Job ` , ` pyslurm.Jobs ` and
27+ ` pyslurm.db.Jobs `
28+ - Added ` pids ` attribute to ` pyslurm.Job ` which contains Process-IDs of the Job
29+ organized by node-name
30+ - Added ` load_stats ` method to ` pyslurm.Job ` and ` pyslurm.Jobs ` classes.
31+ Together with the ` stats ` and ` pids ` attributes mentioned above, it is now
32+ possible to fetch live statistics (like sstat)
33+ - Switch to link with ` libslurmfull.so ` instead of ` libslurm.so ` <br >
34+ This change really has no impact from a user perspective. Everything will
35+ keep working the same, except that Slurms more internal library
36+ ` libslurmfull.so ` is linked with (which is located alongside the plugins
37+ inside the ` slurm ` directory, which itself is next to ` libslurm.so ` )<br >
38+ Why the change? Because it will likely make development easier. It allows
39+ access to more functions that might be needed in some places, without
40+ completely having to implement them on our own. Implementing the
41+ live-statistics feature, so basically ` sstat ` , is for example not possible
42+ with ` libslurm.so ` <br >
43+ You can keep providing the directory where ` libslurm.so ` resided as
44+ ` $SLURM_LIB_DIR ` to pyslurm, and it will automatically find ` libslurmfull.so `
45+ from there.
46+ - Added ` run_time_remaining ` and ` elapsed_cpu_time ` attributes to ` pyslurm.JobStep `
47+ - Added ` run_time_remaining ` attribute to ` pyslurm.Job `
48+
49+ ### Fixed
50+
51+ - Fix ` allocated_gres ` attribute in the ` pyslurm.Node ` Class returning nothing.
2252- Fix Node State being displayed as ` ALLOCATED ` when it should actually be
2353 ` MIXED ` .
2454- Fix crash for the ` gres_per_node ` attribute of the ` pyslurm.Job ` class when
2555 the GRES String received from Slurm contains no count.
56+ - Fixed ` total_cpu_time ` , ` system_cpu_time ` and ` user_cpu_time ` not getting
57+ calculated correctly for Job statistics
58+ - Actually make sure that ` avg_cpu_time ` , ` min_cpu_time ` , ` total_cpu_time ` ,
59+ ` system_cpu_time ` and ` user_cpu_time ` are integers, not float.
60+
61+ ### Changed
62+
63+ - Breaking: rename ` cpu_time ` to ` elapsed_cpu_time ` in ` pyslurm.Job ` and
64+ ` pyslurm.Jobs ` classes
65+ - Breaking: rename attribute ` alloc_cpus ` to just ` cpus ` in ` pyslurm.JobStep `
66+ - Breaking: removed the following attributes from ` pyslurm.db.Jobs ` :<br >
67+ * ` consumed_energy `
68+ * ` disk_read `
69+ * ` disk_write `
70+ * ` page_faults `
71+ * ` resident_memory `
72+ * ` virtual_memory `
73+ * ` elapsed_cpu_time `
74+ * ` total_cpu_time `
75+ * ` user_cpu_time `
76+ * ` system_cpu_time `
77+ - The removed attributes above are now all available within the ` stats `
78+ attribute, which is of type ` pyslurm.db.JobStatistics `
79+ - Renamed the original class of ` pyslurm.db.JobStatistics ` to
80+ ` pyslurm.db.JobStepStatistics ` .<br >
81+ All this class contains is really mostly applicable only to Steps, but
82+ doesn't fully apply at the Job Level.<br >
83+ Therefore, the new ` pyslurm.db.JobStatistics ` class only contains all
84+ statistics that make sense at the Job-level.
85+ - return ` 1 ` as a value for the ` cpus ` attribute in ` pyslurm.db.Job ` when there
86+ is no value set from Slurm's side.
87+
88+ ### Removed
89+
90+ - Removed ` pyslurm.version() ` function. Should use ` __version__ ` attribute directly.
91+ - Removed ` --slurm-lib ` and ` --slurm-inc ` parameters to ` setup.py ` .<br >
92+ ` SLURM_LIB_DIR ` and ` SLURM_INCLUDE_DIR ` environment variables should be used instead.
2693
2794## [ 23.2.2] ( https://github.com/PySlurm/pyslurm/releases/tag/v23.2.2 ) - 2023-07-18
2895
0 commit comments