Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream 23.2 updates #8

Open
wants to merge 49 commits into
base: 23.02.ug
Choose a base branch
from

Conversation

itkovian
Copy link
Member

No description provided.

JonaOtto and others added 30 commits September 9, 2022 19:30
* Fix introduced typo in partition information dictionary key. (PySlurm#241)

* Added wait_finished method to job class (PySlurm#240).

* Added test method for wait_finished method of the job class.

* Added _load_single_job method to the job class to extract the slurm_load_job functionality.

* Updated find_id and wait_finished to use _load_single_job.

Co-authored-by: Jonathan Goodson <[email protected]>
* Fixed mem_per_cpu setting.

* Fixed settings with mem_per_cp mentions.
* update the build-script to allow parallel builds

Well, doesn't really do much right now since it's just
one file being compiled - but maybe it will matter in the future.

Also make it so the "install" command doesn't actually build anything,
and just installs. Update the README to promote usage of the build.sh
script
Also remove the installation instruction for PyPi - it's not up there
yet.

* fix bdist_rpm not including pyslurm.pyx

Just do a recursive include of all .pyx .pxd .pxi .h files
To be consistent with other functions and methods, we need to raise a
ValueError instead of just returning the error code. This also allows
client applications to more easily interpret the reason for the error.
* Fixes "incomplete type" complaints

cython always complaint about "incomplete type" for pthread_mutex_t
and sockaddr_storage.
They must be atleast defined with a "pass", which makes the complaint
go away.

Also reformat the imports a bit.

* Actually return the batch-script contents as a string.

Previously it was just printed to stdout, so it wasn't really
useful when wanting to process the contents any further in a script
for example.
* Transition from sphinx to mkdocs for documentation

* Tidy up docstrings, mkdocs config

* Add logo to docs, hide navbar

* Reformat docstring indentation

* Missing newline

* Fix more wrong indents

* Add `mike` for versioning the docs

* add site dir to gitignore

* setup.py: Remove .so files on cleanup

* header.pxi: Rename all "cpdef enum" to "cdef enum"

cpdef didn't work correctly with Cython 3.0 onwards, which is needed for
the docs. Setting this to "cdef enum" doesn't change any functionality
in our case.

* Remove embedsignature=True

For building docs, we use Cython 3.0 now, which automatically provides
full introspection functionality for cython functions

* Build docs with Cython 3.0

---------

Co-authored-by: Michael Milton <[email protected]>
Co-authored-by: Michael Milton <[email protected]>
Also use type annotations to document the return type
Mostly because this pretty much destroys syntax highlighting on github
And use the return type within the "Returns" section in parenthesis.
It must be with parenthesis to get it properly documented in mkdocs for
now, see mkdocstrings/griffe#137
- update the pyslurm_bindgen.py tool accordingly
* Rework the Job-API

* Rework the Node-API

* Add valgrind suppression file

* Rework slurmdbd Job API

* rework tests directory structure, split into "unit" and "integration"
* update README

- include logo
- remove testing section (maybe it back separetely in the documentation)
- remove workflow-badge (will only fail anyway, add back later when the
  building process has been updated)

* update the documentation

* move pyslurm.core.common package to pyslurm.utils

* move pyslurm.core.db package to pyslurm.db

* rename JobStats to JobStatistics
* Some more docstring enhancements

* clean before building docs

* enable autorefs and more markdown extensions
…Slurm#288)

"PySlurm Developers" also just sounds a bit nicer actually
* set light/dark mode primary colors explicitly

* Reuse logic to get the batch script of a job from the new Job API

* improve job submit testing and fix bugs

* JobSubmitDescription: fix some docstrings

* change quality_of_service to just qos in pyslurm/db/job

* fix date parse tests?
* Start maintaining a Changelog

- include it in the docs

* bump version to 23.2.1
- correctly use README.md instead of README.rst
- folder for documentation is now called "docs" instead of "doc"
- Rework whole Partition API
- avoid some duplicate logic in utils/uint.pyx
- make the string "UNLIMITED" a constant
- include new Partition API in the docs
- add tests for new partition API
## Added

- Ability to modify Database Jobs
- New attributes for a Database Job:
    - extra
    - failed_node
- Now possible to initialize a pyslurm.db.Jobs collection with existing job
  ids or pyslurm.db.Job objects

## Fixes

- Fixes a problem that prevented loading specific Jobs from the Database if
  the following two conditions were met:
    - no start/end time was specified
    - the Job was older than a day

## Changes

- create a _get_exit_code helper function to reduce duplicate code in various places when checking for exit-code or exit-signal of a Job or JobStep
- handle modification of objects via `modify()` consistently
- use correct list of node states when modifying the node state
- remove `consumable_resource` attribute of Partition class again, logic is merged into the `select_type_parameters` attribute
Fixes PySlurm#302

- also makes it clearer in the docs for some attributes which type is
  expected inside the lists.
- All collections inherit from `list` instead of `dict` now (this change is mostly motivated by multi-cluster support that will probably be added in the future)
- Added work-in-progress API for database `Associations`
- renamed `JobSearchFilter` to `JobFilter`
- kinda revert the change from PySlurm#304 where all collections inherit from `list` - there is now a new base class `MultiClusterMap`, which acts as a dict but is capable of holding data from multiple clusters (for example when querying database jobs from multiple clusters in pyslurm.db.Jobs) 
- improve docs
* Improved docs + better custom repr

* Add __or__, __ror__ and __ior__ to MultiClusterMap

* Use from_ptr method when loading single Job/Step/Node
@itkovian itkovian changed the base branch from 22.05.ug to 23.02.ug January 10, 2024 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants