Skip to content

Conversation

@david-zlai
Copy link
Contributor

@david-zlai david-zlai commented Mar 26, 2025

Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing #549 which applies the confs to the submitter interface.

Previously, to compile it would be:

zipline compile --conf=group_bys/aws/purchases.py

but now --conf or --input-path is not required, just:

zipline compile

and this compiles the entire repo.

In addition, the compiled files gets persisted in the compiled folder. No longer are compiled files persisted by environment like production/...

Checklist

  • Added Unit Tests
  • Covered by existing CI
  • Integration tested
  • Documentation update

GCP and AWS integration tests pass

<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.plaid_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Introduced an enhanced CLI compile command with an option to specify a custom configuration root.
    • Enabled dynamic loading of team configurations from both JSON and Python formats.
    • Added support for multiple error reporting in various components.
  • Improvements

    • Streamlined error and status messages for clearer, simplified feedback.
    • Enhanced error handling mechanisms across the application.
    • Updated quickstart scripts for AWS and GCP to utilize a unified, precompiled configuration set.
    • Modified the way environment variables are structured for improved clarity and management.
  • Dependency Updates

    • Added new dependencies to improve functionality.
    • Upgraded several existing dependencies to boost performance and enhance output formatting.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 26, 2025

Walkthrough

This pull request introduces extensive modifications across the codebase. Major updates include refactoring error handling to use lists of exceptions instead of strings, updating import sources, consolidating team configuration parameters, and introducing a new CLI compile command (compile_v3) with an option for specifying the chronon root. Additional adjustments in testing, dependency management, and external configuration formats are also implemented.

Changes

