I've got a FuelPHP project that I started back in November. I'm trying to update everything to the 1.6/develop branch. When I created my project, I setup a bare repository on a server to act as my origin repo. I then cloned FuelPHP into a local directory by doing the following:
// set line 104 of the config file to the correct timezone
$git add .
$git commit -m "Initial commit"
I've been able to update all of my submodules (core, auth, email, oil, orm, parser, and a few others that I've added), however, when I try to load my application, I'm getting "Composer is not installed. Please run "php composer.phar update" in the root to install Composer".
I read here that my "app" is out of date. I'm missing files such as composer.json and likely have an outdated bootstrap and index file. Actually, I have a composer.json file in my app directory, but it is related to a vendor package that I loaded, not FuelPHP.
I used this tutorial in setting up the repository. My question is, what have I done wrong, setup or otherwise? How do I update the "app"?
The root repository (fuel/fuel) has a version too, and should be updated to 1.6/develop, same as will all the other repositories.
How you go about that depends on your situation.
If you haven't switched your origin, run 'git branch' to see what your current branch is. Then do 'git checkout 1.6/develop', and 'gil pull' to update it. After it has been updated, do a 'git merge <your-old-branch>' to merge your app and other changes into 1.6/develop.
If you have switched to your own git server, you can add an upstream remote using 'git remote add upstream git://github.com/fuel/fuel.git', then do 'git pull upstream 1.6/develop' to pull the 1.6 changes in.
Be prepared for (quite) a few merge errors, which you'll have to correct manually.
p.s. for future reference, it's one of the reasons I have (virtually) no code in app, all code lives in modules. If nothing in app has changed, merging is a breeze...
The setup for 2.0 will be different, app will be a separate repository, to fix merge issues like this.
I've already updated all of the submodules, and adding the additional "upstream" repo seems to want to rewrite everything, including all of the submodules which have already been updated. Is there a way to ignore the submodules? Would it be easier to update everything manually?
I can't judge that. It depends on what you've done, and what your merge skills are.
The fuel/fuel doesn't contain many files, so manually is an option. Think about: public/index.php fuel/app/bootstrap.php everthing in the installation root (oil, composer files)
I used bbdiff to manually update the necessary files not in submodules. Everything is working fine in my local development environment. I've committed the changes and pushed to the bare repo on my server. However, when others `git pull` into their local dev environments, the submodule are not updated. Does everybody working on the project need to manually switch submodule branches and pull?
You need to update the submodule references in your "main" app repository, for others to pull these in automatically.
You do that by going into the submodule repo's (for example fuel/core), do a 'git checkout <branch>', and a 'git pull'. Once you've done this, the submodule references show up as updated in your main "app" repository. Commit and push these changed references, and others can pull them in and update submodules.