Skip to content

Add DEVELOPER_GUIDE.md for new contributors#256

Open
pradeepto wants to merge 1 commit into
redhat-data-and-ai:mainfrom
pradeepto:docs/add-developer-guide
Open

Add DEVELOPER_GUIDE.md for new contributors#256
pradeepto wants to merge 1 commit into
redhat-data-and-ai:mainfrom
pradeepto:docs/add-developer-guide

Conversation

@pradeepto

Copy link
Copy Markdown

Summary

  • Adds a developer onboarding guide covering the project end to end: architecture, CRD types, controller reconciliation flows, external service integrations (AWS, Docling, embedding API, LangChain), FileStore design, build system, testing with LocalStack, deployment, and troubleshooting.
  • Includes a table of contents, code examples, field reference tables, and an FAQ section.

Test plan

  • Review file path references for accuracy
  • Confirm code examples match current codebase patterns
  • Check controller flow descriptions against current logic

Documents project architecture, CRDs, controller flows,
external integrations, build targets, and local dev setup.
@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a detailed developer guide to centralize project knowledge and improve the onboarding experience for new contributors. It provides a comprehensive overview of the operator's architecture, API types, and operational workflows, serving as a single source of truth for development, testing, and deployment processes.

Highlights

  • Documentation: Added a comprehensive DEVELOPER_GUIDE.md to streamline onboarding for new contributors.
  • Technical Content: The guide details the project architecture, CRD types, controller reconciliation flows, and external service integrations.
  • Developer Experience: Includes build system instructions, testing guidelines with LocalStack, and an FAQ section to assist with local development and troubleshooting.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a comprehensive Developer Guide (DEVELOPER_GUIDE.md) for the Unstructured Data Controller, detailing its architecture, data models, business logic, external integrations, and development setup. The review feedback points out inconsistencies in the documented Go versions across different sections and an incorrect reference to a non-existent version of golangci-lint.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread DEVELOPER_GUIDE.md

| Attribute | Value |
|-----------|-------|
| Language | Go 1.25+ |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There are several inconsistencies regarding the required Go version throughout the developer guide:

  • Section 1 (line 37): Specifies Go 1.25+
  • Section 9 (line 691): Specifies Go 1.25.0+
  • Dev Container (line 737): Uses Go 1.24 (1-1.24-bookworm)
  • Section 10 (line 802): Mentions ubi9/go-toolset:1.26 (Go 1.26)

Please align these references to the actual minimum Go version required by the project (e.g., Go 1.24) to avoid confusion for new contributors.

Comment thread DEVELOPER_GUIDE.md
| kind | latest | Local Kubernetes cluster |
| kustomize | v5.6.0 | Manifest generation (auto-downloaded) |
| controller-gen | v0.18.0 | CRD/RBAC code generation (auto-downloaded) |
| golangci-lint | v2.10.0 | Linting (auto-downloaded) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The guide references golangci-lint v2.10.0 (line 697) and golangci-lint v2 (line 864). However, golangci-lint is currently on version v1.x (e.g., v1.64.0). There is no v2 release of golangci-lint yet.

Please correct these references to the appropriate v1.x version used by the project.

Comment thread DEVELOPER_GUIDE.md
kind: UnstructuredDataPipeline
metadata:
name: my-data-product
spec:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We might have to update this with the latest API changes

@PuneetPunamiya PuneetPunamiya left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wanted to understand the goal behind adding this readme

  • Is it for just giving the complete understanding of the project
  • Do we need to add steps for running the project as well (docling, localstack, etc)

Comment thread DEVELOPER_GUIDE.md

**Status condition type:** `VectorEmbeddingGenerationReady`

### 4.6 SQSInformer

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We do not have sqsInformer CRD now

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