Files Change Summary
api/python/ai/chronon/cli/compile/compile_context.py
.../compiler.py
.../parse_configs.py
.../parse_teams.py
.../logger.py
.../compile/display/*
.../compile/conf_validator.py
.../entrypoint.py
Updated error handling (renamed error to errors, use of List[BaseException]), revised logging calls, adjusted Model import, and added live update support via use_live.
api/python/ai/chronon/repo/compile.py
.../compilev3.py
.../explore.py
.../team_json_utils.py
.../utils.py
.../repo/run.py
.../repo/validator.py
.../constants.py
Introduced new CLI command (compile_v3 with --chronon_root), unified team config sources, switched to set_runtime_env_v3, and added the RunMode enum for structured mode configurations.
api/python/test/*
tox.ini
Added skip markers to several tests, created a new test for compile_v3, updated team parameter names, and revised config file paths in test scripts.
api/python/requirements/base.in
.../base.txt
Added new dependencies (e.g., rich, attrs, glom, etc.) and updated file hash accordingly.
scripts/distribution/run_aws_quickstart.sh
.../run_gcp_quickstart.sh
.gitignore
Adjusted script commands by removing --conf and updating config file paths; expanded ignored directories in Git.
api/thrift/common.thrift
api/src/main/scala/ai/chronon/api/Extensions.scala
Revised Thrift structs to use unified maps for mode configurations and modified Scala logic to retrieve serving configurations from modeConfigs.
api/python/test/canary/teams.py
api/python/test/teams.py
Added new team definitions with consolidated environment settings and renamed namespace to outputNamespace.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant Compiler
    participant Context
    participant Display
    User->>CLI: Execute "compile_v3" with --chronon_root
    CLI->>CLI: Expand chronon_root & check for teams file
    CLI->>Context: Instantiate CompileContext (use_live flag)
    Context->>Compiler: Pass context for compilation
    Compiler->>Compiler: Process configurations and write objects
    alt Errors found
      Compiler->>Display: Print errors via live console
    else No errors
      Compiler->>Display: Update display with compilation result
    end
    Display-->>User: Show results
Loading

Possibly related PRs

Suggested reviewers

  • kumar-zlai
  • tchow-zlai

Poem

In our code, errors now dance in a line,
Each glitch is caught as exceptions combine.
With new CLI commands marching ahead,
Teams align, live updates are spread.
Cheers to refactored logs—code sings sublime!
🎉 Happy compiling!

Warning

Review ran into problems

🔥 Problems

GitHub Actions and Pipeline Checks: Resource not accessible by integration - https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository.

Please grant the required permissions to the CodeRabbit GitHub App under the organization or repository settings.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 55f8f3a and 0770673.

📒 Files selected for processing (1)
  • api/python/ai/chronon/repo/constants.py (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • api/python/ai/chronon/repo/constants.py
⏰ Context from checks skipped due to timeout of 90000ms (16)
  • GitHub Check: non_spark_tests
  • GitHub Check: non_spark_tests
  • GitHub Check: streaming_tests
  • GitHub Check: streaming_tests
  • GitHub Check: spark_tests
  • GitHub Check: join_tests
  • GitHub Check: join_tests
  • GitHub Check: groupby_tests
  • GitHub Check: groupby_tests
  • GitHub Check: analyzer_tests
  • GitHub Check: fetcher_tests
  • GitHub Check: spark_tests
  • GitHub Check: analyzer_tests
  • GitHub Check: scala_compile_fmt_fix
  • GitHub Check: fetcher_tests
  • GitHub Check: enforce_triggered_workflows

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
api/python/test/canary/teams.py (2)

7-7: Update placeholder customer email

Replace <customer> with actual email domain.


100-108: Consider expanding AWS configuration

Minimal AWS setup lacks the detailed configurations seen in GCP team. Consider adding AWS-specific settings if needed.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 3616f4d and 2eef75a.

📒 Files selected for processing (5)
  • api/python/ai/chronon/cli/compile/compiler.py (5 hunks)
  • api/python/ai/chronon/cli/compile/parse_teams.py (5 hunks)
  • api/python/test/canary/teams.py (1 hunks)
  • api/src/main/scala/ai/chronon/api/Extensions.scala (1 hunks)
  • api/thrift/common.thrift (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • api/src/main/scala/ai/chronon/api/Extensions.scala
  • api/python/ai/chronon/cli/compile/compiler.py
🧰 Additional context used
🧬 Code Definitions (1)
api/python/ai/chronon/cli/compile/parse_teams.py (1)
api/python/ai/chronon/cli/logger.py (1)
  • get_logger (32-43)
⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: non_spark_tests
  • GitHub Check: non_spark_tests
  • GitHub Check: scala_compile_fmt_fix
  • GitHub Check: enforce_triggered_workflows
🔇 Additional comments (11)
api/python/ai/chronon/cli/compile/parse_teams.py (6)

2-4: Import updates and constant renaming look good.

The new imports support dynamic module loading, and renaming _DEFAULT_CONF_TEAM from "common" to "default" aligns with teams.py approach.

Also applies to: 6-6, 14-14, 18-18


21-37: New module import function is well implemented.

Clean implementation of dynamic Python module loading that follows standard importlib patterns.


44-56: Assert statements and logging improve error handling.

Using assertions instead of require() prevents sys.exit() calls, making errors catchable. Added logging helps with debugging.


67-86: Assert statements in update_metadata improve error clarity.

Error messages are now more descriptive when handling missing or invalid team configs.


106-106: Type signature update is more accurate.

Changed from List[Dict[str, str]] to Optional[Dict[str, str]] to better match actual usage.


124-163: Mode map merging logic is more robust.

Added null checks for modesMap prevents errors, and common map handling is improved.

api/python/test/canary/teams.py (3)

13-16: Remove placeholder TODOs

Address all placeholder TODOs before merging.


31-48: Good test configuration setup

Clear separation of common settings and mode-specific configurations using the new modesMap structure.


51-98: Well-structured GCP configuration

Comprehensive setup with appropriate Spark settings for GCP environment.

api/thrift/common.thrift (2)

40-41: Improved environment variables structure

Simplifying from multiple optional maps to a required common map and nested modesMap improves organization.


56-57: Consistent configuration properties structure

Matches the EnvironmentVariables pattern for better consistency across the codebase.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
api/python/test/canary/teams.py (1)

64-64: Clarify "dummy test config" comments

Remove or replace these comments if this configuration is intended for actual use.

Also applies to: 93-93

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 20a7806 and 2c3806f.

📒 Files selected for processing (2)
  • api/python/ai/chronon/cli/compile/parse_teams.py (5 hunks)
  • api/python/test/canary/teams.py (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: non_spark_tests
  • GitHub Check: non_spark_tests
  • GitHub Check: scala_compile_fmt_fix
  • GitHub Check: enforce_triggered_workflows
🔇 Additional comments (14)
api/python/ai/chronon/cli/compile/parse_teams.py (10)

2-6: Import modifications for dynamic loading.

Added necessary imports for dynamic module loading functionality.


18-18: Team name convention update.

Changed default configuration team name from "common" to "default".


21-38: New dynamic module loading function.

Clean implementation for importing Python modules from file paths.


44-46: Improved error handling with assertions.

Replaced require with assert for better exception handling.


48-53: Updated team module loading approach.

Now using dynamic module loading to import teams configuration.


56-56: Added logging for team processing.

Provides clarity on which teams file is being processed.


67-87: Consistent error handling for metadata validation.

Replaced all require calls with assert for consistent error handling.


106-106: Improved type annotation.

Changed parameter type from List[Dict[str, str]] to more accurate Optional[Dict[str, str]].


124-124: Refined type annotation.

More precise Union type for mode maps parameters.


131-163: Enhanced configuration merging logic.

Improved handling of common configurations and mode-specific maps.

api/python/test/canary/teams.py (4)

7-7: Remove placeholder TODOs

Replace these placeholders with actual values before merging.

Also applies to: 13-15


1-4: LGTM!

Imports are well-structured.


28-48: Good test team configuration

Appropriately uses modesMap for different run modes.


99-107: Verify AWS configuration completeness

AWS configuration is minimal compared to GCP. Confirm it's sufficient.

4: optional map<string, string> streaming
5: optional map<string, string> serving
1: map<string, string> common
2: map<string, map<string, string>> modesMap
Copy link
Contributor

Choose a reason for hiding this comment

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

lets call it modeEnvironments

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we were getting lucky that Environment and Config both had the same thrift schema here haha:

https://github.com/zipline-ai/chronon/blob/main/api/python/ai/chronon/cli/compile/parse_teams.py#L123-L128

renaming them to be modeEnvironments and modeConfigs breaks that. lemme refactor

4: optional map<string, string> streaming
5: optional map<string, string> serving
1: map<string, string> common
2: map<string, map<string, string>> modesMap
Copy link
Contributor

Choose a reason for hiding this comment

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

lets call it modeConfigs

"source-job": "source-job",
"join-part-job": "join-part-job",
"merge-job": "merge-job",
RunMode.BACKFILL: "join",
Copy link
Contributor

Choose a reason for hiding this comment

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

neat!!

Copy link
Contributor

@nikhil-zlai nikhil-zlai left a comment

Choose a reason for hiding this comment

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

Solid PR David!

One comment, but looks great

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
api/python/test/canary/teams.py (1)

64-64: Replace dummy test configs

Update "dummy test config" comments with actual configuration descriptions or remove them.

Also applies to: 93-93

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 2c3806f and 352ab9f.

📒 Files selected for processing (5)
  • api/python/ai/chronon/cli/compile/parse_teams.py (5 hunks)
  • api/python/ai/chronon/repo/utils.py (4 hunks)
  • api/python/test/canary/teams.py (1 hunks)
  • api/python/test/sample/teams.py (2 hunks)
  • api/thrift/common.thrift (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • api/python/test/sample/teams.py
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: non_spark_tests
  • GitHub Check: non_spark_tests
  • GitHub Check: scala_compile_fmt_fix
🔇 Additional comments (23)
api/thrift/common.thrift (2)

40-41: Good change - more flexible architecture.

Replacing separate mode-specific fields with nested map structure provides greater extensibility.


56-57: Good schema alignment.

Schema now matches between environment variables and config properties structures.

api/python/test/canary/teams.py (3)

7-7: Update team email address

Replace placeholder with actual infra team email.


13-15: Remove placeholder TODOs

Replace TODOs with actual values for HADOOP_DIR, CHRONON_ONLINE_CLASS, and CHRONON_ONLINE_ARGS.


1-107: Well-structured configuration approach

Good job organizing team configurations in a Python file. This approach provides better type safety and easier maintenance than JSON.

api/python/ai/chronon/repo/utils.py (6)

167-168: Function looks good!

Simple utility function to get the teams.py file path.


170-227: New runtime environment setup function handles configuration elegantly.

The new function properly processes configuration files and sets environment variables. It's well-structured with good error handling.


228-228: Remember to remove this TODO comment.

The TODO indicates this code will be removed after complete migration to teams.py.

Is there a timeline for this cleanup?


262-269: Good validation to prevent ambiguity.

Checking for both files and raising a clear error message helps ensure clean migration.


271-274: Clean refactoring.

Extraction of teams.json handling logic into separate function improves maintainability.


320-320: Plan for removing legacy code.

As commented on line 228, this function is also marked for deletion after migration.

api/python/ai/chronon/cli/compile/parse_teams.py (12)

19-19: Good renaming of default team constant.

Consistent with PR objectives to use teams.py instead of teams.json.


22-39: Well-implemented module importing functionality.

This function correctly handles dynamic module loading from file paths using importlib.


45-54: Assert statements improve error handling.

Changed from require() to assert with clear error messages.


57-57: Helpful logging.

Adds transparency about which teams file is being processed.


77-87: Improved validation with clear error messages.

Assertions ensure proper team configuration with helpful error guidance.


98-99: Good use of enum for attribute specification.

Makes the code more type-safe and self-documenting.


105-106: Consistent parameter usage between env and config.

Same pattern as line 98-99.


109-109: Improved type hints for merged maps.

Optional typing makes function more flexible and safer.


127-130: Well-defined enum for attribute types.

Adds clarity to the API and prevents string typos.


133-134: Updated function signature with enum parameter.

Adds type safety while maintaining compatibility with existing code.


152-159: Flexible attribute access using getattr.

Allows code reuse between environment and config processing.


167-175: Consistent attribute handling.

Using getattr with the enum parameter maintains consistent code pattern.

@david-zlai david-zlai merged commit b566b10 into main Apr 4, 2025
20 checks passed
@david-zlai david-zlai deleted the davidhan/compile_switch_fork branch April 4, 2025 02:13
kumar-zlai pushed a commit that referenced this pull request Apr 25, 2025
## Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing
#549 which applies the confs
to the submitter interface.

Previously, to compile it would be:
```
zipline compile --conf=group_bys/aws/purchases.py
```

but now `--conf` or `--input-path` is not required, just:
```
zipline compile
```
and this compiles the entire repo.

In addition, the compiled files gets persisted in the `compiled` folder.
No longer are compiled files persisted by environment like
`production/...`

## Checklist
- [ ] Added Unit Tests
- [x] Covered by existing CI
- [x] Integration tested
- [ ] Documentation update

GCP and AWS integration tests pass

```
<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.plaid_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced CLI compile command with an option to specify a
custom configuration root.
- Enabled dynamic loading of team configurations from both JSON and
Python formats.
  - Added support for multiple error reporting in various components.

- **Improvements**
- Streamlined error and status messages for clearer, simplified
feedback.
  - Enhanced error handling mechanisms across the application.
- Updated quickstart scripts for AWS and GCP to utilize a unified,
precompiled configuration set.
- Modified the way environment variables are structured for improved
clarity and management.

- **Dependency Updates**
  - Added new dependencies to improve functionality.
- Upgraded several existing dependencies to boost performance and
enhance output formatting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nikhil Simha <[email protected]>
kumar-zlai pushed a commit that referenced this pull request Apr 29, 2025
## Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing
#549 which applies the confs
to the submitter interface.

Previously, to compile it would be:
```
zipline compile --conf=group_bys/aws/purchases.py
```

but now `--conf` or `--input-path` is not required, just:
```
zipline compile
```
and this compiles the entire repo.

In addition, the compiled files gets persisted in the `compiled` folder.
No longer are compiled files persisted by environment like
`production/...`

## Checklist
- [ ] Added Unit Tests
- [x] Covered by existing CI
- [x] Integration tested
- [ ] Documentation update

GCP and AWS integration tests pass

```
<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.plaid_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced CLI compile command with an option to specify a
custom configuration root.
- Enabled dynamic loading of team configurations from both JSON and
Python formats.
  - Added support for multiple error reporting in various components.

- **Improvements**
- Streamlined error and status messages for clearer, simplified
feedback.
  - Enhanced error handling mechanisms across the application.
- Updated quickstart scripts for AWS and GCP to utilize a unified,
precompiled configuration set.
- Modified the way environment variables are structured for improved
clarity and management.

- **Dependency Updates**
  - Added new dependencies to improve functionality.
- Upgraded several existing dependencies to boost performance and
enhance output formatting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nikhil Simha <[email protected]>
chewy-zlai pushed a commit that referenced this pull request May 15, 2025
## Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing
#549 which applies the confs
to the submitter interface.

Previously, to compile it would be:
```
zipline compile --conf=group_bys/aws/purchases.py
```

but now `--conf` or `--input-path` is not required, just:
```
zipline compile
```
and this compiles the entire repo.

In addition, the compiled files gets persisted in the `compiled` folder.
No longer are compiled files persisted by environment like
`production/...`

## Checklist
- [ ] Added Unit Tests
- [x] Covered by existing CI
- [x] Integration tested
- [ ] Documentation update

GCP and AWS integration tests pass

```
<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.our clients_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced CLI compile command with an option to specify a
custom configuration root.
- Enabled dynamic loading of team configurations from both JSON and
Python formats.
  - Added support for multiple error reporting in various components.

- **Improvements**
- Streamlined error and status messages for clearer, simplified
feedback.
  - Enhanced error handling mechanisms across the application.
- Updated quickstart scripts for AWS and GCP to utilize a unified,
precompiled configuration set.
- Modified the way environment variables are structured for improved
clarity and management.

- **Dependency Updates**
  - Added new dependencies to improve functionality.
- Upgraded several existing dependencies to boost performance and
enhance output formatting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nikhil Simha <[email protected]>
chewy-zlai pushed a commit that referenced this pull request May 15, 2025
## Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing
#549 which applies the confs
to the submitter interface.

Previously, to compile it would be:
```
zipline compile --conf=group_bys/aws/purchases.py
```

but now `--conf` or `--input-path` is not required, just:
```
zipline compile
```
and this compiles the entire repo.

In addition, the compiled files gets persisted in the `compiled` folder.
No longer are compiled files persisted by environment like
`production/...`

## Checklist
- [ ] Added Unit Tests
- [x] Covered by existing CI
- [x] Integration tested
- [ ] Documentation update

GCP and AWS integration tests pass

```
<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.our clients_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced CLI compile command with an option to specify a
custom configuration root.
- Enabled dynamic loading of team configurations from both JSON and
Python formats.
  - Added support for multiple error reporting in various components.

- **Improvements**
- Streamlined error and status messages for clearer, simplified
feedback.
  - Enhanced error handling mechanisms across the application.
- Updated quickstart scripts for AWS and GCP to utilize a unified,
precompiled configuration set.
- Modified the way environment variables are structured for improved
clarity and management.

- **Dependency Updates**
  - Added new dependencies to improve functionality.
- Upgraded several existing dependencies to boost performance and
enhance output formatting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nikhil Simha <[email protected]>
chewy-zlai pushed a commit that referenced this pull request May 16, 2025
## Summary

^^^

Ran both AWS and GCP integration tests.

Following this PR, i'll work on rebasing
#549 which applies the confs
to the submitter interface.

Previously, to compile it would be:
```
zipline compile --conf=group_bys/aws/purchases.py
```

but now `--conf` or `--input-path` is not required, just:
```
zipline compile
```
and this compiles the entire repo.

In addition, the compiled files gets persisted in the `compiled` folder.
No longer are compiled files persisted by environment like
`production/...`

## Cheour clientslist
- [ ] Added Unit Tests
- [x] Covered by existing CI
- [x] Integration tested
- [ ] Documentation update

GCP and AWS integration tests pass

```
<<<<<.....................................COMPILE.....................................>>>>>
+ zipline compile --chronon_root=/Users/davidhan/zipline/chronon/api/python/test/canary
17:49:15 INFO parse_teams.py:56 - Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py
INFO:ai.chronon.cli.logger:Processing teams from path /Users/davidhan/zipline/chronon/api/python/test/canary/teams.py

GroupBy-s:
  Compiled 5 objects from 3 files.
  Added aws.our clients_fv.v1
  Added aws.purchases.v1_dev
  Added aws.purchases.v1_test
  Added gcp.purchases.v1_dev
  Added gcp.purchases.v1_test

....
 <<<<<<<<<<<<<<<<-----------------JOB STATUS----------------->>>>>>>>>>>>>>>>>
+ aws emr wait step-complete --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ
++ aws emr describe-step --cluster-id j-13BASWFP15TLR --step-id s-02878283D08B3510ZGCZ --query Step.Status.State
++ tr -d '"'
+ STEP_STATE=COMPLETED
+ '[' COMPLETED '!=' COMPLETED ']'
+ echo succeeded
succeeded
+ echo -e '\033[0;32m<<<<<.....................................SUCCEEDED!!!.....................................>>>>>\033[0m'
<<<<<.....................................SUCCEEDED!!!.....................................>>>>>


```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced CLI compile command with an option to specify a
custom configuration root.
- Enabled dynamic loading of team configurations from both JSON and
Python formats.
  - Added support for multiple error reporting in various components.

- **Improvements**
- Streamlined error and status messages for clearer, simplified
feedbaour clients.
  - Enhanced error handling mechanisms across the application.
- Updated quiour clientsstart scripts for AWS and GCP to utilize a unified,
precompiled configuration set.
- Modified the way environment variables are structured for improved
clarity and management.

- **Dependency Updates**
  - Added new dependencies to improve functionality.
- Upgraded several existing dependencies to boost performance and
enhance output formatting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nikhil Simha <[email protected]>
@coderabbitai coderabbitai bot mentioned this pull request Aug 7, 2025
4 tasks
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.

3 participants