FGDATA next with submodules

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

FGDATA next with submodules

Postby IAHM-COL » Sat Sep 12, 2015 8:47 pm

Hi ALL

The Modular FGDATA for test purposes is completely uploaded now.
I call this the "TEST 2" because is not quite a fork yet. It is more an snapshot of the fgdata on version 3.5.0 as it stood on Feb*05*2015

See more details above of my request for a conversation on the future of storing aircraft in FG, but I animously invite everyone to test ride this method using the test FGDATA provided: Here are the basic guidelines

1. Required:
A git software, ideally version 1.8 or more for having all functionality with submodules. Examples below are for the command line (or the git-bash) that comes with your git software. Using GUI versions all this must be possible, but I had not tested it

2. Initial FGDATA cloning.
This is done equally as the current FGDATA git is cloned. But there is a twist.
  1. Current mainstream FGDATA: Its a huge repository that will bring all together a collection of about 485 aircraft. It brings down the complete suit and may take a significant time. Depending on your connection speed of course
  2. This Testing FGDATA; Its a modular repository. Cloning brings down ONLY what is known as the "BASE PACKAGE". It includes all folders and directories complete, as they stood on the snapshot taken for the example. BUT, in the Aircraft folder, it only includes 21 base folders, which includes the few initial aircraft of every "base packaged" Flightgear. The C172p, the F14, The 777, the B1900d, the UFO, are among this download aircraft. Bringing this base package creates a functionally complete flightgear, without the burning on downloading 469 additional aircraft in the first shot. It significantly reduces the "downloading time"

Code: Select all

$ git clone http://git.code.sf.net/p/fgdata/submodules fgdata-submodules


2. Installing new Aircraft

As I mentioned, this FGDATA is modular, and the cloning did not bring all aircraft. To bring an aircraft, its submodule needs to be initialized. Then the initialized modules updated.

Code: Select all

$ git submodule init Aircraft/707
$ git submodule update


Such code will initialize your repo to also have the amazing lake of constanze 707. then by updating it, it brings the aircraft to your local repo of FGDATA
You can initialize as many aircraft as wanted. No limit. All Initialized submodu2. Initial FGDATA cloning. les are updated with the single update command simmultaneously!

(one can make a bash script to initialize multiple aircraft, or so)


3. NAH! I want 469 additional aircraft to the less command approach.

Well again, there is a nice feature: submodule init without parameters will initialize all submodules in a shot

Code: Select all

$ git submodule init
$ git submodule update

or
$git submodule update --init
for an abbreviated form that initializes and updates the whole package


4. Uninstalling modules

For the end user, after you initialize an Aircraft, the GIT proper way of ditching it out is:

Code: Select all

$ git submodule deinit Aircraft/707
$git submodule update

(Why would someone do that goes beyond my understanding but oh well... this is for test purposes rite?!)

Having an option of deinstalling submodules is a cool advantage to reduce the size of one own's fgdata repo that is not that easy in the monolithic current approach.

Also

Code: Select all

$ git submodule deinit   .   #there is a point at the end there!
$git submodule update


Will actually very efficiently get you back to the basic package!

5. Forewarning
This repository is currently just a test frame for a possible implementation of modularity in the FGDATA git.
DO NOT USE for a main installation, and reffer to the official channel in https://gitorious.org/fg/fgdata/source/ ... 32dcff9727: for reliability purposes!!

The most important thing to note, is that the test fgdata is currently just an snapshot of version 3.5.0 an Feb*05*2015, not a real fork. So that FGDATA lacks all branches, and previous history of the official channel. And in addition, remote cannot be properly redirected to be able to fetch from the official one (just yet!)

The only way to use the FGDATA provided in this test with an actual flightgear installation is to
1. change the file version to the proper string, example from 3.5.0 to 3.3.0
2. point your fglauncher to the FGDATA obtained here (with fgrun, fgx, or the command line --fg-root option)
3. I tested this FGDATA with FG 3.2, 3.3 and 3.5, and it workd. I tested it with FG 2.12 and it did not, logging in creating nav data infinetely

