- This topic has 1 reply, 2 voices, and was last updated 12 years ago by sdc-support.
-
AuthorPosts
-
tzmanMemberOur company develops custom software for our customers. We can develop several applications for each customer.
We use Accurev as our SCM tool and make heavy use of their code branching mechanism. Some applications can span multiple SCM repositories and branches but are developed under a single Eclipse workspace with multiple projects.
Our development environment is global across all projects, although versioned. It consists of Ant and Ivy as well as some custom ant tasks and launcher. Each project defines their own version of Ant and the JDK used by their project. These are defined in a properties file and picked up by our build environment. All available versions of Ant and the JDK are pushed to developer PC’s nightly. This process is mainly used for continuous integration builds and releases. Developers run deploys and dependency retrieval from the build environment and use MyEclipse for everything else.
Each application is generally split into at least 2 eclipse projects.
A “core” or service centered project containing EJBs, Data access (Hibernate) and business objects.
A “ui” or web project containing the ui code (facelets, JSF and seam).Developers generally code in 1 or 2 different branches at any given time. We would like to make use of shared project configurations and looking for input as to the best approach. Currently we are taking a great deal of time to bring a new developer up to speed or setting up the same project under a new branch.
It would be nice to create an installer, using the SDC private label server, that contains the project configuration files as well as MyEclipse Pro 10.6. The problem is how to define which branch the install is for. Can this be made to dynamically list the current branches and automatically create the SCM workspace and the Eclipse workspace with configured projects?
I believe another approach would be to use the Pulse Explorer and set up the projects this way. I’m not completely sure what this would look like.
Can anyone provide any suggestions on the best way to use these tools for our situation?
Thanks for your time.
sdc-supportMemberThat’s quite the detailed question! Let’s see if we can break it down a bit, first off, you absolutely can use SDC to drop down all your custom workspaces including having the right set of software and workspace settings delivered via it. At a fundamental level, you could use SDC to potentially replace some of the steps you are currently performing manually such as ensuring developers are on the right version of Ant and JDK. Certainly it is not required to adjust how you push down some of this software, but if desired, you certainly could avoid maintenance on your side and let SDC handle this for you.
In essence, a package in SDC is defining similar to what you are doing with your properties file — it allows you to define everything down to things like the target platform, JDK version, etc. and make sure the Eclipse / MyEclipse environment is running with the right software. Regarding branches and version control, the most common way we accomplish this is via team project set files. Such as for CVS, the team project file can contain the branch and SDC will automatically apply the change ensuring that the projects are on the right branch. If Accurev is compatible with this, you can immediately start with this out of the box. That said, certain source code providers are not always friendly with team project sets and for those, we let you have custom workspace tasks. If you look at the example in this forum around target platform tasks, you can define a new properties file extension and have a little bit of glue code around the Accurev APIs to make sure the workspace has projects from the right branches.
Each night, you could (if desired) automatically push out a new set of configurations and have those rolled out to teams — that said, SDC will automatically update users about the changes so no need to do it nightly, you could save the updates to be performed only when there are actually interesting changes. SDC will help you keep track of this.
Ultimately the objective of providing a single turnkey installer that instantiates the full environment and workspace would be enabled via an integration like the above with SDC and is likely your best and simplest bet to accomplishing what you ask. That said, there are certainly a lot of details in what you describe and I’m sure you will have follow up questions, so have at them!
If easier over a call, please contact our sales team at sales (at) genuitec.com and we’d be happy to setup a technical call to discuss in more detail.
Cheers,
Tim -
AuthorPosts