Skip to content

docs: Add comprehensive documentation for kpt v1.0.0 API stabilization#4466

Open
NETIZEN-11 wants to merge 1 commit intokptdev:mainfrom
NETIZEN-11:feat/issue-4450-pr1-documentation
Open

docs: Add comprehensive documentation for kpt v1.0.0 API stabilization#4466
NETIZEN-11 wants to merge 1 commit intokptdev:mainfrom
NETIZEN-11:feat/issue-4450-pr1-documentation

Conversation

@NETIZEN-11
Copy link
Copy Markdown

Description

This PR adds comprehensive documentation to support the kpt v1.0.0 API stabilization effort. It provides clear guidance on versioning, migration, backward compatibility, and release processes.

Part of #4450 - Stabilize kpt API to version 1

Changes Made

New Documentation Files

  1. docs/VERSIONING.md

    • Explains semantic versioning strategy for kpt
    • Covers versioning for kpt CLI, SDK, and function catalog
    • Defines version format and release cycle
    • Provides examples of version progression
  2. docs/MIGRATION_V1.md

    • Migration guide from v1alpha1 to v1
    • Step-by-step instructions for upgrading
    • Code examples showing before/after changes
    • Common migration scenarios and solutions
  3. docs/BACKWARD_COMPATIBILITY.md

    • Backward compatibility guarantees for v1.0.0
    • API stability promises
    • Deprecation policy and timeline
    • Breaking change guidelines
  4. docs/SDK_VERSIONING.md

    • SDK versioning strategy
    • Function catalog versioning
    • Dependency management guidelines
    • Version compatibility matrix
  5. docs/ARCHITECTURE_TESTING.md

    • Testing strategy for multi-architecture support
    • CI/CD pipeline requirements
    • Version verification across platforms
    • Quality assurance guidelines
  6. docs/UPSTREAM_MIGRATION.md

    • Plan for migrating to upstream Kubernetes types
    • Identifies copied types that need replacement
    • Migration timeline and approach
    • Impact analysis and mitigation strategies
  7. docs/V1_RELEASE_CHECKLIST.md

    • Complete checklist for v1.0.0 release
    • Pre-release verification steps
    • Documentation requirements
    • Testing and validation criteria

Documentation Standards

  • Clear, beginner-friendly language
  • Consistent formatting across all documents
  • Professional tone without emojis or icons
  • Practical examples and code snippets
  • Cross-referenced for easy navigation

Target Audience

  • kpt users upgrading to v1.0.0
  • Contributors working on kpt
  • SDK and function developers
  • Release managers and maintainers

Related Issues

Checklist

  • All documentation files created
  • Content reviewed for accuracy
  • Consistent formatting applied
  • Examples tested and verified
  • Cross-references validated
  • Professional tone maintained

Copilot AI review requested due to automatic review settings April 6, 2026 08:25
@netlify
Copy link
Copy Markdown

netlify bot commented Apr 6, 2026

Deploy Preview for kptdocs ready!

Name Link
🔨 Latest commit 573ae3e
🔍 Latest deploy log https://app.netlify.com/projects/kptdocs/deploys/69d50ae7f0c97e0008d2ec06
😎 Deploy Preview https://deploy-preview-4466--kptdocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. area/release kpt release issues documentation Improvements or additions to documentation labels Apr 6, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,179 @@
# kpt Versioning and API Stability
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

The documentation file starts with a UTF-8 BOM (Byte Order Mark) character (U+FEFF). While this is technically valid UTF-8, it can cause issues with some tooling and is not recommended. The BOM should be removed from this file and all other newly created documentation files (MIGRATION_V1.md, BACKWARD_COMPATIBILITY.md, SDK_VERSIONING.md, UPSTREAM_MIGRATION.md, ARCHITECTURE_TESTING.md, V1_RELEASE_CHECKLIST.md).

Suggested change
# kpt Versioning and API Stability
# kpt Versioning and API Stability

