User:Callahanp: Difference between revisions

Jump to navigation Jump to search
Line 19: Line 19:
=== Development Operations ===
=== Development Operations ===


I am making an effort to define and give detailed examples of development operations for various parts of Flightgear Code and Data including all SourceForge Git repositories, Scenery, Aircraft, Aircraft Hangars, Airport Data. Add-Ons and anything else that can be used with Flightgear.  This will include items that fall under the FlightGear SourceForge project, and other projects that do not.
I am making an effort to define and give detailed examples of development file and repository operations for various parts of Flightgear Code and Data including all SourceForge Git repositories, Scenery, Aircraft, Aircraft Hangars, Airport Data. Add-Ons and anything else that can be used with Flightgear.  This will include items that fall under the FlightGear SourceForge project, and other projects that do not.
 
This Page will be organized not around specific kinds of development, but around the development operations common to all of them.  Operations include obtaining source materials, preparatory steps, ongoing operational readiness tasks, building, modifying, debugging, testing, and submitting changes.  I'll explain further and give examples of the individual operations needed to accomplish these tasks for all types of FlightGear material, whether source code or data, regardless of the type of file or where it's upstream repository resides.   
This Page will be organized not around specific kinds of development, but around the development operations common to all of them.  Operations include obtaining source materials, preparatory steps, ongoing operational readiness tasks, building, modifying, debugging, testing, and submitting changes.  I'll explain further and give examples of the individual operations needed to accomplish these tasks for all types of FlightGear material, whether source code or data, regardless of the type of file or where it's upstream repository resides.   


When finished, this guide is intended to be comprehensive.  If you participate in the development of anything used with or within flightgear, with few exceptions, you'll be able to find information on specific commands and procedures needed to complete the listed operational tasks.  It's currently under rapid development, with attention focused currently on correctly obtaining source materials for C & C++ programming of the main application.  Where expansion is needed to cover other types of materials, we'll make notes at the end of the section.
When finished, this guide is intended to be comprehensive up to a point.  If you participate in the development of anything used with or within flightgear, with few exceptions, you'll be able to find information on specific commands and procedures needed to complete the listed operational tasks.  We'll leave to other pages, specifics of the internals of working on files of different types, and the kinds of edits and additions that should be made within a file. and focus on the environments that support the actual work to be done and on the resulting files, giving their types, and generally describing contents, without going into details. 
 
The page is currently under rapid development, with attention focused currently on correctly obtaining source materials for C & C++ programming of the main application.  Where expansion is needed to cover other types of materials, we'll add a note soliciting your input on what should be said.


Here are a few examples of the Operations of each type:
Here are a few examples of the Operations of each type:
Line 42: Line 45:
| Debugging || <li>Using the GDB debugger in command line mode </li><li>Using the GDB debugger in an IDE</li>-
| Debugging || <li>Using the GDB debugger in command line mode </li><li>Using the GDB debugger in an IDE</li>-
|-
|-
| Testing || <li> Writing, Executing or Debugging CPPUnit tests</li><li>Checking the position of a new building by viewing it in Flightgear from several angles </li>
| Automated Testing || <li> Writing, Executing or Debugging CPPUnit tests</li><li>Checking the position of a new building by viewing it in Flightgear from several angles </li>
|-
|-
| Submitting changes || <li>Doing a git push to a personal fork for a branch created for a specific set of changes </li>Creating a merge request for changes present on a personal fork.<li></li>
| Submitting changes || <li>Doing a git push to a personal fork for a branch created for a specific set of changes </li>Creating a merge request for changes present on a personal fork.<li></li>
|}
|}


==== Obtaining Source Materials ====
=== Development Operation Targets ===
 
Each of the operation categories listed above applies to a number of separate parts of the Flightgear PuzzleA few of these parts together make up the basic application and are treated togetherOthers can be treated as if they were optional add-ons to the development process, even if the item itself is vital to the operation of the basic application.
FlightGear related Source Materials may be hosted in a number of different servicesDepending on the exact material, you may be working with files from the FlightGear Project on SourceForge, other SourceForge projects, projects from GitHub, GitLab or other SCM repository serviceYou may be dealing with data that originates in other Simulation Projects, or with code from supporting libraries such as Open Scene Graph.
 
