- Renames many example variables to align better with current OCCT naming/style conventions. - Updates documentation around deprecated 2D construction APIs, build options, resource paths, and environment variables. - Cleans up assorted wording, links, and outdated references across user guides, samples, and contributor docs.
5.9 KiB
Guide to using Git for OCCT development
@tableofcontents
@section occt_gitguide_1 Overview
@subsection occt_gitguide_1_1 Purpose
This document provides a practical introduction to Git for OCCT contributors. OCCT development is hosted on GitHub at https://github.com/Open-Cascade-SAS/OCCT.
For experienced Git users, sections 1 and 3 are sufficient to get started. Please also read the @ref occt_contribution__contribution_workflow "Contribution Workflow" for the overall process.
@subsection occt_gitguide_1_2 Repository URL
The official OCCT Git repository:
https://github.com/Open-Cascade-SAS/OCCT
Clone via HTTPS:
git clone https://github.com/Open-Cascade-SAS/OCCT.git
Or via SSH:
git clone git@github.com:Open-Cascade-SAS/OCCT.git
@subsection occt_gitguide_1_3 Repository Content
- master branch: the current development version. Official releases are marked by tags.
- IR branch: the weekly integration branch where contributions are merged after review and CI/CD checks.
- Topic branches for feature development, bug fixes, and improvements.
@subsection occt_gitguide_1_4 Quick Rules
- Configure your Git user name and email so that commits are properly attributed:
git config --global user.name "Your Full Name" git config --global user.email "your@email.com" - Create a fork of the repository and push your branches to your fork.
- Submit changes via Pull Requests (PRs).
- Branches that pass review and CI/CD checks are merged by maintainers (typically squashed into a single commit per PR).
@section occt_gitguide_2 Setting Up Git
@subsection occt_gitguide_2_1 Prerequisites
-
Install Git from https://git-scm.com/downloads
-
On Windows, Git for Windows is recommended, optionally with TortoiseGit for GUI support.
-
On Linux and macOS, use your system package manager or the Git packages recommended by your distribution.
-
Configure your identity before creating commits:
git config --global user.name "Your Full Name" git config --global user.email "your@email.com" -
On Windows, keep line endings predictable for cross-platform patches:
git config --global core.autocrlf true git config --global core.safecrlf true
If you use TortoiseGit or another graphical client, configure the same user name, email address, and SSH client in that tool.
@subsection occt_gitguide_2_2 Authentication
GitHub supports both HTTPS and SSH remotes. HTTPS is usually the simplest option for cloning and pushing through Git Credential Manager. SSH is convenient when you already use SSH keys:
ssh-keygen -t ed25519 -C "your@email.com"
Add the generated public key to your GitHub account, then check access with:
ssh -T git@github.com
@subsection occt_gitguide_2_3 Fork and Clone
-
Fork the repository on GitHub: click Fork at https://github.com/Open-Cascade-SAS/OCCT
-
Clone your fork:
git clone https://github.com/<your-github-username>/OCCT.git cd OCCT -
Add the upstream repository as a remote:
git remote add upstream https://github.com/Open-Cascade-SAS/OCCT.git
@section occt_gitguide_3 Development Workflow
@subsection occt_gitguide_3_1 Create a Branch
Always create branches from an up-to-date master:
git checkout master
git pull upstream master
git checkout -b my-feature-branch
Use any descriptive name for your branch (e.g., fix-empty-shape-crash, step-ap242-ed4).
@subsection occt_gitguide_3_2 Make Changes
Develop your change, following @ref occt_contribution__coding_rules "OCCT Coding Rules". Format your code using clang-format with the configuration provided in the repository.
@subsection occt_gitguide_3_3 Commit
Commit your changes with a meaningful message:
git add .
git commit -m "Modeling - Fix crash in BRepAlgoAPI_Fuse on null shapes"
The first line should follow the Group - Summary format (see @ref occt_contribution__contribution_workflow "Contribution Workflow").
Provide a detailed description in the commit body if needed.
@subsection occt_gitguide_3_4 Push and Create a Pull Request
Push your branch to your fork:
git push origin my-feature-branch
Then create a Pull Request on GitHub:
- Go to your fork on GitHub
- Click New Pull Request
- Set the base to
Open-Cascade-SAS/OCCT/IRand compare to your branch - Start with a Draft PR to indicate work in progress
- When ready, click Ready for Review
@subsection occt_gitguide_3_5 CI/CD and Review
The CI/CD pipeline runs automatically on every push:
- Build checks (Windows, Linux, macOS)
- Code style verification (clang-format)
- DRAW test suite
Results appear in the GitHub Actions tab of the PR.
A reviewer examines the changes and provides feedback as PR comments. Address feedback by pushing new commits to the same branch. CI/CD re-runs automatically.
@subsection occt_gitguide_3_6 Merge
Once approved and all checks pass, a maintainer merges the PR. PRs are typically squashed into a single commit on IR.
@subsection occt_gitguide_3_7 Keep Your Fork Updated
Regularly sync your fork with upstream:
git checkout master
git pull upstream master
git push origin master
@section occt_gitguide_4 Rebasing
If your branch falls behind IR, rebase it:
git checkout my-feature-branch
git pull --rebase upstream IR
If conflicts occur, resolve them manually, then:
git add .
git rebase --continue
After rebasing, force-push to your fork:
git push --force origin my-feature-branch
Note: Do not force-push if others are working on the same branch.
@section occt_gitguide_5 Cleanup
After your PR is merged, delete the local and remote branch:
git checkout IR
git branch -d my-feature-branch
git push origin --delete my-feature-branch
Regularly prune stale remote tracking branches:
git fetch --prune upstream