|
| 1 | +# Development Guide for Python Deadlines |
| 2 | + |
| 3 | +## Quick Development Builds |
| 4 | + |
| 5 | +The full site build with all languages and historical data can take a long time. We provide several development configurations for faster iteration: |
| 6 | + |
| 7 | +### Available Commands |
| 8 | + |
| 9 | +```bash |
| 10 | +# Full production build (all languages, all data) - SLOW |
| 11 | +pixi run serve |
| 12 | + |
| 13 | +# Development build (English + German, no archive/legacy) - FAST |
| 14 | +pixi run serve-dev |
| 15 | + |
| 16 | +# Minimal build (English only, minimal plugins) - FASTEST |
| 17 | +pixi run serve-minimal |
| 18 | + |
| 19 | +# Fast incremental build (skips initial build) |
| 20 | +pixi run serve-fast |
| 21 | +``` |
| 22 | + |
| 23 | +### Build Time Comparison |
| 24 | + |
| 25 | +| Command | Languages | Archive/Legacy | Plugins | Build Time | |
| 26 | +|---------|-----------|----------------|---------|------------| |
| 27 | +| `serve` | All 9 | Yes | All | ~3-5 minutes | |
| 28 | +| `serve-dev` | EN, DE | No | Most | ~30-45 seconds | |
| 29 | +| `serve-minimal` | EN only | No | Minimal | ~15-20 seconds | |
| 30 | +| `serve-fast` | EN, DE | No | Most | ~10 seconds (incremental) | |
| 31 | + |
| 32 | +### Configuration Files |
| 33 | + |
| 34 | +- **`_config.yml`** - Main production configuration |
| 35 | +- **`_config.dev.yml`** - Development config (EN+DE, no historical data) |
| 36 | +- **`_config.minimal.yml`** - Minimal config (EN only, bare essentials) |
| 37 | + |
| 38 | +### How It Works |
| 39 | + |
| 40 | +Jekyll allows layering configurations using the `--config` flag: |
| 41 | +```bash |
| 42 | +jekyll serve --config _config.yml,_config.dev.yml |
| 43 | +``` |
| 44 | + |
| 45 | +Later configs override earlier ones, so `_config.dev.yml` overrides specific settings from `_config.yml`. |
| 46 | + |
| 47 | +### What Gets Excluded in Dev Mode |
| 48 | + |
| 49 | +**Development Mode (`serve-dev`):** |
| 50 | +- Languages: Only English and German |
| 51 | +- Archive data: Not processed |
| 52 | +- Legacy data: Not processed |
| 53 | +- Some plugins: Sitemap disabled |
| 54 | +- Analytics: Disabled |
| 55 | + |
| 56 | +**Minimal Mode (`serve-minimal`):** |
| 57 | +- Languages: Only English |
| 58 | +- Only current conferences processed |
| 59 | +- Minimal plugins (no SEO, maps, sitemap) |
| 60 | +- All other languages excluded from file watching |
| 61 | +- Maximum speed optimizations |
| 62 | + |
| 63 | +### When to Use Each Mode |
| 64 | + |
| 65 | +- **`serve`** - Final testing before deployment, checking all languages |
| 66 | +- **`serve-dev`** - General development, testing features |
| 67 | +- **`serve-minimal`** - Quick iterations, CSS/JS development |
| 68 | +- **`serve-fast`** - Continuous development with auto-reload |
| 69 | + |
| 70 | +### Tips for Faster Development |
| 71 | + |
| 72 | +1. **Use minimal mode for CSS/JS work:** |
| 73 | + ```bash |
| 74 | + pixi run serve-minimal |
| 75 | + ``` |
| 76 | + |
| 77 | +2. **Skip link checking when sorting:** |
| 78 | + ```bash |
| 79 | + pixi run sort # Uses --skip_links by default |
| 80 | + ``` |
| 81 | + |
| 82 | +3. **Use incremental builds:** |
| 83 | + ```bash |
| 84 | + pixi run serve-fast |
| 85 | + ``` |
| 86 | + |
| 87 | +4. **Exclude files from watch:** |
| 88 | + Add large files or directories to `exclude:` in dev configs |
| 89 | + |
| 90 | +5. **Clear Jekyll cache if builds are slow:** |
| 91 | + ```bash |
| 92 | + rm -rf _site .jekyll-cache |
| 93 | + ``` |
| 94 | + |
| 95 | +### Custom Development Configuration |
| 96 | + |
| 97 | +You can create your own config for specific needs: |
| 98 | + |
| 99 | +```yaml |
| 100 | +# _config.custom.yml |
| 101 | +languages: [ "en", "es" ] # Your preferred languages |
| 102 | +page_gen: |
| 103 | + # Your custom page generation rules |
| 104 | +``` |
| 105 | + |
| 106 | +Then use it: |
| 107 | +```bash |
| 108 | +bundler exec jekyll serve --config _config.yml,_config.custom.yml |
| 109 | +``` |
| 110 | + |
| 111 | +### Troubleshooting |
| 112 | + |
| 113 | +**Build still slow?** |
| 114 | +- Clear cache: `rm -rf _site .jekyll-cache` |
| 115 | +- Check for large files in `_data/` |
| 116 | +- Use `--profile` flag to identify bottlenecks |
| 117 | + |
| 118 | +**Missing content in dev mode?** |
| 119 | +- Check which config you're using |
| 120 | +- Archive/legacy conferences won't appear in dev mode |
| 121 | +- Some languages are excluded |
| 122 | + |
| 123 | +**Changes not appearing?** |
| 124 | +- Restart Jekyll if you modify `_config*.yml` |
| 125 | +- Check if files are excluded in the config |
| 126 | +- Try without `--incremental` flag |
0 commit comments