Skip to content

Releases: InstituteforDiseaseModeling/idmtools

v2.0.2

25 Nov 21:13
9b7cd82
Compare
Choose a tag to compare

Release notes for idmtools 2.0.2

The release of idmtools 2.0.2 represents a feature release, focusing on MPI support in Platforms and some bug fixes.

Highlights:

Key features and changes in this release include:

  • MPI support in several idmtools platforms:

    SlurmPlatform
    ContainerPlatform
    ProcessPlatform

  • Fixed assets copy issue with relative symlinks.

  • Fixed major performance in Container and Slurm platforms.

  • Fixed idmtools cache issue.

  • Removed direct srun call in sbatch.

  • Changed the default 'max_running_jobs' in SlurmPlatform from 1 to 100

  • Bug fixes

Change log:

Bugs

  • #2391 - Random fail with large number of simulations with NoneType of platform
  • #2393 - Calibra may fail with ContainerPlatform
  • #2395 - Slurm: Do not need to delete suite if job_directory is not exist or suite not exist anymore
  • #2399 - docker container can become unusable in linux

Documentation

  • #2386 - jupyter lab version fix

Feature Request

  • #2377 - Need to change github actions to only build container docker image when there are related changes
  • #2172 - Adjust the default 'max_running_jobs' in SlurmPlatform
  • #2379 - Container Platform needs to support multiple processes
  • #2396 - Assets duplication

Platforms

  • #2388 - Performance issue with get_item in slurm platform when there are lot of items in job directory
  • #2389 - Performance issue with get_item in container platform when there are lot of items in job directory
  • #2247 - Investigation: run each simulation on SLURM with multi cores

Release/Packaging

  • #2400 - Add script for generating changelog by project id and release version

User Experience

  • #2387 - Investigation multiple warnings for binding in NU cluster for singularity
  • #2145 - slurm platform -- unable to run from compute nodes as expected

All commits from 2.0.1 to 2.0.2: #2411

v2.0.1

16 Oct 19:47
fe9291b
Compare
Choose a tag to compare

Hotfix for idmtools 2.0.1

  • Hotfix for Nibbler in #2381

Full Changelog: v2.0.0...v2.0.1

v2.0.0

24 Sep 20:02
ef2290c
Compare
Choose a tag to compare

Release Notes for idmtools 2.0.0

The release of idmtools 2.0.0 represents a major update, featuring several important enhancements such as a newly configurable directory structure for Suites, Experiments, and Simulations, a restructured Platform Factory, and enhanced logging capabilities.

New Directory Structure

The newly organized Suite/Experiment/Simulation directory layout helps users identify their experiments more efficiently. This structure can now be set to use either named folders or UUID-based folders.

Platform Factory Refactoring

The Platform Factory has been simplified by eliminating the confusing missing_ok parameter and ensuring uniformity of parameters among INI files, platform aliases, and user inputs. Moreover, logging enhancements contribute to a clearer and more user-friendly interface.

Highlights

Key features and changes in this release include:

  • Configurable Directory Structure: Users now have the option to select either named folders or UUIDs for Suite/Experiment/Simulation directories.
  • Simplified API: The run method has been streamlined by removing the wait_on_done parameter, leaving only wait_until_done for job execution management.
  • Platform Type Case-Insensitivity: Platform types are now insensitive to case variations.
  • Platform Creation: Platforms can be generated via an INI file, pre-defined platform Alias, or Platform Factory. Additionally, users can create individual concrete platform classes to leverage the availability of input parameters.

Change log

Platform

  • #1655 - Support 'missing_ok' argument to Platform class without generating warnings
  • #2313 - idmtools.ini 'type' parameter should not be case sensitive
  • #2327 - When submit experiment with specific platform(instead of factory platform), it requires pass platform to run function
  • #2171 - Experiment is missing add_simulation and add_simulations methods
  • #2028 - iplatform non-descriptive error message: invalid type
  • #2357 - Need to make sure assets exist when retrieving assets
  • #2366 - Add max folder/files path length check for Windows

Bugs

  • #2355 - Cache issue when deleting suite
  • #2342 - idmtools cli still contains some command for Local Platform
  • #2325 - If not use factory platform, it will throw warning

Feature requests

  • #2143 - Readable/meaningful suite/experiment/simulation output directory names
  • #2352 - Refactor SlurmPlatform item path (user readable)
  • #2037 - experiment should only need one wait_on_done method

