πŸ“—
UpGrade Platform - Documentation
6.0
6.0
  • UpGrade Overview
  • Creating an Experiment
    • Unit of Assignment
    • Simple Experiment
    • Factorial Experiment
    • Inclusion and Exclusion
    • Schedule and Post-Rule
    • Exporting Experiment Data and Design
  • Creating a Feature Flag
  • How UpGrade Works
  • Researcher Guide
  • Developer Guide
    • ⚑Quick Start: Running UpGrade Locally with Docker
    • ⚑Quick Start: Running locally w/o Docker
    • UpGrade + AdapComp (Mooclet) in Docker
    • πŸšΆβ€β™€οΈWalkthroughs
      • Your Application and UpGrade
      • Example 1: A Quiz Web App
      • Example 2: An Online Math Game
    • πŸ“šReference
      • API
      • Client Libraries
        • TypeScript / JS
          • Class: UpgradeClient
          • Class: Assignment
          • SDK Interfaces
            • Interface: IMetric
            • Interface: IExperimentUser
            • Interface: IExperimentUserAliases
            • Interface: ILog
            • Interface: IMarkExperimentPoint
            • Interface: IMetric
            • Interface: IRequestOptions
            • Interface: IResponse
            • Interface: IUser
            • Interface: IUserGroup
      • Environment Variables
        • Frontend Environment
        • Backend Environment
      • Context Metadata
      • Metrics
      • Setting up Google-Auth
      • API Authorization
      • Data Architecture
    • πŸ‘¨β€πŸ’»Contributing Code
      • Branching Workflow (Git-Flow)
      • Pull Request Expectations
    • πŸ˜…Troubleshooting
      • Relation β€˜experiment_condition’ already exists
      • User not found. Authorization error
      • Token is not present in the request header
      • nodemon exits without explanation
      • Unable to find New Relic module configuration
      • No email received for export data
      • Opening a new tab in UpGrade prompts for re-authorization
      • Error: Cannot find module 'upgrade_types' (or a type from 'upgrade_types' does not exist)
  • Glossary
Powered by GitBook
On this page
  • Contribution Guidelines
  • 1. PR Branches are tied to well-defined Github Issues.
  • 2. PRs are small, focused, and complete.
  • 3. Code-Reviews for PRs should be initiated ASAP.
  1. Developer Guide
  2. Contributing Code

Pull Request Expectations

Contribution Guidelines

1. PR Branches are tied to well-defined Github Issues.

Ideally:

  • Most branches should be tied to ONE GitHub issue.

  • Therefore, GitHub issues must be well-defined:

    • Does it have a target release / priority?

    • Does it have a sufficiently narrow scope that it can be completed in one PR that a peer can read and review?

    • Does it have clear, testable requirements?

  • GitHub issues that are not well-defined should not be worked!

2. PRs are small, focused, and complete.

Ideally:

  • Most PRs should be tied to ONE Github issue.

  • The changes should be as small as possible, focused only on changes related to the linked issue, and 100% complete.

  • The changes should be reviewable; a peer can mostly read and understand the changes at a high level without running the code.

  • Work that has ballooned in scope should be discussed with team long before a PR goes up. This is either a symptom of poorly-defined github issues, or discovery of complexity that should warrant revisiting the issue.

  • PRs that contain work from unrelated/untracked issues or are too large/complex to be reviewable within 48 hrs may be rejected as unreviewable.

3. Code-Reviews for PRs should be initiated ASAP.

Ideally:

  • We should set up an expectation of code-review quickly, within 24 hrs, 48 hrs at most, and merge swiftly also if there's no changes to request.

  • It would be really annoying to ask for small PRs and then make people wait. They likely are depending on those changes and/or will move on to another task if they give up on us.

  • Anyone should feel OK to reject a PR if it is too complex or too large to review in any substantial way within 48 hrs, especially if we are very clear up front about PR expectations. No deliverables are worth blindly merging code.

PreviousBranching Workflow (Git-Flow)NextTroubleshooting
πŸ‘¨β€πŸ’»