Skip to content

Conversation

@gmfrasca
Copy link
Member

@gmfrasca gmfrasca commented Nov 6, 2025

No description provided.

Copy link
Contributor

@hbelmiro hbelmiro left a comment

Choose a reason for hiding this comment

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

I left some comments.
Besides that, I think it will be easier for both contributors and maintainers if we keep the content of TESTING.md and ONBOARDING.md all in CONTRIBUTING.md.
We already have some duplicates between them.

@gmfrasca gmfrasca changed the title WIP: Create initial documentation Create initial documentation Nov 10, 2025
@alyssacgoins
Copy link

/lgtm

Copy link
Contributor

@hbelmiro hbelmiro left a comment

Choose a reason for hiding this comment

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

/lgtm

@gmfrasca
Copy link
Member Author

/retest

(I believe there was formerly a fixup commit that got eventually did get autosquashed in, but now the tide check is stuck on failed status because it thinks this is a squash-and-merge PR)

@gmfrasca
Copy link
Member Author

/retest

@HumairAK HumairAK closed this Nov 12, 2025
@HumairAK HumairAK reopened this Nov 12, 2025

### Core Tier

**Officially supported components** maintained by the Kubeflow community.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The word "community" is becoming a big ambiguous, because you say Core Tier is supposted by Kubeflow Community, whereas Third Party components are Community-contributed components with lighter requirements. I think people will start getting confused.

I propose we use the following explicit terminology:

Core Tier: Kubeflow Core Maintainers. (define what this means)
Third Party Tier: Kubeflow Third Party Maintainers (define what this means)

You should also mention that the Root governance of the Repository - for example the APPROVERS in the owners file at the root repository lies with primarily KFP maintainers. This is not the same as Core maitnainers. We can address whether we want to expand this governance later.

Think about a new team wanting to use the repo and control /own their component, how can we give them a quick run down?


### Quick Reference

```bash
Copy link
Collaborator

Choose a reason for hiding this comment

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

Refer back to the KEP. These are not aligned with the linting tools/requirements in the KEP.


*Key roles and responsibilities for governing and maintaining the repository.*

### KFP Component Core Maintainers
Copy link
Collaborator

Choose a reason for hiding this comment

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

So we have:

  • KFP Component Core Maintainers
  • KFP Component Third-Party Maintainers
  • Component Owners

This is very confusing. I think just do this:

  • Repo maintainers (alternatively you can say Project Maintainers)
    • Required approver in the root OWNERS file
    • Responsible for orchestrating releases
    • Setting roadmaps and accepting KEPs
    • Responsible for managing the overall project, issues, and other repository maintenance duties.
  • Core Component maintainers
    • Require approver for at least one core component OWNERS file
    • (the rest of what you have written for Component Owners section
  • Third Party Component maintainers
    • (same as core component maintainers but for third party components)

you can reword/update the text as needed, but just note that repo maintainers don't have to be responsible for components (these are the individuals that have admin access on the repo)

### KFP Component Core Maintainers

Core Maintainers are responsible for the stewardship of Core-tier components. Their key responsibilities include:
- Defined by having an entry in the `approvers` section of the `OWNERS` file in either the repo root, `components/OWNERS`, and/or `pipelines/OWNERS` file(s)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Note third core/third-party maintainers don't have a requirement for having approvers in OWNERS, that's just for repo maintainers.

It also doesn't mean Repo Maintainers are automatically component owners, one person can be both (if they are approvers in multiple owner files), but they are not always both - we don't have to explicitly mention this.

Copy link
Member Author

Choose a reason for hiding this comment

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

correct me if i'm wrong, but does OWNERship not cascade down? so if you are listed as an approver in the OWNERS of repo root (ie a Repo Maintainer), you also have approver permissions for all the directories in that repo, including components and pipelines?

Copy link
Collaborator

Choose a reason for hiding this comment

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

It does but that just means repo owners should be careful not to act like component owners, even if they have the permissions to do so. As an analogy consider Kubeflow Org admins, they have admin rights to all KF repos, but they are not automatically considered maintainers of KF components. It's similar.

1. **Nomination**: Any contributor can nominate via GitHub issue
3. **Requirements**: Validate component meets all core tier requirements
4. **Decision**: Community and core-component Maintainer consensus approval
5. **Timeline**: 4-6 weeks review process
Copy link
Collaborator

Choose a reason for hiding this comment

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

this timeline looks arbitrary, where did we get it from? can we remove it?

Copy link
Member Author

Choose a reason for hiding this comment

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

Doesn't appear that any promotion/demotion mechanic was specified by the KEP, so perhaps lets just totally remove these sections?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm fine with removing it to keep the doc minimal

Comment on lines 174 to 175
- **Policy**: KFP Component Core Maintainers
- **Strategic**: KFP Component Core Maintainers
Copy link
Collaborator

Choose a reason for hiding this comment

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

Update to repo maintainers once you make the above amendments


### Process
1. **Proposal**: Create GitHub issue/RFC
2. **Discussion**: Community feedback (1-2 weeks)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
2. **Discussion**: Community feedback (1-2 weeks)
2. **Discussion**: Community feedback

## Naming Conventions

- **Components and pipelines** use `snake_case` (e.g., `data_preprocessing`, `model_trainer`)
- **Git branches** use `component/name` for features or `fix/issue-123` for bug fixes
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this for user branches during PRs? we don't need to enforce a rule here

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah lets remove it


Your `metadata.yaml` must include these fields:

```yaml
Copy link
Collaborator