Documentation

  • #2345 - Improve document (add more details to Container Platform)

v1.7.11

16 Aug 20:46
c153c80
Compare
Choose a tag to compare

Release notes for idmtools 1.7.11

The idmtools 1.7.11 release is a feature update that introduces a new container platform and maintains compatibility across other platforms with no breaking changes.

The ContainerPlatform is a new platform designed to streamline the execution of experiments and simulations within Docker containers. It offers a fully equipped environment with all the necessary tools and dependencies, ensuring smooth integration and execution of computational tasks.

Highlights

Highlights of this release include:

  • New features:

    • Introduced ContainerPlatform for running experiments and simulations within Docker containers.
    • Provided default Docker images based on RockyLinux 9.2 and Debian 12, with automatic pulling of these images when using ContainerPlatform.
    • Enabled support for custom Docker images, allowing users to run experiments and simulations with their own configurations.
    • Added CLI commands for managing and monitoring experiments and simulations on ContainerPlatform:
      • idmtools container jobs [<container-id>] [-l <limit>] [-n <next>]: List running jobs.
      • idmtools container status <item-id> [-c <container_id>] [-l <limit>] [--verbose/--no-verbose]: Check the status of an experiment or simulation.
      • idmtools container cancel <item-id> [-c <container_id>]: Cancel a job.
      • idmtools container history [<container-id>] [-l <limit>] [-n <next>]: View experiment history.
      • idmtools container --all --help: View all container platform CLI commands.
    • Added container and slurm pip install groups streamlined installation of related packages.
    • Implemented the ability to add extra Python packages to the container platform on the fly or via CLI commands.
    • Facilitated viewing experiment/simulation results either within the container or on the host machine.
    • Provided default and custom binding mounts to the container.
    • Included examples/tests to demonstrate running experiments with ContainerPlatform.
  • idmtools improvements:

    • Removed support for Python 3.7 in idmtools.
    • Added a new platform alias for Nibbler.
    • Resolved the scheduling issue on the COMPS platform.
    • Corrected default values for the COMPSPlatform's environment and URL fields.
  • Documentation improvements:

    • Introduced new documentation for ContainerPlatform.
    • Added new docstrings for the platform factory and platform classes.
    • Fixed the broken build issue on Windows and GitHub actions.
    • Updated existing documentation with improved structure and more detailed information.

Change log

Platform

  • #2253 - ContainerPlatform: Design Container Platform
  • #2254 - ContainerPlatform: Task list
  • #2266 - ContainerPlatform: Platform implementation (basic class)
  • #2267 - ContainerPlatform: Handle Platform alias
  • #2268 - ContainerPlatform: Handle file directory binding
  • #2269 - ContainerPlatform: Modify required to File/Process Platform
  • #2270 - ContainerPlatform: Container Utilities
  • #2271 - ContainerPlatform: Handle Windows/Linux differences
  • #2272 - ContainerPlatform: Implement CLI Status check
  • #2273 - ContainerPlatform: Run AnalyzeManager
  • #2274 - ContainerPlatform: Consider Calibra
  • #2275 - ContainerPlatform: Consider Container Cleanup
  • #2276 - ContainerPlatform: Consider Cancel experiment/simulation
  • #2277 - ContainerPlatform: Consider Pre and Post run (ep4)
  • #2278 - ContainerPlatform: Install extra packages required for ep4
  • #2279 - ContainerPlatform: Collect EMOD requirements
  • #2280 - ContainerPlatform: Build docker image
  • #2281 - ContainerPlatform: Upload image to hub (idm artifactory)
  • #2320 - ContainerPlatform: user select container to use
  • #2331 - Container Platform: Code cleanup

Bugs

  • #2318 - add_schdule_config should not hard code for num_cores and node_group
  • #2306 - idmtoolscore experiment run can wait long time until timeout in certain case
  • #2298 - idmtools package should not include the tests folder
  • #2251 - local doc build (make html) errors out and does not complete
  • #2169 - For dry run, we better not to display 'check status message
  • #2208 - SlurmPlatform: experiment's metadata.json file has suite_id is null

