Skip to content

Latest commit

 

History

History
157 lines (105 loc) · 4.39 KB

File metadata and controls

157 lines (105 loc) · 4.39 KB

Core Developer Setup

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.

Prerequisites

Complete all steps in CONTRIBUTING.md first.

Verification

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 -Detailed

For automation or scripted setup checks, add -PassThru to return structured dependency results instead of relying only on console output.

Additional Setup

1. Register with Services

GitHub

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.

GitHub SSH Key (Recommended)

For streamlined pushing and pulling, set up an SSH key:

  1. Generate an SSH key if you don't have one:

    ssh-keygen -t ed25519 -C "your_email@example.com"
  2. 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)
  3. Test the connection:

    ssh -T git@github.com
  4. Update your remote to use SSH:

    git remote set-url origin git@github.com:sillsdev/FieldWorks.git

2. Configure Git for the Project

Set Identity

git config user.name "Your Name"
git config user.email "your.github.id@users.noreply.github.com"

Configure Branch Tracking

Set up tracking for branches you'll be working on:

# Fetch all branches
git fetch --all

# Track the main branch
git checkout main

AI-Assisted PR Workflow

For core developers, the canonical AI-assisted path is now AI-Assisted PR Workflow.

Working with Branches

Branch Naming Conventions

  • feature/<name> - New features
  • bugfix/<issue-number>-<description> - Bug fixes
  • hotfix/<version> - Emergency fixes for released versions
  • release/<version> - Release preparation branches
  • main - Main development on the current or upcoming release

Creating Feature Branches

# Create a new feature branch from the default branch
git checkout main
git pull
git checkout -b feature/my-feature-name

Submitting Changes

  1. Push your branch to origin:

    git push -u origin feature/my-feature-name
  2. Create a Pull Request on GitHub

  3. Request review from team members

  4. 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.

Release Management

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

Troubleshooting

Permission Denied on Push

If you get "Permission denied" when pushing:

  1. Verify you have write access to the repository
  2. Check your SSH key is properly configured
  3. Ensure you're not pushing to a protected branch directly

Branch Not Found

If a branch you're looking for isn't available:

git fetch --all
git branch -a  # List all branches including remote

See Also