# Atlas Migration Status - atlas-program-runtime
## ✅ Completed
### Code Renaming
- [x] All source files renamed from `solana_*` to `atlas_*`
- [x] All imports updated to use Atlas naming
- [x] Package name changed to `atlas-program-runtime`
- [x] Library name changed to `atlas_program_runtime`
- [x] Feature flags renamed (`agave-unstable-api` → `atlas-unstable-api`)
- [x] Documentation updated
- [x] Comments updated
- [x] String literals updated (where applicable)
### Files Modified
- ✅ `Cargo.toml` - Package configuration
- ✅ `src/lib.rs` - Main library file
- ✅ `src/cpi.rs` - Cross-program invocation
- ✅ `src/execution_budget.rs` - Execution budget management
- ✅ `src/invoke_context.rs` - Invocation context
- ✅ `src/loaded_programs.rs` - Program loading
- ✅ `src/mem_pool.rs` - Memory pool
- ✅ `src/memory.rs` - Memory management
- ✅ `src/serialization.rs` - Serialization utilities
- ✅ `src/stable_log.rs` - Logging
- ✅ `src/sysvar_cache.rs` - System variable cache
### Specific Renames
- `solana_*` modules → `atlas_*` modules
- `agave-unstable-api` feature → `atlas-unstable-api` feature
- `stake_raise_minimum_delegation_to_1_sol` → `stake_raise_minimum_delegation_to_1_atlas`
- All package dependencies: `solana-*` → `atlas-*`
## 🔄 In Progress
### Dependency Management
- [x] Cargo.toml configured with Atlas dependencies (using crates.io versions)
- [ ] Waiting for full ecosystem migration to use path dependencies
## ⏳ Pending
### Ecosystem Requirements
- [ ] All `atlas-*` dependency crates need to be fully renamed
- [ ] Coordinated version release across Atlas ecosystem
- [ ] API compatibility verification
- [ ] Integration testing with full Atlas stack
### Publishing
- [ ] Cannot publish to crates.io until:
- All dependencies are at compatible versions
- API changes are stabilized
- Full test suite passes
- Ecosystem-wide coordinated release
## 🚧 Known Issues
### API Compatibility
Some features were removed or renamed in newer atlas crate versions:
- `increase_cpi_account_info_limit` - Set to `false` (feature removed)
- `account_data_direct_mapping` - Set to `false` (feature removed)
- Module structure changes in `atlas-transaction-context`
### Version Mismatches
Current crates.io has:
- Most crates at 3.0.0
- Some at 2.0.x (stake-interface, system-interface)
- Some at 6.1.x (loader-v3-interface)
## 📝 Usage
### Current Configuration
The package uses **crates.io published versions** of atlas dependencies (all at 3.0.x where available).
### For Local Development
```toml
[dependencies]
atlas-program-runtime = { path = "../atlas-program-runtime-3.0.0" }
```
### When All Crates Are Renamed
Switch to path dependencies in Cargo.toml:
```toml
atlas-svm-measure = { path = "../atlas-svm-measure-3.0.0" }
# ... etc
```
## 🎯 Next Steps
1. **Complete ecosystem rename**: Rename all remaining `solana-*` crates in your workspace
2. **Create workspace**: Set up Cargo workspace for coordinated builds
3. **Test integration**: Verify all crates work together
4. **Fix API issues**: Address any breaking changes
5. **Coordinate release**: Plan publishing order and timing
6. **Publish**: Release to crates.io in dependency order
## 📊 Progress Tracker
### Renamed Crates
- ✅ atlas-program-runtime (this crate)
- ⏳ atlas-svm-* crates (pending - still named solana-svm-*)
- ⏳ atlas-sdk components (pending)
- ⏳ atlas-sbpf (pending)
- ⏳ Other atlas crates (pending)
### Total Progress
**Code: 100% Complete**
**Ecosystem: ~10% Complete** (1 out of ~10+ crates)
**Ready to Publish: No** (waiting on dependencies)
## 🔗 Related Documentation
- `README.md` - Usage guide
- `WORKSPACE_SETUP.md` - Workspace configuration
- `RELEASE_NOTES.md` - Version 3.0.1 changes
## 💡 Tips
1. Use `cargo tree` to visualize dependency graph
2. Test with `cargo check` before full builds
3. Keep versions synchronized across workspace
4. Document any API changes you encounter
5. Create issues for breaking changes
---
**Status as of**: 2025-11-25
**Version**: 3.0.1
**Stage**: Local Development (Not Published)