Choose a reason for hiding this comment

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

@alyssacgoins can you verify this adheres to the validation script requirements

Choose a reason for hiding this comment

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

@HumairAK @gmfrasca a couple things to be updated:
- name should come first, before tier
- ci.skip_dependency_probe is optional
- ci.compile_check should be removed
- ci.pytest should be removed
- packages_to_install should be removed
- links is optional, and the headings can be custom

Here's the updated metadata.yaml file:

    name: my_component
    tier: core  # or 'third_party'
    stability: stable  # 'alpha', 'beta', or 'stable'
    dependencies:
      kubeflow:
        - name: Pipelines
          version: '>=2.5'
      external_services: # Optional list of external dependencies
        - name: Argo Workflows
          version: "3.6"
    tags: # Optional keywords for discoverability
      - training
      - evaluation
    lastVerified: 2025-11-18T00:00:00Z  # Updated annually; components are removed after 12 months without update
    ci:
      skip_dependency_probe: false  # Optional. Set true only with justification
    links: # Optional, can use custom key-value (not limited to documentation, issue_tracker)
      documentation: https://kubeflow.org/components/my_component
      issue_tracker: https://github.com/kubeflow/pipelines-components/issues

Copy link
Member Author

Choose a reason for hiding this comment

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

hey @alyssacgoins, regarding above

  • item order in yaml dicts are not guaranteed - I can update the example here for clarity but the validation script should not assume name is first.
  • ci.compile_check, ci.pytest are spec'd as an optional fields in the KEP, are we saying that's an update being made to the KEP spec as well?
  • I can add # Optional comments to the optional fields such as links

### OWNERS File
The OWNERS file enables component owners to self-service maintenance tasks including approvals, metadata updates, and lifecycle management:
Copy link
Collaborator

Choose a reason for hiding this comment

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

can you either link to the k8s docs or add a brief description on /lgtm and /approve semantics

as I believe we intend to use prow like the rest of the kf projects

Comment on lines 295 to 308
### Pre-Submission Checklist

Verify your contribution meets all requirements before requesting review:

- [ ] All tests pass
- [ ] Pre-commit hooks pass without errors
- [ ] All required files are present and complete
- [ ] `metadata.yaml` includes fresh `lastVerified` timestamp
- [ ] OWNERS file lists appropriate maintainers
- [ ] README provides clear documentation with usage examples
- [ ] Component follows `snake_case` naming convention
- [ ] (Core tier only) Containerfile present if using custom image
- [ ] No security vulnerabilities in dependencies
- [ ] Container builds successfully (if applicable)
Copy link
Collaborator

Choose a reason for hiding this comment

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

this should be a checklist in the PR template it self and not added here, otherwise we have to update two places everytime the pr template is updated

Copy link
Member Author

Choose a reason for hiding this comment

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

ok, i'll remove this here, and put this in .github/pull_request_template.md, if it's not already being created. Either way, this would be a seperate PR

Copy link
Collaborator

Choose a reason for hiding this comment

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

okay, just ensure it's captured in some Jira or somewhere so we don't forget

@HumairAK
Copy link
Collaborator

/lgtm
/approve

@google-oss-prow google-oss-prow bot added the lgtm label Nov 27, 2025
@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: HumairAK

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow bot merged commit 8b9049d into kubeflow:main Nov 27, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants