Skip to content

Conversation

@kmontemayor2-sc
Copy link
Collaborator

@kmontemayor2-sc kmontemayor2-sc commented Jan 22, 2026

Scope of work done

Adding validation checks for custom storage main.

Essentially make sure that if either the resource or task configs are setup for graph store, that both are.

Need to submit this last as otherwise the e2e tests break :P.

  1. [Custom Storage 1/3] Add defs for custom storage main #459
  2. [Custom Storage 2/3] Implement custom storage main #462
  3. [Custom Storage 3/3] Add validation for custom storage main #463

Where is the documentation for this feature?: N/A

Did you add automated tests or write a test plan?

Updated Changelog.md? NO

Ready for code review?: NO

@kmontemayor2-sc
Copy link
Collaborator Author

/integration_test

@kmontemayor2-sc
Copy link
Collaborator Author

/unit_test_py

@github-actions
Copy link
Contributor

github-actions bot commented Jan 22, 2026

GiGL Automation

@ 21:28:30UTC : 🔄 Integration Test started.

@ 22:58:19UTC : ✅ Workflow completed successfully.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 22, 2026

GiGL Automation

@ 21:28:32UTC : 🔄 Python Unit Test started.

@ 22:32:34UTC : ✅ Workflow completed successfully.

Copy link
Collaborator

@mkolodner-sc mkolodner-sc left a comment

Choose a reason for hiding this comment

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

Thanks Kyle! Left a few small comments

Comment on lines 110 to 125
def _create_gbml_config_with_both_graph_stores(
storage_command: str = "python -m gigl.distributed.graph_store.storage_main",
) -> GbmlConfigPbWrapper:
"""Create a GbmlConfig with graph_store_storage_config for both trainer and inferencer."""
gbml_config = gbml_config_pb2.GbmlConfig()
gbml_config.trainer_config.graph_store_storage_config.command = storage_command
gbml_config.inferencer_config.graph_store_storage_config.command = storage_command
return GbmlConfigPbWrapper(gbml_config_pb=gbml_config)


def _create_gbml_config_without_graph_stores() -> GbmlConfigPbWrapper:
"""Create a GbmlConfig without graph_store_storage_config for both trainer and inferencer."""
gbml_config = gbml_config_pb2.GbmlConfig()
gbml_config.trainer_config.trainer_args["some_arg"] = "some_value"
gbml_config.inferencer_config.inferencer_args["some_arg"] = "some_value"
return GbmlConfigPbWrapper(gbml_config_pb=gbml_config)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Would these two functions _create_gbml_config_with_both_graph_stores and _create_gbml_config_without_graph_stores be sufficient for our testing, meaning we wouldn't need the four functions above?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Sure, cleaned up.

)


class TestMixedGraphStoreConfigurations(unittest.TestCase):
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we need a test for this? There is no logic in gbml_and_resource_config_check IIUC which couples the trainer and inference checks together, so the above test cases should be sufficient

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good point, removed.

# Helper functions for creating GbmlConfig configurations


def _create_gbml_config_with_trainer_graph_store(
Copy link
Collaborator

Choose a reason for hiding this comment

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

ditto here, if we can simplify our tests by just creating one gbml config with both trainer and inferencer graph store and one gbml config without trainer/inferencer graph store that'd be my preference

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hmm, done.

FWIW I think that creating big blobs with many values set for tests may not be the "cleanest" as it leads to inter-reliance in the future. But in this case we should be fine.

@kmontemayor2-sc
Copy link
Collaborator Author

/unit_test_py

@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2026

GiGL Automation

@ 18:31:56UTC : 🔄 Python Unit Test started.

@ 19:47:08UTC : ✅ Workflow completed successfully.

Copy link
Collaborator

@mkolodner-sc mkolodner-sc left a comment

Choose a reason for hiding this comment

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

This LGTM, thanks Kyle!

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.

4 participants