Git-based projects provide a full CodeSync experience for your code by using Git and a Git service provider of your choice. Integrated CodeSync technology ensures that all the common Git workflows, like committing, pushing changes, and more, are available to you natively within workspaces launched in Git-based projects. This makes it easy for you to engage in version controlled, code-based collaboration with fellow project team members, all from within Domino. Git-based projects also organize your projects' assets as either Code, Data, or Artifacts, an organizational structure intended to support common data science workflows.
If you want to use a private Git repository to store your code, then you must add the corresponding Git credentials in your Domino account settings prior to creating your project. After adding credentials, you’ll be able to easily create a Git-based project in Domino, thereby enabling CodeSync experience.
If you want to use a public Git repository to store your code, then you won’t need to add any Git credentials.
-
Click Projects in the navigation pane and then click New Project.
-
In the Create New Project window, enter a name for your project.
-
Set your project’s visibility.
-
Under “Code Repository”, select “Git (beta)”.
-
Under “Git Repository”, enter the URL of the Git repository that you’ll be using for your project.
ImportantIf the repository you’re using to store your code contains one or more files exceeding 2 GB in size, then Domino will create your Git-based project but will not use the repository for your project. Please note that your Git service provider may also impose size limits on individual files.
You can use the following tool to check the total size of a Git repository, as well as the size of individual files within the repository: git sizer.
-
Under “Git Credentials”, select the credentials associated with the Git repository your project will use. If the repository is public, then you won’t need to enter any credentials.
-
Under “Git Service Provider”, select your Git service provider.
-
Click Create Project.
-
Select the Create new repository option under Repository.
-
Select the Owner/Organization associated with the repository, its visibility, and specify the name for the new repository.
In Domino, the Domino File System (DFS) is the traditional way of storing a project’s assets. DFS-based projects organize all of your project’s assets as either Data or Files. Git-based projects, however, organize your project’s assets as either Code, Data, or Artifacts, and apply CodeSync experience to Code assets.
Code – This section of your Git-based project organizes and lists all of the Git-based repositories used to store your project’s code, as well as any additional imported repositories. For more information, see Git repositories in Domino. Files within any of these repositories can be accessed from within a Domino workspace via CodeSync technology.
The common Git workflows, like committing, pushing, pulling, and more, are available to you when interacting with your code from within a Domino workspace. For more information, see Using Git in your workspace.
- Data
-
Similar to DFS projects, this section of your Git-based project organizes and lists all data sources used in your project, including Domino datasets, external data volumes, and dataset scratch spaces. For more information about how to use data with your project, see the Domino datasets documentation.
- Artifacts
-
Git-based projects introduce “Artifacts”. Artifacts are typically results or products from your research and analysis, like plots, charts, serialized models, and more. You can organize these outputs in this section, as well as import artifacts from other projects.
A Domino workspace is an interactive session where you can conduct research, analyze data, train models, and more.
Directory structure
Git-based projects with CodeSync use a different directory structure in workspaces than DFS-based projects. The directory structure is shown below.
The default working directory for your code is /mnt/code
.
/mnt │ ├── /code # Git repository and default working directory │ ├── /data │ │ # Project Datasets │ ├── /{dataset-name} # latest version of dataset │ ├── /{dataset-name-out} │ │ │ │ # Dataset Scratch Space │ └── /scratch │ │ # Project Artifacts ├── /artifacts │ │ # External mounted volumes ├── /{external-volume-name} │ └── /imported │ # Imported Git Repos ├── /code │ └── /{imported-repo-name} │ ├── /data │ │ # Mounted Shared Datasets │ └── /{shared-dataset-name} # contains contents of latest snapshot unless otherwise specified by yaml │ │ # Imported Project Artifacts └── /artifacts └── /{imported-project-name}
Work with artifacts in your workspace
Important
| All files in Artifacts are saved exclusively to the Domino File System (DFS). If you do not want to save a particular asset to the Domino File System, we recommend that you do not save it as an artifact. To learn more, see Syncing your work to Domino. |
Artifacts are results from your research, like plots, charts, serialized models, and more. In Domino, you can save these results in the Artifacts section of your project.
Saving artifacts and pushing changes
-
Click File Changes in the navigation pane of your workspace.
-
Under Artifacts, view changes by expanding File Changes.
-
Enter a commit message.
-
Click Sync to Domino. Domino will save your artifacts to the Domino File System (DFS).
Pull changes
-
Click the File Changes option in the sidebar menu of your workspace.
-
Under the “Artifacts” section, click Pull. Domino will pull the latest changes into your workspace.
Warning
| If you run a job in a Git-based project, CodeSync ensures that only artifacts will be automatically synced and saved to the Domino File System (DFS). Code, on the other hand, will not be automatically synced/pushed to the Git repository being used for the Git-based project. This is intentional and intended to support the "Code", "Data", and "Artifacts" workflow. To learn more, see running jobs. |