Skip to content

Contributing

Eric Slutz edited this page Jun 24, 2026 · 3 revisions

Contributing

PumpSync changes should preserve the repository boundary, privacy model, and route contract.

Before You Start

  • Read Architecture.
  • Check whether the change belongs in the iOS repository, backend repository, or both.
  • Keep changes narrowly scoped.
  • Use the source repository docs as implementation authority and this wiki as the shared project documentation hub.

Repository Rules

For eslutz/PumpSync:

  • Keep the repo frontend-only.
  • Do not add backend API projects, Dockerfiles, container publishing, Azure Bicep, backend deploy workflows, or data deletion CLI code.
  • Update project.yml for schemes, configurations, API base URLs, entitlements, and Info.plist values.
  • Regenerate with xcodegen generate after project changes.
  • Keep user-facing support/settings/privacy copy plain-language and avoid exposing low-value internal metadata.

For eslutz/PumpSync-Backend:

  • Keep backend API, storage, Docker/Compose, Azure Container Apps, GHCR image policy, workflows, and data deletion tooling in the backend repo.
  • Preserve /api/v1/... as the backend route contract.
  • Keep hosted service, self-hosting, and synthetic demo on the same API/contracts/services/normalization path.
  • Do not persist Tandem credentials, Tandem tokens, raw Tandem events, or normalized health samples.

Validation Expectations

A strong PR includes:

  • A clear summary of what changed and why.
  • The focused tests run locally.
  • Any broader iOS/backend validation run for cross-repo behavior.
  • Any physical-device or hosted smoke validation that could not be run.
  • Documentation updates in the source repo and wiki when behavior, setup, operations, or privacy posture changes.

Recommended iOS validation:

xcodegen generate
xcodebuild test -project PumpSync.xcodeproj -scheme PumpSync -destination 'platform=iOS Simulator,name=iPhone 17,OS=latest'
git diff --check

Recommended backend validation:

dotnet restore PumpSync.Backend.slnx
dotnet build PumpSync.Backend.slnx --configuration Release
dotnet test PumpSync.Backend.slnx --configuration Release
docker build -t pumpsync-backend:local .
az bicep build --file infra/bicep/main.bicep
az bicep build --file infra/bicep/main.subscription.bicep
git diff --check

Documentation

Keep this wiki current when project behavior changes. Keep detailed implementation and operational runbooks in the owning source repository, then link to them from the relevant wiki page.

Important source docs:

Clone this wiki locally