AgenticGoKit is currently in Beta. APIs may change before the stable v1.0 release.
Skip to content

API Versioning Strategy ​

How AgenticGoKit manages versions, stability, and breaking changes.


Version Structure ​

AgenticGoKit follows semantic versioning with the following structure:

v<major>.<minor>.<patch>[-<prerelease>]

Examples:
- v1.0.0        (stable release)
- v1.2.3        (stable with patches)
- v1beta        (beta version)
- v2alpha       (alpha version)

Version Stages ​

StageStabilityBreaking ChangesProduction Use
alphaExperimentalFrequentNot recommended
betaStabilizingPossibleAcceptable
stableProduction-readyRare, with migration pathRecommended

Current Versions ​

Status: Beta - Production-acceptable

Import Path:

go
import "github.com/agenticgokit/agenticgokit/v1beta"

Stability Guarantee:

  • API surface is mostly stable
  • Minor breaking changes possible with deprecation notices
  • All breaking changes documented in release notes
  • Migration guides provided for breaking changes
  • Security and bug fixes backported

Lifecycle:

  • Current: Active development and support
  • After v1.0 release: 6 months maintenance
  • After maintenance: Legacy status (security fixes only)

core/vnext (Legacy) ​

Status: Deprecated

Import Path:

go
import "github.com/agenticgokit/agenticgokit/core/vnext"

Stability Guarantee:

  • No new features
  • Critical bug fixes only
  • Security updates until EOL

Lifecycle:

  • Current: Maintenance mode
  • Support ends: 6 months after v1.0 release
  • After EOL: No updates

Migration: See Migration Guide


Breaking Changes Policy ​

What is a Breaking Change? ​

A breaking change is any modification that requires users to update their code:

  • Removing public APIs
  • Changing function signatures
  • Renaming types or functions
  • Changing behavior of existing APIs
  • Changing import paths

How We Handle Breaking Changes ​

Beta Versions (v1beta) ​

Process:

  1. Announcement - Breaking change announced in GitHub discussions
  2. Deprecation Period - Old API marked deprecated (minimum 1 release cycle)
  3. Migration Guide - Step-by-step guide provided
  4. Release - Breaking change shipped with clear release notes

Timeline:

Release N:   Deprecation notice + new API introduced
Release N+1: Old API still works with warnings
Release N+2: Old API removed (breaking change)

Stable Versions (v1.x) ​

Process:

  1. Avoid if possible - Breaking changes avoided in stable versions
  2. Major version bump - Breaking changes only in major versions (v1 → v2)
  3. Long deprecation - Minimum 6-month deprecation period
  4. Parallel support - Old and new APIs coexist during transition

Example:

v1.0: Current API
v1.5: New API introduced, old API deprecated
v1.x: Both APIs work for 6+ months
v2.0: Old API removed

Deprecation Process ​

Marking APIs as Deprecated ​

go
// Deprecated: Use NewBuilder instead.
// This function will be removed in v2.0.
func CreateAgent(name string) *Agent {
    // Implementation
}

// NewBuilder creates an agent using the builder pattern.
// Recommended replacement for deprecated CreateAgent.
func NewBuilder(name string) *Builder {
    // Implementation
}

Deprecation Notice Format ​

go
// Deprecated: [Reason]
// Use [Replacement] instead.
// This will be removed in [Version].

User Communication ​

Deprecations are communicated via:

  1. Code Comments - GoDoc deprecation notices
  2. Release Notes - Explicit mention in changelog
  3. GitHub Discussions - Advance notice thread
  4. Migration Guides - Detailed migration instructions
  5. Runtime Warnings - Log warnings for deprecated APIs (where feasible)

Compatibility Guarantees ​

v1beta Guarantees ​

✅ What We Promise:

  • Core functionality remains stable
  • Bug fixes don't break existing code
  • Performance improvements are transparent
  • Security patches are non-breaking when possible

⚠️ What May Change:

  • New features may be added
  • Minor API adjustments with deprecation notices
  • Error messages and types may be enhanced
  • Internal implementation may change

❌ No Guarantee:

  • Experimental features (marked explicitly)
  • Internal packages (not in public API)
  • Undocumented behavior

v1.0+ Guarantees ​

✅ What We Promise:

  • Public API is stable across minor versions (v1.x)
  • No breaking changes within major version
  • Security and bug fixes for 2+ years after major release
  • Clear migration path for major version upgrades

Version Support Timeline ​

v1beta:    Active (Current)
           ↓
v1.0:      Stable Release
           ├─ v1.x: Active development (24+ months)
           ├─ Security fixes (12+ months after v2.0)
           └─ EOL
           
