Change Log

1.1.1.dev33+g56984503f (2026-08-27)

New Features

  • Add support for passing numerical log levels to strun. (#366)

Deprecations and Removals

  • Deprecate stpipe.format_template. Use f-strings instead. (#345)

  • Deprecate Step.print_configspec. Use print(Step.spec) or print(Step.load_spec_file()) instead. (#347)

  • Issue a UserWarning when call is used on a step/pipeline instance. call is a class method that creates a new step/pipeline instance and using it on an existing instance can result in silently ignoring the parameters and configuration of the original instance and incorrect results. In the future this will be an error. (#360)

  • Remove deprecated support for log config files. Use the log_* arguments to configure logging from the command line, or the logging module to configure logging from Python. (#364)

  • Remove deprecated support for Step.log. Downstream steps should use a local logger, retrieved via logging.getLogger. (#365)

1.1.0 (2026-08-13)

Misc

  • Use configobj instead of private astropy.extern.configobj. Remove astropy dependency. (#358)

1.0.1 (2026-08-10)

No significant changes.

1.0.0 (2026-06-23)

New Features

  • Record log messages before pipeline/step creation. (#317)

Bug Fixes

  • Switch internal use of format_template to f-strings. The plan is to deprecate format_template. (#320)

Misc

  • Minor restructuring of private cmdline submodule to simplify log handling and step class creation. (#317)

  • Rename a few undocumented/private submodules adding leading _ and add ValidationError to exceptions. (#318)

0.13.0 (2026-05-15)

Deprecations and Removals

  • Remove unused cmdline.step_script. (#315)

New Features

  • Support URIs in member expnames in ModelLibrary. (#305)

  • Add special handling for the CRDS logger to allow its messages to be captured by stpipe steps. (#312)

0.12.0 (2026-03-25)

Bug Fixes

  • Check for the special value “N/A” for override reference files and store it as is. Any other non-empty string is recorded as an absolute path. (#301)

Documentation

  • Consolidate docs from jwst and romancal packages into a more general description of stpipe. (#279)

New Features

  • Create the provided output_dir if it does not exist. (#292)

Deprecations and Removals

  • Remove support for profiling via STPIPE_PROFILE. Use standard python profiling if needed. (#277)

  • Remove warning when step is passed a “discouraged” type. (#278)

  • Remove deprecated configobj. (#282)

0.11.1 (2025-09-26)

Bug Fixes

  • If a step lists the py.warnings logger as configurable, capture warnings and emit them as logging messages. Remove the capturing of warnings on import of stpipe. (#271)

0.11.0 (2025-09-23)

New Features

  • Provide new command line arguments for configuring logging (log-level, log-file, log-stream). Prevent applying default configuration in the call function if the user opts out of log configuration (configure_log=False). (#250)

  • Allow downstream packages to specify known loggers, to ensure all desired logging messages are captured without adding configuration to the root logger. (#255)

Deprecations and Removals

  • Deprecate the Step.log logger. Downstream packages should transition to logging to local loggers, retrieved via logging.getLogger. (#249)

  • Deprecate logging configuration files in logcfg arguments. Users should transition to using log configuration command line arguments or directly configuring logging in their Python code. (#250)

0.10.0 (2025-07-10)

Bug Fixes

  • Fix logging for python 3.13.4 and 3.13.5 by removing delegation. (#240)

0.9.0 (2025-06-18)

Bug Fixes

  • Record the full path to custom reference files (#234)

  • Fixed non-deterministic ordering of unused keys passed into FormatTemplate that manifested when user-provided output template was incomplete. (#235)

New Features

  • Add Step._get_crds_parameters to allow subclasses to override parameter determination. (#229)

  • Force skip=False when step is run standalone (#230)

Deprecations and Removals

  • Remove the deprecated Step.__call__ method. (#239)

0.8.1 (2025-03-19)

Bug Fixes

  • Fix pre-hooks by wrapping hook results in a tuple. (#214)

  • Allow hooks to save to non-fits files. (#217)

Misc

  • test with latest supported Python version (#222)

0.8.0 (2024-12-20)

Bug Fixes

  • Fix cal_step setting when a step is skipped for roman datamodels. (#195)

  • Add hook to allow ModelLibrary subclasses to override exptype. (#201)

Documentation

  • use towncrier to handle change log entries (#187)

New Features

  • test with Python 3.13 (#193)

  • Allow class aliases (used during strun) to contain the package name (for example “jwst::resample”). (#202)

Deprecations and Removals

  • Deprecate Step.__call__. For users that do not want to use CRDS parameters please use Step.run. (#204)

0.7.0 (2024-08-13)

  • remove Windows tests and add info box indicating lack of Windows support to README [#163]

  • add ModelLibrary container class [#156]

  • add ModelLibrary docs [#168]

  • improve memory usage of ModelLibrary.map_function [#181]

  • log only strings in Step.log_records when a formatter is provided [#171]

0.6.0 (2024-01-24)

  • Remove unused Step.closeout [#152]

  • Remove unused Pipeline.set_input_filename, Step.name_format, Step.resolve_file_name, format argument to Step.save_model, name_format, component_format and separator arguments to Step._make_output_path and Step.reference_uri_to_cache_path. [#154]

0.5.2 (2024-03-21)

  • Update style and linting checking [#103]

  • Fix regex issue in internal configobj [#108]

  • Remove bundled configobj package in favor of the configobj package bundled into astropy. [#122]

  • Fix datetime.utcnow() DeprecationWarning [#134]

  • Provide asn_n_members=1 when opening the Step dataset for get_crds_parameters [#142]

  • Fix bug in handling of pathlib.Path objects as Step inputs [#143]

  • Log readable Step parameters [#140]

  • Fix handling of functions and subprocesses as Step pre- and post-hooks. Add ability to pass imported python functions and Step subclasses directly as hooks. And allow Step subclass instances with set parameters as hooks. [#133]

0.5.1 (2023-10-02)

  • Print out jwst or romancal versions from strun --version. [#98]

  • Print default parameter values for strun <step_alias> --help [#101]

  • Move strun to entrypoints [#101]

  • Deprecate preserve_comments fix spec parsing for inline comments with a closing parenthesis [#107]

0.5.0 (2023-04-19)

  • Remove use of deprecated pytest-openfiles pytest plugin. This has been replaced by catching ResourceWarning s. [#90]

  • Start using pre-commit to handle style checks. [#79]

  • Apply the isort and black code formatters and reduce the line length maximum to 88 characters. [#80]

  • Add spell checking through the codespell tool. [#81]

  • Drop support for Python 3.8 [#93]

  • Remove stdatamodels dependency, as it is no longer used. [#91]

  • Add flynt string update checking tool. [#92]

0.4.6 (2023-03-27)

  • add importlib.metadata as a dependency and update loading of entry_points to drop usage of pkg_resources [#84]

  • update minimum python to 3.8 and ASDF version to 2.8 [#87]

  • replace legacy AsdfExtension with resource_mapping [#82]

  • update minimum version of asdf to 2.13 and add minimum dependency testing to CI [#75]

0.4.5 (2022-12-23)

  • convert FromCommandLine instances to str before using as keyword arguments to Step [#78]

0.4.4 (2022-12-16)

  • include scripts in package [#76]

0.4.3 (2022-12-15)

  • Load and merge configuration files for each step they are provided when running pipeline in interactive mode using Step.call(). [#74]

  • Restored support for step list arguments by removing code that was overwriting processed and validated command line arguments with their raw values. [#73]

0.4.2 (2022-07-29)

  • Refactored Step.crds_get_config_from_reference and Pipeline.get_config_from_reference to reduce memory when the input to a pipeline is an association file, i.e. a ModelContainer. In this case the crds parameters are retrieved from the first model which is already opened. [#63]

  • Added a small edit to Step.get_config_from_reference to run datamodel methods on the first contained model in a ModelContainer, rather than the ModelContainer itself [#67]

  • Moved build configuration from setup.cfg to pyproject.toml to support PEP621 [#56]

0.4.1 (2022-07-14)

  • Add special behavior for ModelContainers during setting of skipped steps’ meta keyword [#62]

0.4.0 (2022-07-05)

  • Update astropy min version to 5.0.4. [#52]

  • Update datamodel with ‘SKIPPED’ status when step.skip set to True [#53]

  • Update CI workflows to cache test environments and depend upon style and security checks [#55, #58]

  • Correctly handle config merges of default spec, any possible step-pars files (from CRDS or the user), and either command line (for strun) or step parameter dictionary (for interactive session Pipeline.call()) parameter specifications [#57]

  • Remove log dump of any CRDS-retrieved PARS-reference files [#60]

0.3.3 (2022-04-07)

  • Ensure product header is passed for CRDS fetching instead of empty ModelContainer header [#50]

0.3.2 (2022-03-29)

  • Pass header-only model to steps for CRDS fetching to reduce memory usage [#38]

  • For classmethods, use the delegator logger. [#37]

0.3.1 (2021-11-12)

  • Fig a bug that prevented support for list arguments. [#33]

  • Add keyword ‘logcfg’ to Step.call() to set logging configuration. [#32]

  • Add Step.log_records to make log output available to subclasses. [#35]

0.3.0 (2021-10-11)

  • Change ConfigObj.update() to merge() when combining user-provided config_file and step-specific flags during a step.call() to properly merge dicts of step flags [#22]

  • Drop the stspec command-line tool, which is no longer relevant now that config files are stored in ASDF format. See strun --save-parameters or the Step.export_config method for options for generating ASDF config files. [#25]

  • Prevent ConfigObj from treating DataModel as a config section. [#26]

  • Added Step class attribute name_format to provide Steps control over output filename formatting by using an input format string rather than the default formatting. [#29]

  • Fix wiping out substep parameters settings when using Step.call [#28]

0.2.1 (2021-08-26)

  • Workaround for setuptools_scm issues with recent versions of pip. [#27]

0.2.0 (2021-04-22)

  • Remove the default value of output_ext so subclsses can define it. [#17]

  • Remove specific dependency on stdatamodels DataModel class. [#20]

0.1.0 (2021-02-08)

  • Create package and import code from jwst.stpipe. [#2, #11, #12]

  • Create new CLI infrastructure and implement ‘stpipe list’. [#14]