-
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 in which 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
. For example, B can be a branch keyed to a specific FPP feature or a specific alpha release number. -
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 B into
fpp/main
. -
Delete B.
If we follow this procedure, then all FPP developers 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.
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.