we are using the each dev having own sandbox with svn & force.com ide method of team development outlined here (http://www.soliantconsulting.com/blog/2013/03/working-forcecom-ide-and-subversion-svn).

This works pretty well, some hiccups, but the biggest problem is spinning up a new developer. The problem we have is lots of chicken-egg problems with uploading to the server. The server complains one file is needed to compile the other and the other is needed to compile the other.

For example we have a ProjectTabs.page - page which has all our tabs, and it references about 6 pages as links for the tabs. Each of those pages includes the ProjectTabs page, so neither of them compile. If I comment out the tabs page, then save them to the server, then un-comment them, it works. But this is a hassle.

I saw this similar question How to avoid circular dependancy and understand how salesforce compiles classes but didnt really see a good answer there.

In watching this video https://www.youtube.com/watch?v=HmzppTJg6N8 it seems that some of the folks are using the ant migration tool to setup new environments. I can give this a try, but wanted to see if it would solve the circular dependency problem, or if I need to change the code.

  • Update - I tried the ant migration tool, it seems to suffer from the same problems, so somehow I need to figure how to to either order this or push it without validation... – Joelio Jul 29 '13 at 18:03
  • If you deploy all dependencies in one package, the ant migration tool definitely works. I definitely recommend using ant for setting up new developers and deploying your code. – jkraybill Jul 31 '13 at 1:10
  • Your are right, it does seem to handle it, I had other issues that were preventing me from getting that far, wahoo, finally! If you want to put as answer I will give you credit. I am still interested in solving the ide issues, but way lower priority now. – Joelio Jul 31 '13 at 21:02
up vote 1 down vote accepted

As mentioned in my comment, as long as all dependencies are deployed in a single transaction (i.e. a single package.xml), the metadata API handles this gracefully and the ant migration tool definitely works. Circular dependencies are not a problem.

Ant is my general tool of choice for the type of development environment you've described, I would recommend using it.

It seems that your pages are very tightly coupled now. Apex stops on the first error and so you are running to a circular dependancy. To avoid this, 1. Try to use a template for all your pages and try to see if you can avoid the projecttab page referred on all pages. 2. Check on the apex classes level and try to use parent class to move all common code to it. 3. If you have a lot of class variables referred in other classes, try to use lazy loading and see if you can use the classes inside methods at run time rather than hardcoding them as class variables. Please click like or answer if my answer solves your problem. Buyan

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.