function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
AidenAiden 

Best practices for ISV Builds

There is some great documentation on best practices for Enterprise Developers. 

 

I'm working on a product that we're releasing for sale on App Exchange. Our engineers have done a ton of software development on different platforms in the past, but never for Salesforce.

 

In more traditional systems, we'd check code changes into SVN or other repository, and then use a build system such as Hudson to kick off an official nightly build. We know that the build is clean and reproducable - all build content came from SVN.

 

In Salesforce, from what I can see, solid SVN integration is available via the Force .COM IDE in Eclipse. However, this appears to typically take a secondary role for comparing diffs across different file versions rather than acting as the master in a build process. Is this correct?

 

Are there best practices in build automation that we should be aware off? How ISVs typically ensure a reproducible release process?

Best Answer chosen by Admin (Salesforce Developers) 
EnthEnth

There's some good articles on using Cruise Control to automate your CI build. However, as you realise, the master of the code is actually the DE in which your code sits. Sure you can use SVN to track the versions. and use 3rd party tools to review the SVN changes etc, but ultimately the copy of code from which your package is built is the one on the Salesforce server, not the one in your repository.

 

There's some tricks to getting Cruise Control working, look out for BobBuzzard in the forums he's done this before. 

All Answers

EnthEnth

There's some good articles on using Cruise Control to automate your CI build. However, as you realise, the master of the code is actually the DE in which your code sits. Sure you can use SVN to track the versions. and use 3rd party tools to review the SVN changes etc, but ultimately the copy of code from which your package is built is the one on the Salesforce server, not the one in your repository.

 

There's some tricks to getting Cruise Control working, look out for BobBuzzard in the forums he's done this before. 

This was selected as the best answer
AidenAiden

Thank you! The reference to cruise control was enough to get me going. I found the following documentation based on a search for this;

 

http://wiki.developerforce.com/index.php/Continuous_Integration_Cruise_Control_and_Force_Com