v1beta:    Maintenance (after v1.0)
           ├─ Critical bugs (6 months)
           ├─ Security fixes (6 months)
           └─ EOL (6 months after v1.0)

Support Phases ​

PhaseDurationUpdatesExample
ActiveIndefiniteFeatures, bugs, securityv1beta (current)
Maintenance6 monthsCritical bugs, securitycore/vnext
Security6 monthsSecurity only-
EOLForeverNone-

Choosing a Version ​

For New Projects ​

Recommendation: v1beta

go
import "github.com/agenticgokit/agenticgokit/v1beta"

Reasons:

  • Modern, clean API
  • Active development
  • Best documentation
  • Production-acceptable stability
  • Will become v1.0 (seamless upgrade)

For Existing Projects (Legacy) ​

Option 1: Migrate to v1beta (Recommended)

See Migration Guide for step-by-step instructions.

Benefits:

  • Modern features
  • Better performance
  • Long-term support
  • Continued updates

Option 2: Stay on Legacy

Acceptable if:

  • Project is in maintenance mode
  • No new features needed
  • Will be decommissioned within 6 months

API Stability Markers ​

Stable ​

go
// Stable: This API is production-ready and will not change
// in breaking ways within the current major version.
func NewBuilder(name string) *Builder

Beta ​

go
// Beta: This API is mostly stable but may have minor changes
// with deprecation notices. Production-acceptable.
func WithExperimentalFeature() *Builder

Experimental ​

go
// Experimental: This API is under active development and may
// change significantly. Not recommended for production use.
func ExperimentalFeature() error

Internal ​

go
// Internal: This package is for internal use only and may
// change without notice. Do not import.
package internal

Release Process ​

Version Bumping ​

Patch Release (v1.0.x):

  • Bug fixes
  • Security patches
  • Documentation improvements
  • No API changes

Minor Release (v1.x.0):

  • New features (backward compatible)
  • Deprecations (with notices)
  • Performance improvements
  • API additions (no removals)

Major Release (vX.0.0):

  • Breaking changes
  • API removals (after deprecation)
  • Major architectural changes
  • Requires migration

Release Cadence ​

  • Patch releases: As needed (bug fixes)
  • Minor releases: Monthly or as needed
  • Major releases: Yearly or as needed

Backward Compatibility ​

What We Maintain ​

✅ Guaranteed Compatibility:

  • Function signatures
  • Type definitions
  • Package imports
  • Documented behavior
  • Configuration formats

⚠️ Best Effort:

  • Error messages
  • Log output
  • Performance characteristics
  • Internal implementation

❌ No Guarantee:

  • Undocumented features
  • Internal packages
  • Test helpers
  • Examples (may be updated)

Testing Compatibility ​

We test backward compatibility via:

  1. Regression Tests - Existing tests must pass
  2. API Compatibility Checker - Tools detect breaking changes
  3. Integration Tests - Real-world usage patterns validated
  4. Community Feedback - Beta releases for early testing

Experimental Features ​

Definition ​

Experimental features are:

  • New functionality under evaluation
  • May change based on feedback
  • Not subject to normal stability guarantees
  • Clearly marked in documentation

Usage Guidelines ​

Acceptable for experimentation:

go
// Try new features in development
agent, _ := v1beta.NewBuilder("Agent").
    WithExperimentalFeature(). // OK for testing
    Build()

Not recommended for production:

go
// Avoid in production systems
agent, _ := v1beta.NewBuilder("ProductionAgent").
    WithExperimentalFeature(). // Risky - may change
    Build()

Graduation Process ​

Experimental → Beta → Stable

  1. Experimental: Initial release, gather feedback
  2. Beta: API stabilized, minor changes possible
  3. Stable: API locked, stability guaranteed

Migration Support ​

Resources ​

Migration Timeline ​

Standard Timeline:

Deprecation Notice → 6 months → Removal

Emergency Timeline (security):

Security Issue → Patch Release → 3 months → Removal

Security Updates ​

Policy ​

  • Security issues receive immediate attention
  • Patches released for supported versions
  • Coordinated disclosure process
  • Security advisories published

Supported Versions for Security Patches ​

VersionSecurity Support
v1beta (current)✅ Active
core/vnext✅ Until v1.0 + 6 months
v1.0+✅ 12 months after next major

Reporting Security Issues ​

Do not open public issues for security vulnerabilities.

Email: security@agenticgokit.dev


Questions & Support ​


Next Steps ​

Released under the Apache 2.0 License.