| name | domino-projects |
| description | Work with Domino Projects including Git integration, DFS vs Git-based projects, collaboration, and version control. Covers project creation, Git provider setup (GitHub, GitLab, Bitbucket), branch management, collaborator permissions, and project settings. Use when creating projects, setting up Git repos, or managing team collaboration. |
Domino Projects and Git Skill
Description
This skill helps users work with Domino Projects - including project creation, Git integration, version control, and collaboration features.
Activation
Activate this skill when users want to:
- Create or configure a Domino project
- Set up Git integration
- Understand DFS vs Git-based projects
- Collaborate with team members
- Manage project settings and permissions
Project Types
Git-Based Projects
- Code stored in external Git provider (GitHub, GitLab, Bitbucket)
- Full Git workflow support
- Better for teams familiar with Git
- Access to Git provider features (PRs, issues)
Domino File System (DFS) Projects
- Code stored in Domino's internal file system
- Automatic versioning (Git under the hood)
- Simpler for users unfamiliar with Git
- Good for research and experimentation
Creating a Project
Via Domino UI
- Click New Project
- Enter project name
- Select project type:
- Git-based: Connect to Git repository
- DFS: Use Domino File System
- Configure settings
- Click Create
Via Python SDK
from domino import Domino
domino = Domino()
project = domino.project_create(
project_name="my-project",
owner_name="your-username"
)
print(f"Project ID: {project['id']}")
Git-Based Projects
Connecting to Git Repository
- Create project as Git-based
- Enter repository URL
- Configure authentication:
- SSH Key: Add SSH public key to Git provider
- HTTPS: Use personal access token
Git Credentials
https://username:token@github.com/org/repo.git
Working with Git in Workspaces
Sync Changes
Click Sync in workspace to push changes:
- Domino commits changes
- Pushes to configured branch
- Updates project state
Manual Git Commands
git status
git add .
git commit -m "Update model training"
git push origin main
git pull origin main
IDE Git Integration
- VS Code: Use Source Control panel
- JupyterLab: Use Git extension
- RStudio: Use Git pane
Branch Management
git checkout -b feature/new-model
git add .
git commit -m "Add new model"
git push origin feature/new-model
git checkout main
Multi-Repository Support
Domino supports multiple Git repositories per project:
- Go to Project Settings > Repositories
- Add additional repositories
- Configure mount paths
- Enable/disable per execution
from shared_lib import utils
DFS Projects
How DFS Works
- Files stored in Domino-managed Git
- Automatic commits on sync
- Version history tracked
- Simplified workflow
Sync Files
- Work in workspace
- Click Sync when ready
- Enter commit message
- Files pushed to Domino
View History
- Go to Files in project
- Click History
- View all commits
- Restore previous versions
Project Structure
Recommended Structure
project/
├── README.md # Project documentation
├── requirements.txt # Python dependencies
├── data/ # Local data (small files)
├── src/ # Source code
│ ├── train.py
│ ├── evaluate.py
│ └── utils.py
├── notebooks/ # Jupyter notebooks
│ └── exploration.ipynb
└── tests/ # Unit tests
└── test_model.py
Special Paths
/mnt/code/: Project files
/mnt/data/: Domino Datasets
/mnt/artifacts/: Output artifacts
/mnt/imported/: Imported project files
Collaboration
Project Roles
| Role | Permissions |
|---|
| Owner | Full control, delete project |
| Admin | Manage members, settings |
| Contributor | Edit files, run executions |
| Launcher User | Run launchers only |
| Results Consumer | View results only |
Adding Collaborators
- Go to Project Settings > Access
- Click Add Collaborator
- Search for user
- Assign role
- Click Add
Sharing Projects
- Private: Only invited users
- Organization: All org members can view
- Public: Anyone in Domino instance
Project Settings
Environment
Set default compute environment:
- Go to Project Settings > Environment
- Select default environment
- Optionally allow overrides
Hardware Tier
Set default resources:
- Go to Project Settings > Hardware Tier
- Select default tier
- Set GPU preferences
Environment Variables
Add project-level variables:
API_KEY=your-api-key
MODEL_VERSION=v2.0
DEBUG=false
Access in code:
import os
api_key = os.environ.get('API_KEY')
Importing/Exporting Projects
Import Project
- Click New Project
- Select Import
- Choose source:
- Git repository
- ZIP file
- Another Domino project
Export Project
domino download project-owner/project-name
Fork Project
- Go to project page
- Click Fork
- Creates copy in your account
Reproducibility
Execution Records
Every execution tracked:
- Exact code version
- Environment used
- Hardware tier
- Inputs/outputs
- Start/end times
Reproduce Past Execution
- Go to Jobs or Workspaces
- Find execution to reproduce
- Click Reproduce
- Creates workspace with same settings
Environment Locking
Lock environment to specific revision:
domino.project_update(
project_name="my-project",
environment_id="env-specific-revision"
)
Best Practices
1. Use Git for Code
Keep code in version control for:
- Change tracking
- Code reviews
- Collaboration
- Rollback capability
2. Separate Code and Data
- Code: Git repository
- Large data: Domino Datasets
- Artifacts:
/mnt/artifacts/
3. Document Projects
Include README with:
- Project purpose
- Setup instructions
- How to run
- Dependencies
4. Use Environments
Don't install packages ad-hoc; use:
- Dockerfile instructions
- requirements.txt
- Environment configuration
5. Regular Commits
git commit -m "Add data preprocessing step"
git commit -m "Fix model evaluation bug"
Troubleshooting
Git Authentication Failed
- Verify credentials in Domino account settings
- Check token hasn't expired
- Ensure repository access permissions
Sync Conflicts
git pull origin main
git status
git add .
git commit -m "Resolve conflicts"
Files Not Appearing
- Check file is in correct path
- Verify sync completed
- Refresh browser
Documentation Reference