6. This method of fetching FGDATA
Maintains a reduced size of the base package in the repository.
Submodules initialized do not effectively increase the size of a repo, with the exception of a few lines of code in .gitmodule and .git/config lines

So, it accomplishes the main goal of reducing FGDATA size, but maintains aircraft development in an git state
Furthermore, Git submodules can point to ANY repo, so these could be even pointing to aircraft repositories in development by any FG member, in any place, as much as they agree with conform with GPL.

7. Give it a test ride to the test :D

There is lots of red-tags concerns online about modules, but I think they are actually quite fit for the FGDATA part of fligthgear project. And a very powerful mode we could actually get to manage and develop our aircraft.
Every Aircraft in a submodule is effectively a git somewhere else, and that somewhere else can be developed on its own.
The FGDATA is actually just having a pointer to a certain commit on the development tree of such aircraft. This can be move to a different commit later, but it has the advantage that if a given plane is being developed, assuming no-one destroys the "history" of that plane, the status of such plane in FGDATA is the same until the commit pointed to is updated!.

A major suggestion is to never "develop" a submodule inside the main tree (FGDATA). Instead having an independent "development clone". So FGDATA does not get "mess up" with changes in its tree. Things may need to be figured out in more detail, but in general terms, I think, we can practice and experience with this test frame I created.

Furthermore, I am currently trying to rescue the "git history" of each individualized aircraft; figuring out the filter-branch option Anders has kindly pointed me too ....

Best to all
IHCOL
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Sat Sep 12, 2015 8:48 pm

FGDATA NEXT now functional for FG 3.4.1! :D

[PS NOTE: FG dev cores will be releasing the 3.4.1 version soon, for which this FGDATA version applies. It had not been released yet. Thanks to R. Palmer for pointing that out ]

Thanks to the work by James Turner over the weekend, FGDATA next now contains a released tag for FG 3.4.1

This is outstanding news!

Now, we also have available the released tag for FGDATA next with submodules, allowing the use of this git repository to checkout the aircraft on the historical release, and thus bring the FGDATA next with submodules to any user of flightgear on the last release (3.4.1) or, as we had been using it, on the development branch (3.5)



Why is this important?

As some already know, gitorious currently host FGDATA for the current version 3.4, but gitorious is leaving the market of repository hosts. with FGDATA host in gitorious (a monolithic 28GB repo), one could clone fgdata with all the aircraft that belonged to the official FG distribution.
A new host had been stablished (sourceforge), and FGDATA has been separated of its longly contained Aircraft in the
Aircraft directory.

Current clones of FGDATA (next) from sourceforge will provide a "aircraft-less" directory for FG root; while the aircraft are being hosted and developed in an independent subversion repository.

Starting today, users of FG3.4 can take advantage of the work hosted in FGMEMBERs, and the FGDATA next with submodules to obtain a complete and modular FGDATA with all aircraft existent in FGDATA on the release date (JAN17-2015), including those exclusively existing in the SVN repository at that date.

Having the ability of restoring a complete and inclusive FGDATA is the largest advantage that this new tagged release provides to FG users on the current released version (3.4.1)

http://sourceforge.net/p/fgdata/submodu ... next/tree/
Image

What does "released-tag" means?

A released tag is a frozen state of previous development, usually on an "stable" status.
Non-developers usually experience and enjoy the stability of tagged releases, while developers surf the waves of the development branches.

A tagged release will not usually receive updates or new changes, increasing the stability of the features, and users tipically wait for the following release to fast-forward all exciting new features produced during those development waves --without suffering the consequences of the bleeding edge.

All FG aircrafts hosted in FGMEMBERS and belonging to this release had also been tagged on the last commit before Jan 17 2015, as FG3.4; These aircraft are the stable releases of the FG aircraft corresponding to the FG release 3.4.1, and expected to be fully functional with the release.

FGDATA next with submodules, release/3.4.0, effectively obtains any initialized submodule on the status pointed by the FG3.4 release, bringing the stability back to the end user