Feature Request

  • #2261- Consider changes to new COMPS scheduling support
  • #2328 - COMPSPlatform should set default values for endpoint and environment set to production instead of staging
  • #2326 - SlurmPlatform should have default mode to 'Local' instead of None
  • #2319 - Add new alias for COMPS new environment: Nibbler
  • #2317 - idmtools should stop support python3.7
  • #2337 - Add container, slurm options in idmtools setup for customized installation

Developer/Test

  • #2282 - ContainerPlatform: Test image
  • #2283 - ContainerPlatform: Test platform on docker container
  • #2284 - ContainerPlatform: Test utilities
  • #2285 - ContainerPlatform: Test Windows/Linux
  • #2286 - ContainerPlatform: Test CLI
  • #2287 - ContainerPlatform: Test AnalyzeManager
  • #2288 - ContainerPlatform: Test Calibration (Calibra)
  • #2289 - ContainerPlatform: Write unit tests

Documentation

  • #2314 - Update docs build with container platform and fix bunch of issues
  • #2329 - ContainerPlatform: Write README on container platform
  • #2303 - SlurmPlatform doc missing parameters information
  • #2292 -ContainerPlatform: Write Documents

v1.7.10

04 Apr 22:46
14d5fba
Compare
Choose a tag to compare

What's Changed

  • Fix pygit2 by @shchen-idmod in #2158
  • Assetization workflow for generating SIF image should track using Asset ID instead of AC ID by @shchen-idmod
    #2032
  • Remove local platform from idmtools repo by @shchen-idmod in #2160
  • Improved Simulation builders (fixed several issues) by @ZDu-IDM in #2184
  • Refactor idmtools Simulation Builders structure. by @ZDu-IDM in #2203
  • Refactor Simulation Builders to remove duplicated code by @ZDu-IDM in #2196
  • Combine two add sweeping functions into one @ZDu-IDM in #2195
  • Sweeping function allow parameters with default values @ZDu-IDM #2194
  • Builder function add_multiple_parameter_sweep_definition doesn't support function with single dictionary parameter @ZDu-IDM #2192
  • SimulationBuilder assume input values object has len defined @ZDu-IDM #2183
  • Refactor ArmSimulationBuilder and move general functionality to a base class @ZDu-IDM #2168
  • ArmSimulationBuilder needs rasie exception for call to add_sweep_definition and add_multiple_parameter_sweep_definition @ZDu-IDM #2167
  • SweepArm should support add_multiple_parameter_sweep_definition @ZDu-IDM #2166
  • ArmSimulationBuilder display simulation count incorrect @ZDu-IDM #2165
  • Give deprecating warning for duplicate wait_on_done function by @shchen-idmod in #2173
  • Fix circular dependency for core and cli tests and move comps related test in core to comps test by @shchen-idmod in #2175
  • Add download asset and use asset id in generate singularity builder instead of assetcollection by @shchen-idmod in #2210
  • Fix bug for save_as for content type and add unittest by @shchen-idmod in #2213
  • Update idmtools to work with python 3.12 by @shchen-idmod in #2215
  • unregister plugin in test_hooks.py to avoid affecting other test in p… by @shchen-idmod in #2226
  • Update idm-buildtools requirement from ~=1.0.3 to ~=1.0.5 by @dependabot in #2227
  • Update junitparser requirement from ~=3.1.1 to ~=3.1.2 by @dependabot in #2228
  • Update coverage requirement from <6.6,>=5.3 to >=5.3,<7.5 by @dependabot in #2229
  • Update flake8 requirement from ~=6.0.0 to ~=7.0.0 by @dependabot in #2230
  • Update pytest-xdist requirement from ~=3.3 to ~=3.5 by @dependabot in #2231
  • fix hook run with serial mark by @shchen-idmod in #2235
  • Update docker requirement from <6.1.0,>=4.3.1 to >=4.3.1,<7.1.0 by @dependabot in #2177
  • Update junitparser requirement from ~=2.8.0 to ~=3.1.1 by @dependabot in #2178
  • Update jinja2 requirement from ~=3.1.2 to ~=3.1.3 by @dependabot in #2176
  • Update packaging requirement from <22.0,>=20.4 to >=20.4,<24.0 by @dependabot in #2181
  • Update readthedocs-sphinx-search requirement from ~=0.3.1 to ~=0.3.2 by @dependabot in #2182
  • Update click requirement from ~=8.1.3 to ~=8.1.7 by @dependabot in #2180
  • Update pytest requirement from ~=7.2.0 to ~=8.0.0 by @dependabot in #2179
  • Revert "Update pytest requirement from ~=7.2.0 to ~=8.0.0" by @shchen-idmod in #2185
  • Update pytest-timeout requirement from ~=2.1.0 to ~=2.3.1 by @dependabot in #2204
  • Update cookiecutter requirement from ~=2.1.1 to ~=2.6.0 by @dependabot in #2199
  • Update jupyterlab requirement from ~=4.0.2 to ~=4.1.5 by @dependabot in #2212
  • update examples for platform from Belegost to CALCULON by @shchen-idmod in #2225
  • Update nbsphinx requirement from ~=0.9.2 to ~=0.9.3 by @dependabot in #2221
  • Update pygithub requirement from ~=1.57 to ~=2.3 by @dependabot in #2223
  • Update packaging requirement from ~=23.2 to ~=24.0 by @dependabot in #2222
  • Update pluggy requirement from ~=1.2 to ~=1.4 by @dependabot in #2220
  • Update yaspin requirement from <2.4.0,>=1.2.0 to >=1.2.0,<3.1.0 by @dependabot in #2189
    Full Changelog: v1.7.9...v1.7.10

