Skip to content

Updating forked dependencies

Connor Ward edited this page Mar 29, 2023 · 8 revisions

Motivation

Firedrake maintains forks of some of its dependencies (e.g. PETSc). This is so we can control the release schedule and protect users from breaking upstream changes whilst also be able to use the latest versions of these projects if we require specific changes.

Process

These forked repositories should be updated every few months using the following steps:

Prerequisites

  1. Have appropriate permissions to be able to push to the forked repository.
  2. git clone a local copy of the forked repository.
  3. Add the upstream repository as an extra git remote:
    $ git remote add upstream <upstream URL>
    

Steps

  1. Make sure that the right branch is checked out and up-to-date (we assume throughout that this branch is called firedrake):
    $ git checkout firedrake
    $ git pull
    
  2. Update the upstream remote:
    $ git fetch upstream
    
  3. Update the local branch:
    $ git merge upstream/main
    
    Note that git merge should be used here instead of git rebase to avoid rewriting the commit history and breaking firedrake-update.
  4. Create, checkout and push a new branch that is identical to the current one:
    $ git checkout -b <github username>/upstream-update
    $ git push -u origin <github username>/upstream-update
    
  5. Check that the Firedrake test suite passes using this branch following these instructions.
  6. Checkout and push the updated branch:
    $ git checkout firedrake
    $ git push
    

Home

Building locally
Tips

Install Frequently Asked Questions

Running on HPC

Users

Developers Notes

Minutes and agenda of Firedrake meetings


Policies and procedures

Gravity wave scaling

Merge Complex Sprint

Reading Group

Firedrake 2021 Planning Meetings
Clone this wiki locally