Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# AI Agent Context Guide

*This guide provides context and information for AI agents working with the Kubeflow Pipelines Components Repository.*

## Coming Soon

This document serves as a comprehensive context source for AI agents to understand:
- Repository structure and organization
- Component development patterns and standards
- Contribution workflows and processes
- Code quality requirements and testing practices
- Community guidelines and governance

---

For immediate guidance, see:
- [Contributing Guide](CONTRIBUTING.md)
- [Onboarding Guide](ONBOARDING.md)
- [Best Practices Guide](BESTPRACTICES.md)
22 changes: 22 additions & 0 deletions docs/BESTPRACTICES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Component Development Best Practices

*This guide is under development. Please check back soon for comprehensive best practices for developing Kubeflow Pipelines components.*

## Coming Soon

This document will cover:
- Component design patterns
- Performance optimization
- Security best practices
- Error handling strategies
- Documentation standards
- Testing methodologies
- Container optimization
- Resource management

---

For immediate guidance, see:
- [Contributing Guide](CONTRIBUTING.md)
- [Onboarding Guide](ONBOARDING.md)
- [Testing Guide](TESTING.md)
130 changes: 130 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Contributing to Kubeflow Pipelines Components

Welcome! This guide covers how to contribute components to the Kubeflow Pipelines Components Repository.

## Table of Contents

