Skip to content

Releases: InstituteforDiseaseModeling/idmtools

v2.2.1

16 Jul 21:15
861e574
Compare
Choose a tag to compare

Hot Fix Release for idmtools: Dependency Update

📝 idmtools_platform_container
Replaced previous ##2541 wrong dependency on idmtools with more modular dependency on idmtools_platform_general.

📝 idmtools_platform_slurm
Replaced previous wrong dependency on idmtools with more modular dependency on idmtools_platform_general.

Note:
Users can still install related platform packages using extras with the following commands:
pip install idmtools[container] --index-url=https://packages.idmod.org/api/pypi/pypi-production/simple
pip install idmtools[slurm] --index-url=https://packages.idmod.org/api/pypi/pypi-production/simple
This ensures that all required dependencies for the container or slurm platforms are included automatically.

v2.2.0

15 Jul 23:09
9902b7b
Compare
Choose a tag to compare

Release notes for idmtools 2.2.0

🛠 idmtools Code Refactor

  • Refactored SlurmPlatform to inherit from FilePlatform (unified code base for many idmtools platforms)
  • Refactored flatten method — bug fixed and performance improved (used in AnalyzeManager, PlatformAnalysis, etc.)
  • Code cleanup: removed unused functions and legacy code

✨ New Features

  • Simulation filtering by tags, status and more:
    experiment.get_simulations_by_tags(...)
    suite.get_simulations_by_tags(...)
    platform.filter_simulations_by_tags(...)
  • Added new methods to get children objects:
    suite.get_experiments()
    experiment.get_simulations()
  • Added get_directory() method for Suite, Experiment, and Simulation
  • Added get_tags() method for Suite, Experiment, and Simulation
  • Added support for alias SLURM_CLUSTER for SlurmPlatform
  • Improved dev_script to work around pip "Access Denied" issues on Windows
  • Removed task_type tag from simulations to reduce tag clutter in the COMPS UI
  • Added bump version Github Actions script
  • Changed setup.py to pyproject.toml for package build
  • Updated Github Actions test scripts to allow user pick different python version to tests
  • Updated Github Actions test scripts to allow user pick specific package to test
  • Added Github Actions build scripts to allow auto trigger build new packages after version bump
  • Update devscript for code coverage and Github Actions
  • Updated Github Actions scripts to use pypython.toml to build packages

🐞 Bug Fixes

  • Fixed case-sensitivity issue in get_files() on Windows
  • Fixed incorrect log level in dev_script
  • Resolved duplicate Experiment entries in Suite metadata
  • Fixed display issue in process/thread logging output

Change log:

Bugs

  • #2478 - bootstrap.py didn't initialize logging well
  • #2207 - Fix AnalyzeManager: output message
  • #2502 - AnalyzeManager not able to retrieve assets files
  • #2503 - get_files failed with COMPS Simulation

Core

  • #2469 - Remove sequence id utility
  • #2473 - Update plugin and alias

Developer/Test

  • #2472 - Test calibration with new changes
  • #2474 - Update dev scripts
  • #2476 - Update unit tests
  • #2484 - Remove slurm utils GA related scripts
  • #2490 - Test AnalyzeManager and PlatformAnalysis

Documentation

  • #2475 - Update idmtools documents
  • #2535 - Intermittent Sphinx Build Failures Triggered by PUML Rendering

Feature Request

  • #2493 - Epic: Add tag-based filtering and other utility enhancements
  • #2494 - Reallocate JobHistory utility and we may use it in other platforms
  • #2498 - Add get_directory methods for Suite\Experiment\Simulations
  • #2499 - Add get_simulations() and get_experiments()
  • #2500 - Add simulation filtering with tags
  • #2504 - get_files is case-sensitive on files names
  • #2510 - Reduce UI tags space used by idmtools task_type tag in Simulation/Experiment

Other

  • #2477 - Refactor Slurm Platform: prepare new idmtools 2.2.0 release
  • #2491 - Work with EMOD team to test before the release

Platforms

  • #2424 - Epic: Refactor SLURMPlatform to reduce the duplicate coding
  • #2465 - Update tests and GHA for SLURM platform change
  • #2466 - Make SlurmPlatform inherit from FilePlatform
  • #2467 - Refactor FilePlatform
  • #2468 - Remove bridged and remote utility
  • #2483 - Remove mode related functions
  • #2488 - Consolidate FileExperiment, SlurmExperiment, etc.
  • #2489 - Refactor flatten_item method

Support

  • #2482 - bootstrap.py may encounter "Access is denied." issue

Full Changelog: v2.1.0...v2.2.0

v2.1.0

07 Apr 19:09
e0e045e
Compare
Choose a tag to compare

Release notes for idmtools 2.1.0

The release of idmtools 2.1.0 introduces some key enhancements for workflow efficiency and platform support, including:

Platforms:

  • Added SlurmPlatform support for fully running scripts as SLURM jobs on compute nodes. (i.e.: run_on_slurm=True on Platform)
  • Fixed ContainerPlatform compatibility issues on MacBook.

Features:

  • ArmSimulationBuilder now allows reusing SweepArm.
  • AssetCollection introduces get_files_by_id for file retrieval.
  • Added a custom devcontainer for GitHub CodeSpaces.

Bug Fixes:

  • Resolved CommandLine quote handling for options with spaces.
  • Provide appropriate "Developer mode" message while running container platform in Windows
  • Fixed pip install issues related to package indexes.

Documentation:

  • Added a README for MacBook support.
  • Fixed build issues with idm-buildtools.

Change log:

Bugs

  • #2420 - Fix Macbook issues to support ContainerPlatform
  • #2413 - CommandLine.add_option adds extra double quotes around strings with spaces, making file paths inaccessible
  • #2422 - Not providing the appropriate message while running container platform on Windows when Developer Mode is off
  • #2432 - idmtools_platform_comps/ssmt_work_items/work_order.py field error cause doc build fail

Documentation

  • #2431 - Fix document build issue with idm-buildtools

Feature Request

  • #2426 - Arm simulation builder does not throw an appropriate error message if configured wrong
  • #2445 - Fix pip install issue which depends on index-url or extra-index-url
  • #2450 - Create devcontainer for CodeSpaces

Platforms

  • #2421 - Run script as a SLURM job
  • #1574 - Can not download AssetCollection files with platform.get_files_by_id

User Experience

  • #2415 - Write doc to summarize ContainerPlatform support in Macbook

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. (Set developer mode for Windows: https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development)

  • 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 Job Directory Options with Suite/Experiment Prefix Names

The newly introduced Suite/Experiment/Simulation directory structure enhances experiment tracking by incorporating descriptive prefixes. The default layout is now:
{prefix_suite_name}_{suite_id}/{prefix_experiment_name}_{experiment_id}/{simulation_id}
Users can revert to a simplified ID-only structure ({suite_id}/{experiment_id}/{simulation_id}) by setting name_directory = False in idmtools.ini.

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