Skip to content

Version Management

Learn how to manage different versions of your plugins in the ElasticView Developer Portal.

Overview

Version management is crucial for maintaining your plugins and providing users with stable, feature-rich experiences. The ElasticView platform supports comprehensive version control with semantic versioning.

Version Numbering

Semantic Versioning

Follow semantic versioning (SemVer) format: MAJOR.MINOR.PATCH

  • MAJOR (1.0.0): Breaking changes that are not backward compatible
  • MINOR (1.1.0): New features that are backward compatible
  • PATCH (1.0.1): Bug fixes that are backward compatible

Version Examples

  • 1.0.0: Initial release
  • 1.0.1: Bug fix release
  • 1.1.0: New feature addition
  • 2.0.0: Major update with breaking changes

Pre-release Versions

For testing and beta releases:

  • 1.0.0-alpha.1: Alpha release
  • 1.0.0-beta.1: Beta release
  • 1.0.0-rc.1: Release candidate

Creating New Versions

Version Upload Process

  1. Prepare New Version

    • Update version number in plugin.yaml
    • Test all functionality thoroughly
    • Prepare release notes and changelog
    • Update documentation if needed
  2. Access Version Management

    • Go to Plugin Management
    • Select your plugin
    • Click "Upload New Version"
  3. Upload New Package

    • Select updated plugin package
    • Fill version information
    • Add release notes
    • Submit for review

Version Information

When uploading a new version, provide:

Version Details

  • Version Number: Semantic version (e.g., 1.2.0)
  • Release Type: Major, minor, or patch release
  • Release Date: Automatic or scheduled
  • Stability: Stable, beta, or alpha

Release Notes

  • What's New: New features and improvements
  • Bug Fixes: Issues resolved in this version
  • Breaking Changes: Compatibility warnings
  • Known Issues: Current limitations or bugs

Compatibility

  • ElasticView Versions: Supported platform versions
  • Dependencies: Required external components
  • Migration Guide: Upgrade instructions for users

Version History

Viewing Version History

The version history shows:

  • All Released Versions: Complete version timeline
  • Release Dates: When each version was published
  • Download Statistics: Per-version download counts
  • Status: Active, deprecated, or removed versions
  • User Ratings: Version-specific user feedback

Version Status Types

  • Active: Current supported version
  • Latest: Most recent version
  • Deprecated: Older version, still available
  • Removed: No longer available for download
  • Beta: Testing version for early adopters

Version Management Actions

Version Operations

For each version, you can:

  1. View Details: See complete version information
  2. Download: Get the plugin package
  3. Deprecate: Mark version as outdated
  4. Remove: Delete version from marketplace
  5. Rollback: Make older version the active one
  6. Clone: Create new version based on existing one

Deprecation Process

To deprecate an older version:

  1. Select Version: Choose version to deprecate
  2. Set Deprecation Notice: Inform users about replacement
  3. Migration Timeline: Provide upgrade deadline
  4. Automatic Notifications: Users receive update notices

Version Removal

Permanently remove a version:

  1. Confirm Removal: Understand this is irreversible
  2. User Impact: Consider active installations
  3. Migration Path: Ensure users can upgrade
  4. Notification: Inform affected users

Release Management

Release Planning

Plan your releases strategically:

Release Cycle

  • Major Releases: Every 6-12 months
  • Minor Releases: Every 1-3 months
  • Patch Releases: As needed for critical fixes
  • Beta Releases: 2-4 weeks before major releases

Feature Planning

  • Roadmap: Plan features across versions
  • User Feedback: Incorporate user requests
  • Platform Updates: Align with ElasticView releases
  • Compatibility: Maintain backward compatibility

Beta Testing

Manage beta versions effectively:

  1. Beta Channel Setup

    • Create separate beta distribution
    • Limit access to beta testers
    • Collect feedback and metrics
  2. Beta User Management

    • Invite trusted users
    • Provide feedback channels
    • Monitor usage and issues
  3. Beta to Stable Promotion

    • Address beta feedback
    • Perform final testing
    • Promote to stable release

Version Analytics

Download Metrics

Track version performance:

  • Download Trends: Version adoption rates
  • User Retention: How long users stay on versions
  • Upgrade Patterns: How users move between versions
  • Geographic Distribution: Version popularity by region

User Feedback

Monitor version-specific feedback:

  • Ratings: Per-version user ratings
  • Reviews: Version-specific user comments
  • Bug Reports: Issues reported for each version
  • Feature Requests: User suggestions for improvements

Performance Metrics

Track version performance:

  • Crash Reports: Stability metrics per version
  • Performance Data: Load times and resource usage
  • Error Rates: Frequency of errors by version
  • Support Requests: Version-related support tickets

Compatibility Management

Platform Compatibility

Ensure compatibility across:

ElasticView Versions

  • Minimum Version: Oldest supported platform version
  • Maximum Version: Newest tested platform version
  • Compatibility Matrix: Version support grid
  • Testing: Verify compatibility across versions

Dependencies

  • External Libraries: Required third-party components
  • System Requirements: Operating system compatibility
  • Browser Support: Web interface compatibility
  • Database Versions: Supported database systems

Breaking Changes

Handle breaking changes carefully:

  1. Advance Notice

    • Announce breaking changes early
    • Provide migration timeline
    • Document required changes
  2. Migration Support

    • Create migration tools
    • Provide step-by-step guides
    • Offer migration assistance
  3. Deprecation Period

    • Maintain old version temporarily
    • Provide warnings about deprecation
    • Set clear end-of-life dates

Automated Version Management

Continuous Integration

Integrate with CI/CD pipelines:

yaml
# Example GitHub Actions workflow
name: Plugin Release
on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Build Plugin
        run: make build
      - name: Upload to ElasticView
        run: |
          curl -X POST \
            -H "Authorization: Bearer ${{ secrets.EV_API_TOKEN }}" \
            -F "plugin=@plugin-package.zip" \
            https://api.elastic-view.cn/v1/plugins/upload

Version Automation

Automate version management:

  • Automatic Versioning: Based on commit messages
  • Changelog Generation: From git history
  • Release Notes: Auto-generated from commits
  • Testing: Automated testing before release

Best Practices

Version Strategy

  • Consistent Numbering: Follow semantic versioning strictly
  • Regular Releases: Maintain predictable release schedule
  • Quality Assurance: Thorough testing before release
  • Documentation: Keep version docs up to date

User Communication

  • Clear Release Notes: Explain changes clearly
  • Migration Guides: Help users upgrade smoothly
  • Advance Notice: Warn about breaking changes
  • Support Channels: Provide help during transitions

Maintenance

  • Long-term Support: Maintain critical versions
  • Security Updates: Patch security issues promptly
  • Performance Monitoring: Track version performance
  • User Feedback: Respond to version-specific issues

Troubleshooting

Common Issues

  1. Version Upload Failures

    • Check version number format
    • Verify package integrity
    • Ensure proper permissions
  2. Compatibility Problems

    • Test with target platform versions
    • Verify dependency versions
    • Check breaking changes
  3. User Upgrade Issues

    • Provide clear migration instructions
    • Test upgrade process
    • Offer rollback options

Getting Support

  1. Documentation

    • Review version management guides
    • Check platform compatibility matrix
    • Read best practices
  2. Developer Support

Next Steps