- [Quick Start](#quick-start)
- [What We Accept](#what-we-accept)
- [Component Structure](#component-structure)
- [Required Files](#required-files)
- [Development Workflow](#development-workflow)
- [Testing Requirements](#testing-requirements)
- [Review Process](#review-process)
- [Before Submitting](#before-submitting)
- [Getting Help](#getting-help)
- [Naming Conventions](#naming-conventions)
- [References](#references)

## Quick Start

*Get up and running with your first contribution in 7 simple steps.*

1. **Read the [Kubeflow Community Code of Conduct](https://github.com/kubeflow/community/blob/master/CODE_OF_CONDUCT.md)** - All contributors must follow these guidelines
2. **Fork and clone** the repository
3. **Set up environment** - see [ONBOARDING.md](ONBOARDING.md)
4. **Create feature branch** - `git checkout -b component/my-component`
5. **Develop component** following the structure below
6. **Test thoroughly** - see [TESTING.md](TESTING.md)
7. **Submit pull request**

## What We Accept

*Types of contributions we welcome to the repository.*

- **Individual Components**: ML tasks (preprocessing, training, evaluation)
- **Component Collections**: Related component sets
- **Pipeline Templates**: Complete pipeline examples
- **Bug Fixes**: Improvements to existing components

## Component Structure

*Standard directory layout and files required for every component.*

Each component must follow this structure:

```
components/my_component/ # or third_party/components/my_component
├── __init__.py # (exposes the component entrypoint for imports)
├── component.py
├── metadata.yaml # Component specification
├── README.md # Documentation
├── OWNERS # Maintainers
├── Containerfile # Container definition (required only for custom images)
├── example_pipelines.py
└── tests/
│ └── test_component.py # Tests
└── <supporting_files>
```


## Development Workflow

See the [developer onboarding guide](ONBOARDING.md) for steps and guidence on developing and contributing a new component or pipeline to this repository


## Testing Requirements

*Minimum testing standards all components must meet.*

- **Unit tests**: Test individual functions
- **Integration tests**: Test end-to-end functionality
- **Coverage**: Minimum 80%
- **Error handling**: Test failure scenarios

See [TESTING.md](TESTING.md) for detailed testing guidelines.

## Review Process

*How contributions are reviewed and what criteria they must meet.*

All PRs must pass:
- Automated checks (linting, tests, builds)
- Code review by maintainers
- Documentation review

### Review Criteria

- Component works as described
- Code is clean and well-documented
- Tests provide good coverage
- Follows repository standards

## Before Submitting

*Final checklist to ensure your contribution is ready for review.*

- [ ] Component builds successfully
- [ ] All tests pass (≥80% coverage)
- [ ] All required files present
- [ ] Documentation complete
- [ ] Follows naming conventions
- [ ] No security vulnerabilities

## Getting Help

*Resources and channels for getting support during development.*

- **Setup**: [ONBOARDING.md](ONBOARDING.md)
- **Testing**: [TESTING.md](TESTING.md)
- **Governance**: [GOVERNANCE.md](GOVERNANCE.md)
- **Best Practices**: [BESTPRACTICES.md](BESTPRACTICES.md) *(coming soon)*
- **Agents**: [AGENTS.md](AGENTS.md) *(coming soon)*
- **Community**: `#kubeflow-pipelines` channel on the [CNCF Slack](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels)
- **Issues**: [GitHub Issues](https://github.com/kubeflow/pipelines-components/issues) for bugs/features

## Naming Conventions

*Standardized naming patterns for components, branches, and commits.*

- **Components**: `snake_case` (e.g., `data_preprocessing`)
- **Branches**: `component/name` or `fix/issue-123`
- **Commits**: Follow [Conventional Commits](https://conventionalcommits.org/)

---

## References

This repository was established through [KEP-913: Components Repository](https://github.com/kubeflow/community/tree/master/proposals/913-components-repo).

Thanks for contributing! 🚀
207 changes: 207 additions & 0 deletions docs/GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Repository Governance

This document defines the governance structure for the Kubeflow Pipelines Components Repository.

## Table of Contents

- [Two-Tier System](#two-tier-system)
- [Ownership Models](#ownership-models)
- [Tier Transitions](#tier-transitions)
- [Removal Policies](#removal-policies)
- [Deprecation Policy](#deprecation-policy)
- [Repository Roles](#repository-roles)
- [Decision Making](#decision-making)
- [Conflict Resolution](#conflict-resolution)
- [Policy Updates](#policy-updates)
- [Related Documentation](#related-documentation)
- [Background](#background)

## Two-Tier System

*Classification system distinguishing officially supported components from community contributions.*

### Core Tier

**Officially supported components** maintained by the Kubeflow community.

**Requirements:**
- 90% test coverage (unit, integration, e2e)
- Security review passed
- Complete documentation
- Active maintenance commitment
- Backward compatibility guarantees

**Benefits:**
- Official support and maintenance
- Included in releases
- Priority for bug fixes
- Long-term stability guarantees

### Third-Party Tier

**Community-contributed components** with lighter requirements.

**Requirements:**
- 80% test coverage
- Basic documentation (README, examples)
- At least 2 maintainers
- Working implementation

**Benefits:**
- Community visibility
- Shared maintenance burden
- Faster contribution process
- Innovation sandbox

## Ownership Models

*How ownership, maintenance, and decision-making responsibilities are distributed across tiers.*

### Core Tier
- **Owned by**: Kubeflow community
- **Maintained by**: Designated maintainer teams
- **Decisions by**: Steering committee consensus
- **Support**: Official community support

### Third-Party Tier
- **Owned by**: Original contributors
- **Maintained by**: Component owners
- **Decisions by**: Component owners
- **Support**: Best-effort community support

## Tier Transitions

*Process for moving components between Core and Third-Party tiers.*

### Promotion to Core
1. **Nomination**: Any maintainer can nominate
2. **Review**: Technical and governance review
3. **Requirements**: Must meet all core tier requirements
4. **Decision**: Steering committee approval
5. **Timeline**: 4-6 weeks review process

### Demotion from Core
Triggers:
- Maintenance neglect (>6 months)
- Security issues unaddressed
- Breaking changes without migration
- Community consensus

## Removal Policies

*Timeline and criteria for removing inactive or problematic components from the repository.*

### Verification Process (9 months)
Components are marked for verification if:
- No updates in 9 months
- Maintainers unresponsive
- Compatibility issues

### Removal Process (12 months)
After 12 months of inactivity:
1. **Notice**: 30-day removal notice
2. **Community input**: 2-week feedback period
3. **Final decision**: Steering committee
4. **Removal**: Delete component code from repository

### Emergency Removal
Immediate removal for:
- Critical security vulnerabilities
- Legal issues
- Malicious code

## Deprecation Policy

*Structured approach to deprecating components with adequate notice and migration support.*

### Two-Release Policy
Components deprecated for 2 Kubeflow releases before removal.

**Process:**
1. **Deprecation notice**: Mark as deprecated
2. **Migration guide**: Provide alternatives
3. **Community notice**: Announce in releases
4. **Removal**: After 2 releases

## Repository Roles

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

### Repository Maintainers
- **Role**: Day-to-day repository management
- **Responsibilities**: Reviews, releases, community support
- **Requirements**: Active contributor, community trust

### Component Owners
- **Role**: Individual component maintenance
- **Responsibilities**: Updates, bug fixes, user support
- **Requirements**: Technical expertise, time commitment

### Kubeflow Steering Committee Member
- **Role**: Organization-scope strategic decisions and governance
- **Responsibilities**: Defined in the organization-wide [Kubeflow governance documentation](https://www.kubeflow.org/docs/about/governance/#2-kubeflow-steering-committee-ksc)

## Decision Making

*Framework for making technical, policy, and strategic decisions within the community.*

### Decision Types
- **Technical**: Component owners → maintainers → steering committee
- **Policy**: Maintainers → steering committee
- **Strategic**: Steering committee

### Process
1. **Proposal**: Create GitHub issue/RFC
2. **Discussion**: Community feedback (1-2 weeks)
3. **Decision**: Appropriate authority level
4. **Implementation**: Assign and track

## Conflict Resolution

*Structured approach to resolving disputes and preventing conflicts within the community.*

### Process
1. **Direct discussion**: Parties attempt resolution
2. **Maintainer mediation**: Neutral maintainer facilitates
3. **Steering committee**: Final arbitration
4. **Community input**: Public discussion if needed

### Prevention
- Clear guidelines and expectations
- Regular community meetings
- Transparent decision making
- Code of conduct enforcement

## Policy Updates

*How governance policies are updated to evolve with community needs and learnings.*

**Process:**
1. **RFC**: Propose changes via GitHub issue
2. **Community review**: 2-week feedback period
3. **Steering committee approval**: Majority vote required
4. **Implementation**: Update documentation and processes

**Criteria for updates:**
- Community needs evolution
- Process improvements
- Conflict resolution learnings
- External requirements changes

---

This governance model ensures quality, sustainability, and community collaboration while maintaining clear processes and expectations.

## Related Documentation

- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute components
- **[Onboarding Guide](ONBOARDING.md)** - Getting started as a contributor
- **[Testing Guide](TESTING.md)** - Code quality and testing standards
- **[Best Practices Guide](BESTPRACTICES.md)** - Component development best practices *(coming soon)*
- **[Agents Guide](AGENTS.md)** - AI agent components and patterns *(coming soon)*

## Background

This governance model is based on [KEP-913: Components Repository](https://github.com/kubeflow/community/tree/master/proposals/913-components-repo), which established the framework for a curated collection of reusable Kubeflow Pipelines components with clear quality standards and community governance.

For questions about governance, contact the steering committee or open a GitHub issue.
Loading