v1.7.9

12 Jan 21:22
Compare
Choose a tag to compare


## What's Changed

New Contributors

Full Changelog: v1.7.8...v1.7.9

v1.7.8

12 Jul 22:21
Compare
Choose a tag to compare

What's Changed

=====
1.7.8

Additional Changes

  • #2100 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2100>_ - Setup.py does not conform to newest pip in python requires
  • #2101 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2101>_ - Deprecate 3.6 references from idmtools
  • #2102 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2102>_ - Doc fix

Bugs

  • #2083 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2083>_ - python11 issue with dataclasses

Full Changelog: v1.7.7...v1.7.8

v1.7.7

23 Jun 20:11
Compare
Choose a tag to compare

=====
1.7.7

Bugs

  • #2084 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2084>_ - Potential issue with mismatch version of pandas and matplotlib

Dependencies

  • #2013 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2013>_ - Update yaspin requirement from <2.3.0,>=1.2.0 to >=1.2.0,<2.4.0
  • #2024 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2024>_ - Update coverage requirement from <6.6,>=5.3 to >=5.3,<7.3

Documentation

  • #2000 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2000>_ - slurm commission take too much memory which can exceeds head node's max memory
  • #2042 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2042>_ - Write doc: run main script as SLURM job

Feature Request

  • #1998 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/1998>_ - Potential issue with max count of simulations in slurm platform
  • #2043 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2043>_ - Write Python utility to run main script as SLURM job
  • #2041 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2041>_ - Write workaround steps: run main script as SLURM job
  • #2095 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2095>_ - Add singularity bind experiment by default for slurm
  • #2096 <https://github.com/InstituteforDiseaseModeling/idmtools/issues/2096>_ - Add few more COMPS server aliases

v1.7.6

31 Mar 17:22
7315a72
Compare
Choose a tag to compare

What's Changed

Summary
idmtools release 1.7.6

  • new package idmtools_platform_general which contains
    . FilePlatform
    . ProcessPlatform
  • ID Generator
  • Fixed deepcopy issue

Details

  • Implement SlurmPlatform Status utility by @ZDu-IDM in #2004
  • Support alternate id generators by @emilykclaps in #1825
  • Add example for ssmt with extra packages based on Clinton's example by @shchen-idmod in #2020
  • Add unittests for idmtools_platform_file and add/update github actions by @shchen-idmod in #2023
  • File platform: implemented workflow (folders and files are generated). by @ZDu-IDM in #2019
  • Fix test in File platform by @shchen-idmod in #2026
  • File platform: implemented experiment execution (batch and status, etc.) by @ZDu-IDM in #2025
  • Add file platform cli tests by @shchen-idmod in #2039
  • File platform: implementation of CLI utility by @ZDu-IDM in #2038
  • Add unittests and examples for file and process platforms by @shchen-idmod in #2045
  • Platform-General: implementation of ProcessPlatform by @ZDu-IDM in #2044

v1.7.5

31 Mar 17:20
7315a72
Compare
Choose a tag to compare

What's Changed

  • Hotfix SlutmPlatform memory space issue by @ZDu-IDM in #2006
  • Time for Simulation Creation Increases with Python Requirements #1395