Skip to content

Remove remaining HOPP integration and references - #827

Open
johnjasa wants to merge 14 commits into
NatLabRockies:developfrom
johnjasa:fully_remove_hopp
Open

Remove remaining HOPP integration and references#827
johnjasa wants to merge 14 commits into
NatLabRockies:developfrom
johnjasa:fully_remove_hopp

Conversation

@johnjasa

@johnjasa johnjasa commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Remove remaining HOPP integration and references

This PR removes remaining HOPP integration from H2Integrate and migrates the last active HOPP-backed example path to native H2I components.

Summary of changes:

  1. Remove the hopp dependency from the project dependency stack.
  2. Remove HOPP component registration and related model-assembly logic.
  3. Remove HOPP converter modules and HOPP-specific tests.
  4. Replace example 25 sizing mode inputs to use a native electricity feedstock source.
  5. Remove all HOPP references from active docs, templates, and example narratives.
  6. Update tests/imports that relied on HOPP utility functions or constants.

Section 1: Type of Contribution

  • Feature Enhancement
    • Framework
    • New Model
    • Updated Model
    • Tools/Utilities
    • Other (please describe):
  • Bug Fix
  • Documentation Update
  • CI Changes
  • Other (please describe):

Section 2: Draft PR Checklist

  • Open draft PR
  • Describe the feature that will be added
  • Fill out TODO list steps
  • Describe requested feedback from reviewers on draft PR
  • Complete Section 8: New Model Checklist (if applicable)

TODO:

  • Remove HOPP dependency and model registration
  • Replace remaining HOPP usage in examples/tests with native H2I patterns

Type of Reviewer Feedback Requested (on Draft PR)

Structural feedback:
Confirm that removing the HOPP converter package does not conflict with any planned near-term work.

Section 3: General PR Checklist

  • PR description thoroughly describes the new feature, bug fix, etc.
  • Added tests for new functionality or bug fixes
  • Tests pass (If not, and this is expected, please elaborate in the Section 6: Test Results)
  • Documentation
    • Docstrings are up-to-date
    • Related docs/ files are up-to-date, or added when necessary
    • Documentation has been rebuilt successfully
    • Examples have been updated (if applicable)
  • CHANGELOG.md
    • At least one complete sentence has been provided to describe the changes made in this PR
    • After the above, a hyperlink has been provided to the PR using the following format:
      "A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
      XYZ should be replaced with the actual number.

Section 4: Related Issues

Fully addresses #824

Section 5: Impacted Areas of the Software

Section 5.1: New Files

N/A

Section 5.2: Modified Files

  • pyproject.toml
    • Remove hopp>=3.3.0 from dependencies.
  • h2integrate/core/supported_models.py
  • h2integrate/core/h2integrate_model.py
  • examples/25_sizing_modes/tech_config.yaml
  • examples/25_sizing_modes/plant_config.yaml
  • examples/25_sizing_modes/run_size_modes.py
  • h2integrate/converters/hydrogen/test/test_size_modes.py
  • h2integrate/core/test/test_utilities.py
  • h2integrate/tools/test/test_profast_tools.py
  • h2integrate/converters/wind/test/conftest.py
  • h2integrate/resource/utilities/test/conftest.py
  • docs/intro.md
  • docs/getting_started/expected_user_knowledge.md
    • Remove HOPP from dependency knowledge list.
  • docs/developer_guide/adding_a_new_technology.md
    • Replace HOPP wrapper references with current native component guidance.
  • docs/user_guide/model_overview.md
    • Remove HOPP model section.

Deleted files:

  • h2integrate/converters/hopp/hopp_mgmt.py
  • h2integrate/converters/hopp/hopp_wrapper.py
  • h2integrate/converters/hopp/__init__.py
  • h2integrate/converters/hopp/test/test_hopp_caching.py
  • h2integrate/converters/hopp/test/conftest.py
  • h2integrate/tools/h2integrate_sim_file_utils.py
  • examples/25_sizing_modes/tech_inputs/hopp_config_tx.yaml

Section 6: Additional Supporting Information

This PR is intentionally broad and removes remaining references in active source and documentation to keep the repository aligned with native H2I modeling patterns.

Section 7: Test Results, if applicable

Section 8 (Optional): New Model Checklist

N/A

@johnjasa johnjasa changed the title Fully remove hopp Remove remaining HOPP integration and references Aug 6, 2026

In some cases, the performance and cost models are tightly coupled, and it might make sense to combine them into a single model.
This is currently the case for the `HOPP` and `h2_storage` wrappers, where the performance and cost models are combined into a single component.
This is currently the case for the `h2_storage`, `WOMBATElectrolyzerModel`, and `ArdWindPlantModel`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I realized that this is slightly out of date since you can't call a model h2_storage anymore so maybe that should also be removed

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, removed and changed H2IntegrateModel as well

@johnjasa
johnjasa marked this pull request as ready for review August 12, 2026 16:58
@johnjasa
johnjasa marked this pull request as draft August 12, 2026 18:08
@johnjasa
johnjasa marked this pull request as ready for review August 12, 2026 18:08
@johnjasa
johnjasa marked this pull request as draft August 12, 2026 18:53
@johnjasa
johnjasa marked this pull request as ready for review August 12, 2026 18:53
```python
combined_performance_and_cost_model_technologies = ['HOPPComponent', 'h2_storage', '<your_tech_here>']
combined_performance_and_cost_model_technologies = [
'h2_storage',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plz delete h2_storage

Comment thread docs/CONTRIBUTING.md

When you push to your fork, or open a PR, your tests will be run against the
[Continuous Integration (CI)](https://github.com/NatLabRockies/HOPP/actions) suite. This will start a build
[Continuous Integration (CI)](https://github.com/NatLabRockies/H2Integrate/actions) suite. This will start a build

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol nice

@kbrunik kbrunik left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few small comments about inline comments but nothing major. Thanks for removing HOPP from H2I and solving #824 so quickly!

"""
# TODO: provide more control; currently don't use `start_time`
# see HOPP implementation
# see earlier dispatch implementation details

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you could just remove this comment


NOTE: that this method was brought over from HOPP. The link to the original method is here:
https://github.com/NatLabRockies/HOPP/blob/dde63faf6ea804828b2a7054cd6ec2c0a2f19614/hopp/simulation/technologies/dispatch/dispatch_problem_state.py
NOTE: this method originated from an earlier dispatch implementation and

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we not want to say this came from HOPP?

def format_resource_data(self, hub_height, wind_resource_data):
# NOTE: could weight resource data of bounding heights like
# `weighted_parse_resource_data` method in HOPP
# `weighted_parse_resource_data` used in earlier wind workflows

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could leave this saying HOPP

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.

2 participants