LogoLogo
HomeAbout usSign up
  • Introduction
  • AttentionSet
    • AttentionSet Best Practices
    • How to View AttentionSet for Others
    • How to Manually Change Attention
    • AttentionSet Chrome extension
    • Attention reasons
    • AttentionSet Slack Home Page
  • Releases
    • Getting Started with Releases
    • Concepts for Releases
      • Terminology for Releases
      • Two-step delivery
      • Rollbacks
      • Cherry-picks
      • Dogfood, Canary and Rollout
      • Release notes
    • How-to Guides for Releases
      • How to Create a Release Project
      • How to Configure Environments
      • How to Create a Scheduled Release
      • Create Custom Workflow Parameters
      • How to Manage Cherry-Picks
      • How to Resolve a Cherry-Pick Failure
      • Working with your CI / CD
        • GitHub Actions workflow
        • Buildkite workflow
    • API Reference for Releases
  • FlexReview
    • Getting Started with FlexReview
    • How to Onboard a Large Org
    • Concepts for FlexReview
      • Read-Only Mode in FlexReview
      • Recursive Ownership in FlexReview
      • Reviewer suggestion and assignment
      • FlexReview Teams and SLO Management
      • Validation in FlexReview
    • How-to Guides for FlexReview
      • How to Get a Reviewer Suggestion
      • How to Exclude Reviewers
      • How to Set Up Team Rules
      • Whitelist Teams for Review Assignment
      • Troubleshoot Reviewer Assignment
      • PagerDuty Integration for Reviewers
      • How to Set Up FlexReview Validation
      • Recommended Slack Notification Settings
      • How to Exclude OOO Reviewers
    • FlexReview Reference
      • Configuration
      • Slash commands
      • Expert scoring algorithms
      • Slack Notifications
      • Out of Office User Exclusion
    • FlexReview Roadmap
  • MergeQueue
    • Getting Started with MergeQueue
    • Merge Rules
    • How-to Guides for MergeQueue
      • How to Configure Base Branches
      • How to Customize Required Checks
      • How to Set Up Fast-Forwarding
      • How to Set Up Pre-Queue Conditions
      • How to Queue / Dequeue via API
      • Pause / Unpause Queues via API
      • Slash Commands Using GitHub Comments
      • How to Customize Sticky Comments
      • Require an Aviator Status Check
      • Backport a PR
      • How to Configure ChangeSets
      • Custom Integrations
        • GitHub Integration
      • How to Create Personal Access Tokens
      • How to Set Up SAML Configuration
        • Microsoft Active Directory
      • How to Merge Stacked PRs
      • How to Block Pull Request Mergeing with Slash Commands
    • Concepts for MergeQueue
      • Queue Modes
      • Pull Request Lifecycle
      • Analytics
      • Parallel Mode
      • CI Status Requirements
      • MQ Created Branches
      • Batching
      • Managing flaky tests
      • Fast-forwarding
      • Pre-Queue Conditions
      • Sticky Comments
      • Backporting
      • Paused Queues
      • Affected Targets
        • Directory-Based Affected Targets
        • nx based affected targets
        • GitHub Actions based Affected Targets
      • ChangeSets
        • Global CI Validation
        • ChangeSets FAQs
      • Priority Merges
        • Instant Merges
      • Merge Rules Audit Trail
      • Timeline
      • Ready Hook
      • Reduce Queue Failures From Staleness
    • MergeQueue References
      • Configuration Schema
      • Configuration Reference MergeQueue
      • GitHub Slash Commands
      • Status Codes
  • Stacked PRs CLI
    • Quickstart for Stacked PRs CLI
    • CLI Installation
    • How-to Guides for Stacked PRs CLI
      • How to Create Stacked PRs in CLI
      • How to Navigate & Modify Stacked PRs
      • Add Commits in the Stack
      • How Split a Commit in CLI
      • How to Split and Fold Pull Requests
      • How to Rename a Branch in CLI
      • How to Adopt a Branch in CLI
      • Orphan a Branch with Aviator CLI
      • How to Do Git Subcommand Aliasing
      • How to Create an Access Token
      • How to Set Up Auto Completion in CLI
      • How to Use Editor Plugins in CLI
    • Concepts for StackedPRs CLI
    • How to Rebase and Sync with GitHub
    • Configuration for StackedPRs CLI
    • Stacked PRs FAQs and Troubleshooting
      • Working with Aviator CLI
      • Default Branch Update Master to Main
    • Manpages for Stacked PRs CLI
      • av(1)
      • av-adopt Command Guide
      • av-auth-status(1) in CLI
      • av-stack-branch(1) in CLI
      • av-commit-create(1) in CL
      • av-stack-diff(1) in CLI
      • av-fetch(1) in CLI
      • av-git-interaction Command Guide
      • av-init(1) in CLI
      • av-stack-next(1) in CLI
      • av-orphan Command Guide
      • av-pr-status(1) in CLI
      • av-pr-create(1) in CLI
      • av-stack-prev(1) in CLI
      • av-stack-reorder(1) in CLI
      • av-reparent Command Guide
      • av-restack Command Guide
      • av-commit-split(1) in CLI
      • av-switch Command Guide
      • av-stack-sync(1) in CLI
      • av-stack-tidy(1) in CLI
      • av-stack-tree(1) in CLI
    • Aviator CLI Major Releases
      • Aviator CLI v0.1.0 Release Notes
  • Aviator's Chrome Extension
  • Pilot Automated Actions
    • Scheduled Events
    • JavaScript Execution
    • Pilot Automated Actions Reference
      • GitHub Reference
      • MergeQueue Reference
      • Slack Reference
  • API and Integrations
    • Slack Integration Guide
    • GraphQL API Quickstart
    • Prometheus Metrics Setup for GCP
    • Reference
      • JSON API
      • GraphQL
      • Webhooks
      • Monitoring Metrics
  • Manage
    • Access Management
    • GitHub App Permissions
    • Security
      • Aviator Agents Data Usage & Retention Policy
    • On-Premise Installation
      • GitHub App for On-Prem
      • GitHub OAuth for On-Prem
      • Use Helm Instructions
      • Use Docker Compose Instructions
      • Prometheus endpoint
      • Slack Integration for On-Premise
      • Google SSO Login for On-Prem
    • FAQs
      • Troubleshooting GitHub app connection
      • MergeQueue FAQs
      • Billing FAQs
