mirror of
https://github.com/dwinkler1/np.git
synced 2026-02-19 14:30:59 -05:00
Add comprehensive CI documentation to README files
Co-authored-by: dwinkler1 <22460147+dwinkler1@users.noreply.github.com>
This commit is contained in:
parent
cfccd9a010
commit
0514ba1283
2 changed files with 100 additions and 0 deletions
70
README.md
Normal file
70
README.md
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
# Nix Project Templates (np)
|
||||||
|
|
||||||
|
A collection of Nix flake templates for reproducible development environments.
|
||||||
|
|
||||||
|
## Templates
|
||||||
|
|
||||||
|
### RDE (Research Development Environment)
|
||||||
|
|
||||||
|
The default template for data science and research projects with support for R, Python, and Julia.
|
||||||
|
|
||||||
|
**Quick start:**
|
||||||
|
```bash
|
||||||
|
nix flake init -t github:dwinkler1/np#rde
|
||||||
|
nix develop
|
||||||
|
```
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- 🔬 Multi-language support (R, Python, Julia)
|
||||||
|
- 📦 Reproducible with Nix
|
||||||
|
- 🎨 Neovim-based IDE with LSP support
|
||||||
|
- 📊 Research-focused workflows
|
||||||
|
- 🔧 Modular and customizable
|
||||||
|
|
||||||
|
See [templates/rde/README.md](templates/rde/README.md) for full documentation.
|
||||||
|
|
||||||
|
## CI/CD
|
||||||
|
|
||||||
|
All templates are automatically tested to ensure functionality:
|
||||||
|
|
||||||
|
- **Build Tests**: Templates build successfully on Linux and macOS
|
||||||
|
- **Functionality Tests**: All commands and language support are verified
|
||||||
|
- **Configuration Tests**: Multiple configurations (R, Python, Julia) are tested
|
||||||
|
- **Automated Updates**: Dependencies are updated daily via automated PRs
|
||||||
|
|
||||||
|
### CI Workflows
|
||||||
|
|
||||||
|
- `.github/workflows/check.yml` - Comprehensive functionality tests (Ubuntu)
|
||||||
|
- `.github/workflows/check_macos.yml` - macOS compatibility tests
|
||||||
|
- `.github/workflows/update.yml` - Automated dependency updates
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. **Initialize a new project:**
|
||||||
|
```bash
|
||||||
|
nix flake init -t github:dwinkler1/np#rde
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Enter development environment:**
|
||||||
|
```bash
|
||||||
|
nix develop
|
||||||
|
# or with direnv
|
||||||
|
echo "use flake" > .envrc && direnv allow
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Start working:**
|
||||||
|
```bash
|
||||||
|
p-initProject # Create project structure
|
||||||
|
p # Launch Neovim
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! Please ensure:
|
||||||
|
- All templates pass CI tests
|
||||||
|
- Documentation is updated for new features
|
||||||
|
- Code follows existing patterns
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See [LICENSE](LICENSE) file for details.
|
||||||
|
|
@ -337,6 +337,36 @@ p-updateDeps
|
||||||
# Or check overlays/r.nix for package name
|
# Or check overlays/r.nix for package name
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## CI and Testing
|
||||||
|
|
||||||
|
This template is automatically tested on every change to ensure all functionality works correctly. The CI workflow (`.github/workflows/check.yml`) runs comprehensive tests including:
|
||||||
|
|
||||||
|
### Default Configuration Tests (R enabled)
|
||||||
|
- ✅ Template builds successfully
|
||||||
|
- ✅ Flake check passes
|
||||||
|
- ✅ Development shell enters without errors
|
||||||
|
- ✅ Neovim launches in headless mode
|
||||||
|
- ✅ R console is available and runs code
|
||||||
|
- ✅ Utility commands (initProject, updateDeps) are available
|
||||||
|
- ✅ Project structure creation works correctly
|
||||||
|
|
||||||
|
### Python Configuration Tests
|
||||||
|
- ✅ Template builds with Python enabled
|
||||||
|
- ✅ Python commands (p-py, p-ipy, p-initPython) are available
|
||||||
|
- ✅ Python interpreter launches and executes code
|
||||||
|
|
||||||
|
### Julia Configuration Tests
|
||||||
|
- ✅ Template builds with Julia enabled
|
||||||
|
- ✅ Julia commands (p-jl, p-initJl) are available
|
||||||
|
- ✅ Julia REPL launches and executes code
|
||||||
|
|
||||||
|
The CI runs on:
|
||||||
|
- Every push to template files (`.nix`, `.sh`, `.lua`, `flake.lock`)
|
||||||
|
- Every pull request affecting the template
|
||||||
|
- Manual dispatch for testing
|
||||||
|
|
||||||
|
This ensures that users can confidently use the template knowing that all advertised functionality has been verified.
|
||||||
|
|
||||||
## Related Documentation
|
## Related Documentation
|
||||||
|
|
||||||
- [REFACTORING.md](REFACTORING.md) - Technical details about the modular structure
|
- [REFACTORING.md](REFACTORING.md) - Technical details about the modular structure
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue