FGAddon

From FlightGear wiki
Revision as of 13:49, 19 September 2015 by Bugman (talk | contribs) (Created a new section in preparation for an expansion of the aircraft development instructions.)
Jump to navigation Jump to search
This article is a stub. You can help the wiki by expanding it.


FGAddon (also fgaddon) is a repository, hosted at SourceForge.net, for extra, optional aircraft. These are aircraft that are not part of the base package. The aircraft that are included in the base package are still kept in fgdata (Git) repository. For users, this means that they can checkout only wanted aircraft, instead of downloading all the aircraft at once. For developers, this means that the base-package is lighter to sync for new contributors and is easier to maintain when a new release is built.

Cquote1.png the goal here is to almost get rid of a centralised aircraft repo anyway, and have a decentralised development system with the only central point being the aircraft package manager for end users. Then 99% of people never care where the aircraft is stored while it’s developed.
Cquote2.png

Status (12/2014)

Cquote1.png As we discussed previously, with help from Curt, I've setup the SVN repo who will happily receive our aircraft.

The new SVN repo is named "FGAddon", because the content of the repo is *optional* for FlightGear.
http://sourceforge.net/p/flightgear/fgaddon

Right now I would like that every people enjoying commit access on fgdata repo creates an account on sourceforge.org
Then tell me your username (ideally the same than on gitorious.org) that way I can give required commit access to the fgaddon repo.

The repo is ready to receive aircraft in the dedicated Aircraft directory
http://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Aircraft/


Cquote2.png
Cquote1.png FGAddon repository is awake !

Write permission have been granted to people who already sent me their SF (SourceForge) username.

For those who usually maintain aircraft here is some guidance:

About fgdata/Aircraft I would handle the cleanup during the next feature freeze (December 17th)
it would leave us enough time to be sure that FGAddon is on the good way.


Cquote2.png
Cquote1.png I hope to receive lot of sourceforge.org username to add in fgaddon commiter list
Cquote2.png
Cquote1.png there still some aircraft developer/maintainer who didn't send me their SF username.

Please take some minutes to sign up account on sourceforge.net then tell me your username for commit rights in FGAddon.

@aircraft developer/maintainer: you must *stop* to commit your change in fgdata
We have switched to SVN since some days and future change must go in this new SVN repo

I know, all of this has been already said previously (certainly with different words)
but moving from FGData to FGAddon is an important step
so I would be sure that all people concerned understood what is happening.


Cquote2.png

Background

The Git/SVN repositories are intended more for developers, DIYers and people wanting to jump ahead and see the newest features. Most "average" users won't need to worry about which repository the aircraft are coming from.

Cquote1.png Some months ago, here, I asked to people to contact me in private in order to get commit access to the FGAddon repository.
— Clement de l'Hamaide (2014-12-16). Re: [Flightgear-devel] Wrong commits in FGAddon repository.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png This is really important - we have had recurring issues with non-coders using CVS, Git and now Svn without thinking about the results. None of these systems are like Dropbox or and FTP server, and what you do with them has long-term consequences and potentially even implications for support the projects receives. I.e if we abuse the severs we get kicked off.
Cquote2.png
Cquote1.png I’m glad Clement is ensuring the quality of commits to the SVN repository is high, because unfortunately the Git repository suffered from that very badly. And in all these systems, there is often no ‘undo’ - once things are done, they are done forever, or require days of careful planning to make safe corrections.
Cquote2.png

Todo

Cquote1.png We may wish to filter which

aircraft are packaged and distributed with each new release. That would
require some thought and discussion and work to make an effective filter
system, but it might be the direction we could ultimately go with.


Cquote2.png
Cquote1.png when someone contact me to get commit access to FGAddon I usually send him some instructions about 'what to do' or 'what to not do' and 'how to do'.
— Clement de l'Hamaide (2014-12-16). Re: [Flightgear-devel] Wrong commits in FGAddon repository.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png One thing we need to do is document this up-front (on the Wiki I guess), since it hasn’t changed from CVS or Git days either. In the beginning you had to convince Curt to get CVS access, then you had to convince any of the Git admins (me, Anders, Torsten, Clement, Curt, etc) - and now it’s basically the same group for SVN.
Cquote2.png
Cquote1.png Even though the full history of the aircraft were not migrated over to the

new svn fgaddon repository, the original git repository still remains.
After our 3.4 release branch is created, we will take steps to shrink the
fgdata git repository as well. *BUT* do not fear because we will preserve
the current git repository as it is (and any one who has ever cloned the
fgdata git repository has the entire history themselves already.) So
perhaps it will involve a few extra steps to investigate past aircraft
development history (and be slightly less convenient), but the past history
will still be available for anyone who wishes to review it. This may not
be a fully satisfactory answer for everyone, but there will still be a way
to examine the complete history of an aircraft in cases where it is
required.

Hopefully the times where we need to address changes to abandoned aircraft
will be rare and special and we can figure out how to address some of these
odd situations on a case by case basis.


— Curtis Olson (2014-11-15). Re: [Flightgear-devel] Write access policy for Subversion.
(powered by Instant-Cquotes)
Cquote2.png

Obtaining Access

Cquote1.png About "how I decide who can or can't contribute" it's as simple as this: when someone contact me, I'm looking at who is this person, is it a long term contributor ? is it an active forum member ?
— Clement de l'Hamaide (2014-12-16). Re: [Flightgear-devel] Wrong commits in FGAddon repository.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png If he is not a long term contributor but an active forum member - "active" mean: a user who is member for long time (more than 3 months) and someone who posted more than 100 posts - I'm checking that this person is aware of how works FlightGear (by reading his posts) and his spirit (it's easy to know if someone is on the same wave or not by reading his posts) is in accordance with the FG spirit (I'm contributing to FlightGear and discussing with long term core dev since more than 4 years now so I can say that I know what is the spirit of FG)
— Clement de l'Hamaide (2014-12-16). Re: [Flightgear-devel] Wrong commits in FGAddon repository.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png Also, I'm not the only one person who can give commit access, I give "admin" access to the FGAddon repo to 4 persons (Curt, Anders, Gijs, Torsten) so you can be sure that the FGAddon repo is not 'only in my hand' but also in the hand of other persons.
— Clement de l'Hamaide (2014-12-16). Re: [Flightgear-devel] Wrong commits in FGAddon repository.
(powered by Instant-Cquotes)
Cquote2.png

Using FGAddon

Users

The following was taken from Aircraft are now hosted on SVN

Step 1: Preparation

Step 2: Get aircraft

Pick an aircraft (in this example the DR400-dauphin):

svn co https://svn.code.sf.net/p/flightgear/fgaddon/trunk/Aircraft/DR400-dauphin

If you prefer to get all aircraft from the repo, use the following command. Beware that this means a huge download! Hundreds of aircrafts will be downloaded.

svn checkout svn://svn.code.sf.net/p/flightgear/fgaddon/trunk flightgear-fgaddon

Regularly

You can regularly pick the last update using this command:

svn up


Aircraft development

Using git with FGAddon (by Hooray)

Cquote1.png On a related note: for the aircraft maintainers that do like to work with

git it is not that hard to connect a per-aircraft git repository
(either your own or one split of from fgdata.git using the wiki
instructions) with the FGAddon SVN using the git-svn gateway.


— Anders Gidenstam (2014-11-15). Re: [Flightgear-devel] Write access policy for Subversion.
(powered by Instant-Cquotes)
Cquote2.png

The following description assumes you already have a single-aircraft git repository for your aircraft. It also describes a somewhat more complicated pull/push to SVN than necessary that I use since I want my private development history to be unaffected by whatever strangeness that may happen in fgdata/FGAddon.

Step 1

Setup git-svn to FGAddon in your per-aircraft repository:

% git svn init 
svn+ssh://<user>@svn.code.sf.net/p/flightgear/fgaddon/trunk/Aircraft/<aircraft>;

Step 2

Fetch its current state from FGAddon/SVN:

% git svn fetch

Step 3

The downloaded SVN history is in the remote branch remotes/git-svn. To commit changes to SVN you need a local branch that tracks this remote branch. Create a local FGAddon branch that you will use to commit updates. You could use this branch as your new master branch, but I would do this since the branch used to pull/push from/to SVN will be rebased on SVN updates and gets ugly SVN user names etc. in the commits. However, point 4. below would be much shorter if you do all your development on the SVN interface branch.

% git branch fgaddon remotes/git-svn

Step 4

When you have committed new stuff on your master branch that you want to push to FGAddon, you checkout your FGAddon branch:

% git checkout FGAddon

Update it from SVN in case someone else has touched your aircraft in the FGAddon SVN.

% git svn rebase

Cherry-pick your new stuff from master to FGAddon:

% git cherry-pick <commit id>

Commit the local commits on your FGAddon branch to the FGAddon SVN:

% git svn dcommit

Checkout your master branch again for local development:

% git checkout master

Step 5

To get changes from upstream you can either just download them with

% git svn fetch

or download them and rebase your FGAddon branch onto them:

% git checkout FGAddon
% git svn rebase

If you keep your local master separate from FGAddon you would need to cherry-pick upstream updates you want to your master branch. These days I always use git-svn rather than the ordinary SVN tools when working with SVN repositories. It is just so much nicer to me.