Example:
https://github.com/FGMEMBERS/f16 => Development branch FG3.5. Some features are not functional for FG3.4.1
https://github.com/FGMEMBERS/f16/releases => FG3.4 released. Functional on the last stable release!

I am an end-user with FG 3.4.1 installed. How can I use FGDATA next with submodules to recover the aircrafts?


Once you installed FG 3.4.1; you had obtained a copy of fgdata that only contains 2 aircraft (ufo and c172p), and some generic required folders.
Your software points to that directory with the flag --fg-root (which can be set in any launcher or the command line).

With the use of any git software, you can obtain FGDATA next with submodules release/3.4.0, and replace (redirectioning your software) to the newly obtained FGDATA

The important point here is that you MUST clone the tagged release, instead of the repository itself!
This is done with the "--single-branch" switch of the git clone command.
And specifying the branch in respect, with --branch <branchname> switch.

Cloning the released tag: For users of FG3.4.1 to obtain FGDATA next with submodules 3.4 Release


In the command line (of git) the following command does the job (Note this command is just a modification of git clone to specify the particular target)

Code: Select all

git clone http://git.code.sf.net/p/fgdata/submodules --branch release/3.4.0-submodules --single-branch


Once the clone is complete you had obtained a directory (fgdata) that works for FG 3.4.1
It contains all aircrafts in the FG3.4 release as submodules, and thus they are not downloaded to your repository yet!

Obtaining an Aircraft

To obtain an aircraft, apply the technique described above for intializing and updating any submodule,
example

Code: Select all

cd fgdata #enter the repository
git submodule init Aircraft/Citation #initialize a submodule
git submodule update   #update the submodules initialized


This effectively installs the Citation Bravo!
Note that after the release of 3.4, works by Chris Blues and Ludovic Brenta are occurred to further develop this aircraft into FG 3.6. But the steps above brings the Aircraft exactly as its status on FG 3.4, therefore no breakage or lack of stability occurs

Is it possible to test newer features with the stable release?
It is posible to test how does the aircraft works with the stable release. But no guarantee can be offered about compatibility!

In any case, try-it-out

Code: Select all

cd Aircraft/Citation #enter the aircraft directory
git checkout master  #test the master branch of this aircraft
git pull # get the latest progress on the master branch


That 's it. The master branch immediately brings you to the latest advances in the Citation. Launch Flightgear and hopefully the work is not terribly incompatible with FG 3.4.1

Oh! oh! This plane new advances do not work for FG 3.4.1


Well. When the S%%T hits the prop:

Code: Select all

cd fdgata ##enter the root of the repo again. You may require going down levels!
git submodule update ##Update the repo, means, bring it back to the stable release!


I want to uninstall an aircraft?

One other of the advantages of the submodule repository is that it allows the "deinitializing" or uninstallation of any aircraft obtained. Reducing your local hard-drive burden, and keeping your repo in a diet (only the aircrafts you care about)

Code: Select all

cd fgdata
git submodule deinit Aircraft/Citation


This step will de-initialize the Citation, meaning effectively reducing the repository and removing all code of this aircraft. Only the directory remains, but is an empty directory that serves the purpose of a pointer when you want to re-install :D

Can I get all aircraft

Yes. All FG3.4 aircraft.
Many additional aircraft had been added to FGDATA, that never reached Official Status, for x or y reason. But this additions occurred on the development branch FG 3.5, so they won't be available as an stable release until FG 3.6

But for many (481) aircrafts, this is luckily not the case. So you can get all FG 3.4 stable aircraft in a few commands (after you cloned the tagged release,as indicated above)


Code: Select all

git submodule init  # init without indicating a submodule, effectively means "all submodules"
git submodule update  #this will take a while. It is "several-coffees" time


When these commands finish, your new FG 3.4.1 FG installation, now will not only be blazing new, but also stable and contain all of the Aircrafts, FG is well known for.

A last word


Remember a released tag is an stable state of development. the typical command

Code: Select all

