This document provides step-by-step instructions for upgrading between versions of lif-core when breaking changes are introduced.
Breaking changes are modifications that require action from users to maintain compatibility. This includes:
- Database schema changes that require migrations
- API endpoint changes (removed, renamed, or modified parameters)
- Configuration format changes
- Dependency version requirements
- Changes to expected input/output formats
- Identify your current version
- Read all migration sections between your current version and target version
- Follow the steps in order
- Test thoroughly in a non-production environment first
No breaking changes currently pending
No deprecations currently pending
Breaking Changes:
- Description of breaking change
- Action Required: Step-by-step migration instructions
- Impact: Who is affected and how
- Related: Link to CHANGELOG.md entry, relevant issue, or documentation
Example:
Breaking Changes:
- Action Required:
- Run migration script:
python scripts/migrate.py --version 1.2.0 - Update any code that inserts users to include
user_roleparameter
- Run migration script:
- Impact: All deployments with existing user data
- Related: CHANGELOG.md, Issue #123
- Action Required:
- Update all client code to use
/v2/learnerinstead - Note:
/v2/learnerreturns data in a different format (see API docs)
- Update all client code to use
- Impact: Any external systems calling the v1 endpoint
- Related: API Documentation
- Action Required:
- Rename
LIF_DB_HOST→LIF_DATABASE_HOST - Rename
LIF_DB_PORT→LIF_DATABASE_PORT - Update all deployment configurations and docker-compose files
- Rename
- Impact: All deployment configurations
- Related: Configuration Guide
If you encounter issues during migration:
- Check the CHANGELOG.md for additional context
- Review relevant documentation in the /docs directory
- Search existing GitHub Discussions
- Open a new discussion with the
migrationlabel if applicable - Search existing GitHub Issues
- Open a new issue with the
migrationlabel if needed