-
Notifications
You must be signed in to change notification settings - Fork 40
F Prime and FPP Tandem Development
In some cases a change to FPP requires a change to F Prime, or vice versa. For example:
-
Some code generation may be added to FPP, and it may rely on a new header file in F Prime.
-
Some framework interface may change in F Prime, and this may require changes to the FPP code generation.
Hereafter we will call this situation F Prime and FPP tandem development.
In the past, we have sometimes handled F Prime and FPP tandem development by
allowing fpp/main
to get out of sync with fprime/devel
and using a different branch
(usually a development branch on some developer’s fork of nasa/fprime
)
to run the code generation tests in FPP.
As more developers work on FPP, we should avoid this situation.
We should try to keep
fpp/main
in sync with fprime/devel
at all times
except during brief periods where we are merging approved pull requests.
Here is the procedure we will use going forward for F Prime and FPP tandem development:
-
In
nasa/fpp
, create a branch B off offpp/main
. -
Review and approve pull requests to B with the FPP changes.
-
Merge the head of
fpp/main
into B, but do not merge B intofpp/main
. -
When the changes to B are ready for delivery
-
Create an alpha release R against B
-
Make a pull request to
nasa/fprime/devel
that updatesrequirements.txt
to point to R and that makes the corresponding changes to F Prime.
-
-
Review and merge the pull request to F Prime
-
Merge R into
fpp/main
. -
Delete R.
If we follow this procedure, then every FPP developer will have a guarantee
that merging fpp/main
into a development branch will not break any
testing they do against fprime/devel
, except perhaps during a brief
period between steps 5 and 6 above.
Note: This is the same procedure that we have been using for integrating FPP features developed on feature branches, e.g., FPP state machines and external parameters. The new part is to use this procedure for all FPP and F Prime tandem development.
Under this procedure, if you are starting on F Prime and FPP
tandem development, you should not make a pull request to fpp/main
.
Instead, you should work with the FPP maintainers to create
the branch B before you start development, and you should
make pull requests to B.
In some cases, you can use an existing branch B;
for example, you may want to contribute changes to
an existing feature branch.