Powered by GitBook
On this page
  • Aviator reports an pending status check with state "unknown"
  • Does each PR in the stack need to pass CI?
  • What happens if I use the GitHub merge button instead of Aviator to merge a stacked PR?
  • Why not just use feature branches?

Was this helpful?

  1. Stacked PRs CLI

Stacked PRs FAQs and Troubleshooting

FAQs and troubleshooting for Aviator StackedPRs CLI, av cli.

PreviousConfiguration for StackedPRs CLINextWorking with Aviator CLI

Last updated 10 months ago

Was this helpful?

If you have a question or issue that's not answered below, feel free to reach out to us at .

Aviator reports an pending status check with state "unknown"

This usually indicates that MergeQueue is configured to require a particular status check before merging a PR, but your pull request hasn't executed that check because your repository is configured to only run checks for pull requests that target your repository default branch (e.g., main or master). This happens because PRs in a stack (other than the first) do not explicitly target the default branch.

If using GitHub actions, make sure your workflow configuration (.github/workflows/<name>.yml) is set to run the check on all branches.

# Sample configuration, adapt accordingly
on:
  pull_request:
    branches:
    - "*"

Does each PR in the stack need to pass CI?

Yes. Aviator will refuse to merge a stack that has a failing PR within it.

One common strategy to make incremental changes easier is the use of feature flags. This allows your work to be incorporated into your codebase even before it’s ready for public consumption, reducing the chance for merge conflicts and keeping your feature branches up to date. For example, your first PR might look something like this:

# Only set to True during development
ENABLE_AUTOMATIC_CAT_GIFS = False

def greet_user(user):
    ...
    if ENABLE_AUTOMATIC_CAT_GIFS:
        send_sms(user.phone_number, "<gif of an adorable cat>")

What happens if I use the GitHub merge button instead of Aviator to merge a stacked PR?

Using the GitHub merge button merges the PR where the button is clicked into its base branch. In the case of stacked PRs, this means you might be merging PR #2 into PR #1, which is generally not what's desired.

Why not just use feature branches?

Feature branches involve dedicating a branch for a given feature. Instead of making PRs to the base branch of the repository, PRs are made into the feature branch. When the feature is complete, the feature branch can then be merged into the base branch.

Stacked PRs enables engineers to be more productive, especially when using trunk based development. While it’s possible for stacks to drift out of date with the main branch, this is less of an issue since stacks are usually smaller in size and shorter lived than feature branches, and Aviator helps you keep your stacks up to date with the main branch.

While this works great for some teams and projects, feature branches (especially those that are relatively long lived) run the risk of drifting out of sync with the main branch. When it comes time to merge the feature branch into the main branch, there’s a much greater chance for conflicts — either explicit merge conflicts or more subtle semantic conflicts (e.g., unexpected interactions between two components). Many teams and organizations now use a method known as which helps solve some of these issues.

support@aviator.co
trunk based development