git pull


Will have no effect, and basically should reply consistently "Already up to date"
Meaning, nothing changed in the released tag.

Have fun, and enjoy this wonderful software, now, again, with all the aircraft we grew to love

Best,
IH-COL

PS:

For those wondering. The FGADDON subversion repository only holds bleeding edge aircraft, and cannot be used with stable releases.
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Thu Sep 24, 2015 7:47 pm

FGDATA next with submodules updated!

Now with many new changes to several aircrafts, and editions to Torsten's Phi :)
It follows SVN revision 920 (updated today)

Update your repository as follow

Code: Select all

git pull
git submodule update


This will update your FGDATA and then update any aircraft you have initialized

Have fun!

IH-COL
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Fri Oct 02, 2015 4:01 am

FGDATA next with submodules updated!

Now with many new changes to several aircrafts; It follows SVN revision 951 (updated today)

Update your repository as follow

Code: Select all

git pull
git submodule update


This will update your FGDATA and then update any aircraft you have initialized

Have fun!

IH-COL
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
legoboyvdlp
Posts: 1757
Joined: Mon Sep 14, 2015 9:49 pm
Location: Venezuela

Re: FGDATA next with submodules

Postby legoboyvdlp » Fri Oct 02, 2015 3:42 pm

For some reason, FlightGear opens with "wong version of flightgear error" and will not let me fly!
Darn.
It says I have 3.5.0 data, but I have 3.7.0 program.
So, what the heck is wrong?
So, in your last commit you changed 3.7.0 to 3.5.0?
Why?

I WANT TO FLY!!!!

Meanwhile I will change my local version file to 3.7.0
~~Legoboyvdlp~~
Maiquetia / Venezuela Custom Scenery
Hallo! Ich bin Jonathan.
Hey!
Avatar created by InSapphoWeTrust CC BY-SA 2.0, https://commons.wikimedia.org/w/index.p ... d=27409879

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Fri Oct 02, 2015 5:20 pm

yes. Thanks.
My mistake
I just fixed it

git pull again

IH-COL
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Thu Apr 28, 2016 11:57 pm

FGDATA next with submodules updated

* Several New Aircraft
* SVN updated to revision 1793

Have fun

IH-COL
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
legoboyvdlp
Posts: 1757
Joined: Mon Sep 14, 2015 9:49 pm
Location: Venezuela

Re: FGDATA next with submodules

Postby legoboyvdlp » Fri Apr 29, 2016 12:59 am

Hurrah!

Thanks ;)
~~Legoboyvdlp~~
Maiquetia / Venezuela Custom Scenery
Hallo! Ich bin Jonathan.
Hey!
Avatar created by InSapphoWeTrust CC BY-SA 2.0, https://commons.wikimedia.org/w/index.p ... d=27409879

User avatar
IAHM-COL
Posts: 6455
Joined: Sat Sep 12, 2015 3:43 pm
Location: Homey, NV (KXTA) - U.S.A
Contact:

Re: FGDATA next with submodules

Postby IAHM-COL » Fri Apr 29, 2016 1:06 am

yeah! it includes now the A340 :D
https://raw.githubusercontent.com/IAHM-COL/gpg-pubkey/master/pubkey.asc

R.M.S.
If we gave everybody in the World free software today, but we failed to teach them about the four freedoms, five years from now, would they still have it?

User avatar
legoboyvdlp
Posts: 1757
Joined: Mon Sep 14, 2015 9:49 pm
Location: Venezuela

Re: FGDATA next with submodules

Postby legoboyvdlp » Fri Apr 29, 2016 1:25 am

Oh, nice :D

And soon the -500 :)
~~Legoboyvdlp~~
Maiquetia / Venezuela Custom Scenery
Hallo! Ich bin Jonathan.
Hey!
Avatar created by InSapphoWeTrust CC BY-SA 2.0, https://commons.wikimedia.org/w/index.p ... d=27409879


Return to “FGMEMBERS”

Who is online

Users browsing this forum: No registered users and 10 guests