Skip to content

Updating forked dependencies

Connor Ward edited this page Mar 23, 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 (see "rebase vs merge" below to know which instruction to use):
    $ git <rebase/merge> upstream/main
    
  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
    

git merge vs git rebase

TODO

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