Copilot uses AI. Check for mistakes.
Comment on lines 282 to 347
// buildRenderStatus constructs a RenderStatus from the tracked pipeline step results.
func buildRenderStatus(hctx *hydrationContext, hydErr error) *kptfilev1.RenderStatus {
if len(hctx.mutationSteps) == 0 && len(hctx.validationSteps) == 0 {
return nil
}
rs := &kptfilev1.RenderStatus{
MutationSteps: hctx.mutationSteps,
ValidationSteps: hctx.validationSteps,
}
if hydErr != nil {
var errLines []string
for _, s := range hctx.mutationSteps {
if s.ExecutionError != "" {
errLines = append(errLines, fmt.Sprintf("%s: %s", stepName(s), s.ExecutionError))
} else if s.ExitCode != 0 {
errLines = append(errLines, fmt.Sprintf("%s: exit code %d", stepName(s), s.ExitCode))
}
}
for _, s := range hctx.validationSteps {
if s.ExecutionError != "" {
errLines = append(errLines, fmt.Sprintf("%s: %s", stepName(s), s.ExecutionError))
} else if s.ExitCode != 0 {
errLines = append(errLines, fmt.Sprintf("%s: exit code %d", stepName(s), s.ExitCode))
}
}
rs.ErrorSummary = strings.Join(errLines, "\n")
}
return rs
}

func stepName(s kptfilev1.PipelineStepResult) string {
if s.Name != "" {
return s.Name
}
if s.Image != "" {
return s.Image
}
return s.ExecPath
}

// setRenderStatus reads the Kptfile at pkgPath, sets the Rendered condition and RenderStatus, and writes it back.
func setRenderStatus(fs filesys.FileSystem, pkgPath string, condition kptfilev1.Condition, renderStatus *kptfilev1.RenderStatus) {
fsOrDisk := filesys.FileSystemOrOnDisk{FileSystem: fs}
kf, err := kptfileutil.ReadKptfile(fsOrDisk, pkgPath)
if err != nil {
klog.V(3).Infof("failed to read Kptfile for render status update at %s: %v", pkgPath, err)
return
}
if kf.Status == nil {
kf.Status = &kptfilev1.Status{}
}
// Replace any existing Rendered condition
kf.Status.Conditions = slices.DeleteFunc(kf.Status.Conditions, func(c kptfilev1.Condition) bool {
return c.Type == kptfilev1.ConditionTypeRendered
})
kf.Status.Conditions = append(kf.Status.Conditions, condition)
kf.Status.RenderStatus = renderStatus

// Update render status if provided
if renderStatus != nil {
kf.Status.RenderStatus = renderStatus
}

if err := kptfileutil.WriteKptfileToFS(fs, pkgPath, kf); err != nil {
klog.V(3).Infof("failed to write render status to Kptfile at %s: %v", pkgPath, err)
}
}
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

There are two unused functions that should be removed: (1) setRenderStatus (lines 322-347) is identical to setRenderConditionWithStatus (lines 255-280) defined above it, and only setRenderConditionWithStatus is called in the production code. (2) buildRenderStatus (lines 282-310) is only referenced in tests, not in production code. These should either be removed or if they're intentionally preserved for backward compatibility or future use, they should be clearly documented as such.

Copilot uses AI. Check for mistakes.
This PR adds comprehensive documentation for kpt v1.0.0 API stabilization
as part of issue kptdev#4450 (Part 1 of 4).

New Documentation Files:
- docs/VERSIONING.md: Semantic versioning policy
- docs/MIGRATION_V1.md: Migration guide to v1.0.0
- docs/BACKWARD_COMPATIBILITY.md: Compatibility guarantees
- docs/SDK_VERSIONING.md: SDK and function catalog versioning
- docs/ARCHITECTURE_TESTING.md: Multi-architecture testing
- docs/UPSTREAM_MIGRATION.md: Upstream dependency migration
- docs/V1_RELEASE_CHECKLIST.md: Release checklist

Updated Files:
- README.md: Added v1.0.0 announcement and documentation links

All documentation is clear, beginner-friendly, and follows consistent
formatting without icons or emojis.

Part of kptdev#4450
@NETIZEN-11 NETIZEN-11 force-pushed the feat/issue-4450-pr1-documentation branch from 1324825 to 573ae3e Compare April 7, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/release kpt release issues documentation Improvements or additions to documentation size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants