This document describes additional setup steps for core FieldWorks developers. Unless you are a core team member, you should follow the steps in CONTRIBUTING.md instead.
Note: Core developers have direct commit access to the main repository and additional responsibilities for code review and release management.
Complete all steps in CONTRIBUTING.md first.
Run these commands to verify your environment:
# Check Visual Studio
& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest
# Check Git
git --version
# Verify installer build prerequisites
.\Build\Agent\Setup-InstallerBuild.ps1 -ValidateOnly
# Compact dependency preflight summary
.\Build\Agent\Verify-FwDependencies.ps1
# Include optional Serena-related tools with detailed per-check output
.\Build\Agent\Verify-FwDependencies.ps1 -IncludeOptional -DetailedFor automation or scripted setup checks, add -PassThru to return structured dependency results instead of relying only on console output.
Ensure your GitHub account has the correct permissions:
- You should be a member of the sillsdev organization
- Request access to the FieldWorks repository with write permissions
Contact the team lead to request permissions if needed.
For streamlined pushing and pulling, set up an SSH key:
-
Generate an SSH key if you don't have one:
ssh-keygen -t ed25519 -C "your_email@example.com"
-
Add the key to your GitHub account:
- Go to GitHub → Settings → SSH and GPG keys → New SSH key
- Paste your public key (
~/.ssh/id_ed25519.pub)
-
Test the connection:
ssh -T git@github.com
-
Update your remote to use SSH:
git remote set-url origin git@github.com:sillsdev/FieldWorks.git
git config user.name "Your Name"
git config user.email "your.github.id@users.noreply.github.com"Set up tracking for branches you'll be working on:
# Fetch all branches
git fetch --all
# Track the main branch
git checkout mainFor core developers, the canonical AI-assisted path is now AI-Assisted PR Workflow.
feature/<name>- New featuresbugfix/<issue-number>-<description>- Bug fixeshotfix/<version>- Emergency fixes for released versionsrelease/<version>- Release preparation branchesmain- Main development on the current or upcoming release
# Create a new feature branch from the default branch
git checkout main
git pull
git checkout -b feature/my-feature-name-
Push your branch to origin:
git push -u origin feature/my-feature-name
-
Create a Pull Request on GitHub
-
Request review from team members
-
After approval and CI passes, merge the PR
See AI-Assisted PR Workflow for the canonical core-developer workflow, and Pull Request Workflow for the generic GitHub PR mechanics.
If you are a release manager, additional setup may be required. Contact the team lead for:
- Access to release automation scripts
- Build server access
- Installer signing certificates
If you get "Permission denied" when pushing:
- Verify you have write access to the repository
- Check your SSH key is properly configured
- Ensure you're not pushing to a protected branch directly
If a branch you're looking for isn't available:
git fetch --all
git branch -a # List all branches including remote- CONTRIBUTING.md - Basic setup for all contributors
- AI-Assisted PR Workflow - Canonical Jira-to-PR workflow for core developers using GitHub Copilot or Claude Code
- Pull Request Workflow - How to submit changes
- Release Process - Release workflow documentation