Quite a lot of the source materials for the flightgear application are maintained as repositories on SourceForge.  [https://sourceforge.net/p/flightgear/_list/git Complete FlightGear SourceForge Repository List].  Two of these Repositories are no longer used: FGCom and FGRun.  These repositories are obsolete because their functional parts have been included within FlightGear.
 
These four Source Forge repositories make up the core Flightgear Application


{| class="wikitable"
|-
! Target Executable !! Description !! Source Materials
|-
| FlightGear  || This executable is the simulator || Three Sourceforge FlightGear Git Repositories:
* [https://sourceforge.net/p/flightgear/fgdata/ fgdata]
* [https://sourceforge.net/p/flightgear/fgdata/ fgdata]
* [https://sourceforge.net/p/flightgear/simgear/ simgear]  
* [https://sourceforge.net/p/flightgear/simgear/ simgear]  
* [https://sourceforge.net/p/flightgear/flightgear/ flightgear]  
* [https://sourceforge.net/p/flightgear/flightgear/ flightgear]  
* [https://sourceforge.net/p/flightgear/fgmeta/ fgmeta]  
|-
| FlightGear CPPUnit Tests  || This executable is build separately and can be executed to run all of the CPPUnit based tests at once || Two Sourceforge FlightGear Git Repositories.  They're the same as are used for the main executable above.
* [https://sourceforge.net/p/flightgear/fgdata/ fgdata]
* [https://sourceforge.net/p/flightgear/simgear/ simgear]
|-
| Build Systems || There are several ways to build executable programs including but not limited fg_from_scratch, download_and_compile.sh, custom scripts ||
* [https://sourceforge.net/p/flightgear/fgmeta/ SourceForge Flightgear git fgmeta]  
* [https://sourceforge.net/p/flightgear/windows-3rd-party/ SourceForge Flightgear git windows-3rd-party] This special purpose repository is used when building flightgear on Windows by users who prefer to use pre-built pre-requisite packages.
|-
| OpenRadar || Example ||
* [https://sourceforge.net/p/flightgear/openradar/ SourceForge Flightgear git openradar]
|-
| Flight Gear's Flight Manual || It's called Get Start || * [https://sourceforge.net/p/flightgear/getstart/ getstart]
|-
| Scenery || Example ||
* [https://sourceforge.net/p/flightgear/terragear/ SourceForge Flightgear git terragear]
* [https://sourceforge.net/p/flightgear/terrafs/ SourceForge Flightgear git terrafs]
|-
| Multiplayer Map || Example ||
* [https://sourceforge.net/p/flightgear/mpmap.js/ SourceForge Flightgear git mpmap]
|-
| Pipeline? || Example ||
* [https://sourceforge.net/p/flightgear/pipeline/ SourceForge Flightgear git pipeline]
|-
| Navigation Data || Example || Example
* [https://sourceforge.net/p/flightgear/navdata/ SourceForge Flightgear git navdata]
|-
| Airport Data || Example || Example
*
|-
| Mac Launcher || Example ||
* [https://sourceforge.net/p/flightgear/maclauncher/ SourceForge Flightgear git maclauncher]
 
|-
| Open Street Maps (OSM) || Example || Example
|-
| Open Scene Graph || Example || Example
|-
| C172P Skyhawk || The C172P-Team produces the C172P used in Flightgear as the default Aircraft.  A copy of the Aircraft's files is included by the Flightgear project in the SourceForge FlightGear FGData repository||See [https://github.com/c172p-team/c172p C172P-team Github Repository]
|-
| Add-On 1 || Example || Example
|-
| Add-On 2 || Example || Example
|-
| Add-On 3 || Example || Example
|-
| Plib || Example || Example
|}


This special purpose repository is used when building flightgear on Windows by users who prefer to use pre-built pre-requisite packages.
==== Obtaining Source Materials ====
 
FlightGear related Source Materials may be hosted in a number of different services.  Depending on the exact material, you may be working with files from the FlightGear Project on SourceForge, other SourceForge projects, projects from GitHub, GitLab or other SCM repository service.  You may be dealing with data that originates in other Simulation Projects, or with code from supporting libraries such as Open Scene Graph.


* [https://sourceforge.net/p/flightgear/windows-3rd-party/ windows-3rd-party]  
Quite a lot of the source materials for the flightgear application are maintained as repositories on SourceForge.  [https://sourceforge.net/p/flightgear/_list/git Complete FlightGear SourceForge Repository List].  Two of these Repositories are no longer used: FGCom and FGRun.  These repositories are obsolete because their functional parts have been included within FlightGear.


These additional SourceForge repositories are for items such as a manual, web services used with flightgear, and addtional data that is separately downloaded by the running application.
The rest are documented in the section above.
* [https://sourceforge.net/p/flightgear/getstart/ getstart]
* [https://sourceforge.net/p/flightgear/maclauncher/ maclauncher]
* [https://sourceforge.net/p/flightgear/openradar/ openradar]
* [https://sourceforge.net/p/flightgear/sceneryweb/ sceneryweb]
* [https://sourceforge.net/p/flightgear/terragear/ terragear]
* [https://sourceforge.net/p/flightgear/terrafs/ terrafs]
* [https://sourceforge.net/p/flightgear/navdata/ navdata]
* [https://sourceforge.net/p/flightgear/pipeline/ pipeline]
* [https://sourceforge.net/p/flightgear/mpmap.js/ mpmap]


==== Part 1 - Creating a Sourceforge Fork ====
==== Part 1 - Creating a Sourceforge Fork ====
936

edits

Navigation menu