fprime icon indicating copy to clipboard operation
fprime copied to clipboard

Create a GitHub template `fprime-starter-project`

Open ThibFrgsGmz opened this issue 2 years ago • 1 comments

F´ Version none
Affected Component none


Feature Description

It would be interesting to create a boilerplate project with "GitHub Template": fprime-starter-project.

This project would follow best practices for rapid implementation with F' in a minimalist deployment.

The idea would be to have a project as empty as possible where main() does nothing (or increments a counter).

In terms of philosophy, this would be the same as the following projects:

Rationale

  1. This takes advantage of the "Template" feature of GitHub.

From this GitHub template, anyone can start with it to build their own deployment little by little.

Implementation tutorials could start from it and the trainer could add features little by little.

  1. There are several ways to implement F' :
  • The [fprime-sphinx] method (https://github.com/fprime-community/fprime-sphinx)
  • The [fprime-arduino] method (https://github.com/fprime-community/fprime-arduino)

Where the OS/Drv/... layers are either in the same folder or in separate repositories. It is not obvious which layout is better.

This would also serve as a reference for the Setup Deployment phase of the reference development practices.

  1. When a project starts, the user logically starts from Ref and empties it, then adds his own components to be more in control of his topology.

ThibFrgsGmz avatar Jun 27 '22 16:06 ThibFrgsGmz

@pelmini take a look here. I think your "emptied out Ref" goal is a good starting place, and we can adjust from there.

@ThibFrgsGmz we'll look into this!

LeStarch avatar Jun 27 '22 23:06 LeStarch

I've yet to test it, but @SterlingPeet also made a cookiecutter template for generating a project scaffold https://github.com/SterlingPeet/cookiecutter-fprime-component

capsulecorplab avatar Oct 27 '22 05:10 capsulecorplab

That one is the component, there is a companion deployment template.  I have not created a full GitHub project template, but that’s actually a good idea that I should consider.

By the way, both of my templates are for F Prime 2.0, more specifically pre-FPP.  I have those updates on the drawing board but not started yet.

Sterling Peet

Sent from my mobile.

On Oct 27, 2022, at 1:04 AM, Sean Marquez @.***> wrote:



I've yet to test it, but @SterlingPeethttps://github.com/SterlingPeet also made a cookiecutter template for generating a project scaffold https://github.com/SterlingPeet/cookiecutter-fprime-component

— Reply to this email directly, view it on GitHubhttps://github.com/nasa/fprime/issues/1529#issuecomment-1293002253, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAO7KVVJGDV7MLR5PHHFS53WFIEPFANCNFSM5Z6RTNDQ. You are receiving this because you were mentioned.Message ID: @.***>

SterlingPeet avatar Oct 27 '22 13:10 SterlingPeet

FYI - we plan on adding a new fprime-util new --deployment and fprime-util new --project that will accomplish, I think, the same goal as what this issue was trying to accomplish. Allowing users to very quickly and easily generate a blank deployment, or even project (with fprime/ and a blank deployment). I will start work on that very soon, will be tracked in https://github.com/nasa/fprime/issues/1926

Does that sound good to everyone? Any feedback on this proposed new feature? cc: @ThibFrgsGmz @SterlingPeet

thomas-bc avatar Mar 16 '23 23:03 thomas-bc

fprime-util new is now able to bootstrap an entire project, generating the project structure, a basic deployment, and components. See https://github.com/nasa/fprime/issues/1961 for more details. This will be available in the coming release, and we will also release a new HelloWorld tutorial that walks new users through using these commands to set up a basic project fast and easily. Closing this issue as I believe this addresses the need that was originally stated.

thomas-bc avatar Apr 17 '23 22:04 thomas-bc