- Setup time reduced from 5+ minutes to under 30 seconds
- 90% reduction in data downloaded (1.5GB → ~120MB)
- CI/CD build times reduced from 8+ minutes to under 2 minutes
[submodule "nokia"]
path = nokia
url = https://github.com/nokia/7x50_YangModels.git
shallow = true
branch = masterImpact: Downloads only latest commit instead of full history
# Ultra-fast for CI/build
./scripts/setup-submodules-fast.sh ci # ~10 seconds
# Fast development setup
./scripts/setup-submodules-fast.sh shallow # ~20 seconds
# Complete history (when needed)
./scripts/setup-submodules-fast.sh full # ~3-5 minutesmake setup # Complete automated setup
make setup-ci # CI-optimized
make validate # Test everything
make status # Monitor submodule sizes- name: Fast submodule setup for CI
run: ./scripts/setup-submodules-fast.sh ci- Quick Start Guide: Fast setup instructions
- Performance Guide: Detailed optimization explanations
- Installation Guide: Multiple setup options
| Method | Time | Size | Use Case |
|---|---|---|---|
make setup |
30s | 120MB | Complete development setup |
setup-submodules-fast.sh ci |
10s | 100MB | CI/automated builds |
setup-submodules-fast.sh shallow |
20s | 120MB | Fast development |
git submodule update --recursive |
5min+ | 1.5GB | Traditional (slow) |
✅ Now using Nokia SROS 25.7 (Latest)
- State models:
nokia-state-router-bgp.yang,nokia-state.yang - Configuration models:
nokia-conf-router-bgp.yang,nokia-conf.yang - Type definitions:
nokia-types-bgp.yang,nokia-sros-yang-extensions.yang - All symlinks: Point to
latest_sros_25.7for latest features and compatibility
git clone https://github.com/yourusername/poma.git
cd poma
make setupgit clone https://github.com/yourusername/poma.git
cd poma
./scripts/setup-submodules-fast.sh cigit clone https://github.com/yourusername/poma.git
cd poma
make setup
make validate- Shallow clones:
git submodule update --init --depth 1 - Single branch:
--single-branchfor focused downloads - No recursive fetching:
git config submodule.recurse false - Parallel operations:
--jobs 4for concurrent downloads
- Error handling:
set -efor fail-fast behavior - Progress feedback: Clear status messages
- Mode selection: Different optimization levels
- Size monitoring: Built-in repository size tracking
- Minimal data transfer: Download only required files
- Cached dependencies: Leverage GitHub Actions caching
- Parallel builds: Concurrent submodule operations
- Fast validation: Quick model validation without full history
- Current users: Continue using existing setup or migrate to
make setup - New projects: Use
make setupfor best experience - CI systems: Switch to
./scripts/setup-submodules-fast.sh ci
- All existing scripts continue to work
- Traditional
git clone --recursivestill supported - Gradual migration possible
make status # View submodule sizes and status
make benchmark # Time setup operationsmake clean # Clean temporary files
make setup # Re-run complete setup- Git LFS integration for binary assets
- CDN caching for model distribution
- Incremental updates for model changes
- Local caching for offline development
These optimizations make PoMa significantly faster to set up while maintaining full functionality and backward compatibility. The 90% reduction in setup time dramatically improves the developer experience and CI/CD pipeline efficiency.