Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multistream specs #15603

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from
Draft

Multistream specs #15603

wants to merge 1 commit into from

Conversation

samsondav
Copy link
Collaborator

Requires

Supports

Copy link
Contributor

github-actions bot commented Dec 10, 2024

AER Report: CI Core

aer_workflow , commit , Detect Changes , Clean Go Tidy & Generate , Scheduled Run Frequency , Flakeguard Root Project / Get Tests To Run , lint , Core Tests (go_core_tests) , Flakeguard Deployment Project , Core Tests (go_core_tests_integration) , Core Tests (go_core_ccip_deployment_tests) , Core Tests (go_core_race_tests) , Core Tests (go_core_fuzz) , Flakeguard Root Project / Run Tests (github.com/smartcontractkit/chainlink/v2/core/services/llo, ubuntu-latest) , Flakeguard Root Project / Report , Flakey Test Detection , SonarQube Scan

1. MockTask does not implement Task:

[Golang Lint]

Source of Error:
core/services/relay/evm/mercury/mocks/pipeline.go:20:23: cannot use &MockTask{} (value of type *MockTask) as "github.com/smartcontractkit/chainlink/v2/core/services/pipeline".Task value in variable declaration: *MockTask does not implement "github.com/smartcontractkit/chainlink/v2/core/services/pipeline".Task (missing method TaskStreamID)
**Why**: The `MockTask` struct does not implement the `Task` interface from the `pipeline` package because it is missing the `TaskStreamID` method.

Suggested fix: Implement the TaskStreamID method for the MockTask struct to satisfy the Task interface.

2. No such file or directory:

[Golang Lint]

Source of Error:
cat: ./golangci-lint-report.xml: No such file or directory
**Why**: The `golangci-lint-report.xml` file does not exist, possibly because the linter did not generate it due to the previous build error.

Suggested fix: Ensure that the linter runs successfully and generates the golangci-lint-report.xml file. Fix the build errors first.

3. Undefined: Stream:

[Run tests]

Source of Error:
core/services/streams/delegate_test.go:18:53: undefined: Stream
**Why**: The `Stream` type is not defined or imported in the `delegate_test.go` file.

Suggested fix: Define the Stream type or import it from the correct package.

4. strmSrv.id undefined:

[Run tests]

Source of Error:
core/services/streams/delegate_test.go:52:42: strmSrv.id undefined (type *StreamService has no field or method id)
**Why**: The `StreamService` struct does not have an `id` field or method.

Suggested fix: Add the id field or method to the StreamService struct or correct the field/method name.

5. strmSrv.spec undefined:

[Run tests]

Source of Error:
core/services/streams/delegate_test.go:53:45: strmSrv.spec undefined (type *StreamService has no field or method spec)
**Why**: The `StreamService` struct does not have a `spec` field or method.

Suggested fix: Add the spec field or method to the StreamService struct or correct the field/method name.

6. sr.streams undefined:

[Run tests]

Source of Error:
core/services/streams/stream_registry_test.go:31:6: sr.streams undefined (type *streamRegistry has no field or method streams)
**Why**: The `streamRegistry` struct does not have a `streams` field or method.

Suggested fix: Add the streams field or method to the streamRegistry struct or correct the field/method name.

7. Too many errors:

[Run tests]

Source of Error:
core/services/streams/stream_registry_test.go:55:21: too many errors
**Why**: There are multiple errors in the `stream_registry_test.go` file, likely due to missing or incorrect fields/methods in the `streamRegistry` struct.

Suggested fix: Fix the previous errors related to undefined fields/methods in the streamRegistry struct.

AER Report: Operator UI CI ran successfully ✅

aer_workflow , commit

@samsondav samsondav force-pushed the MERC-6673 branch 3 times, most recently from f373e71 to 358a742 Compare December 10, 2024 17:27
@samsondav samsondav force-pushed the MERC-6673 branch 2 times, most recently from 00ca59b to 13192ab Compare December 10, 2024 19:45
}
}

func (s *streamRegistry) Get(streamID StreamID) (strm Stream, exists bool) {
func (s *streamRegistry) Get(streamID StreamID) (p Pipeline, exists bool) {
Copy link

Choose a reason for hiding this comment

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

What's the relation between job ids, stream ids, and pipeline ids? Seems like job and stream are analogous, and then 1 pipeline can have many streams (which is a specific type of job). Is that correct?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah this is a bit confusing. A job has exactly one pipeline_spec and those have two different IDs (we almost exclusively use the jobID to reference it though). stream_id is a completely different thing. So a job has one pipeline which may contain many stream IDs.

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