tag:robotlegs.tenderapp.com,2009-10-18:/discussions/questions/248-project-setup-for-working-as-a-team-with-robotlegsRobotlegs: Discussion 2018-10-18T16:35:15Ztag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-16T13:42:04Z2010-08-16T13:42:04ZProject setup for working as a team with Robotlegs<div><p>maybe this isn't the best place to ask, (I love the community here) but I'd like to ask about your project setup for working as a team. We're almost ready to start out 1st team project using RL and we plan to use SVN as source control. I know that there is a lot of discussion on the best way to do this, some agree to set up a standard location in their computer for each coders workspace, some use junction, some hide the properties files, some link to external source locations and only check in the src folder expernally from Flash builder.. etc</p>
<p>any tips would be great :)</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T01:04:31Z2010-08-17T01:04:31ZProject setup for working as a team with Robotlegs<div><p>I'm not an expert, but I do work on a team that uses Robotlegs for<br />
projects (we use Git/GitHub, but the concepts are obviously similar).<br />
Here are a few of the things we do:</p>
<ul>
<li>Project files such as Flash Builders .actionscriptproperties file,
.project folder, etc. are not checked in. (We all use Flash Builder, but
I also sometimes use FlashDevelop or other tools so we all just keep the<br />
tool-specific stuff out.)<br />
</li>
<li>The root folder of the source control project is one level above the
Flash Builder project. That way multiple Flash Builder projects that are<br />
part of the same client work are kept together in source control<br />
</li>
<li>We have a single Flex/AIR SDK that we share via Dropbox, so we know
we're all using the same SDK for our work<br />
</li>
<li>We have a continuous integration server set up that builds our code
when we check in to the master branch, and we can use it to get<br />
executables onto test machines (we do custom multitouch hardware and<br />
other form factors like tablets, so there's lots of testing on<br />
non-developer machines =) But admittedly we haven't come close to using<br />
it to its full potential -- we're not really looking at the code quality<br />
metrics yet although we hopefully will someday =)</li>
</ul>
<p>Those are the thoughts I have off the top of my head. Thanks for asking<br />
this question -- I'd love to hear what others have to say too.</p>
<p>Paul</p></div>Paul Robertsontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T01:10:26Z2010-08-17T01:10:26ZProject setup for working as a team with Robotlegs<div><p>Hey Paul,</p>
<p>May I ask what you use for your continuous integration?</p>
<p>I was looking into Bamboo, but seems it's Java only.</p>
<p>Thanks,<br />
Jason</p></div>Jason Diastag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T01:15:26Z2010-08-17T01:15:26ZProject setup for working as a team with Robotlegs<div><p>We use Hudson. That's about all I know about it, unfortunately --<br />
someone else (Jonathan Campos) had the unenviable task of setting it up.</p>
<p>Paul</p></div>Paul Robertsontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T12:43:19Z2010-08-17T12:43:19ZProject setup for working as a team with Robotlegs<div><p>@Paul</p>
<p>repect dude, your operating in a awesome team to have that set up that way.</p>
<p>So do each of you check out a copy of the source to your computer? I take it you don't use subeclipse then since your source is above the fb project?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T13:14:07Z2010-08-17T13:14:07ZProject setup for working as a team with Robotlegs<div><p>@Paul do you keep your git code in a local network? If so is it easier to setup than svn?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-17T16:27:49Z2010-08-17T16:27:49ZProject setup for working as a team with Robotlegs<div><p>Yes, luckily we are a new enough company that we were able to<br />
standardize on Robotlegs and Git from the beginning =)</p>
<p>Since we're using Git instead of SVN, we do all keep a copy of it on our<br />
computer. (Maybe you already know this, but just in case) one big<br />
difference between Git and SVN is that with Git, you basically run the<br />
source control client and server on your local computer. The remote<br />
server (GitHub in our case) is in some ways more like a remote backup +<br />
collaboration facilitator rather than the main "source control." So we<br />
each have the Git "engine" installed on our local machines. We initially<br />
clone the project from GitHub down to our local machine. Then we create<br />
branches on our local machine and make and commit our changes. We can<br />
each choose whatever Git client we want, though most of us have settled<br />
on SmartGit. (But at least one person still does everything on the<br />
command line.) Then when we've got a branch that we want to share we<br />
push it to GitHub. When our code is ready to merge in to the "master"<br />
branch we do that merge on our local machine then just push the master<br />
branch to GitHub.</p>
<p>I believe there is an Eclipse Git plugin (EGit?) but I haven't tried it<br />
so I don't know whether it requires a repository to be linked to a<br />
single Eclipse project. When I used SVN I used a different client<br />
(TortoiseSVN). Since it wasn't linked to the IDE, I would sometimes
structure my SVN projects the way I described, with multiple Flex<br />
projects inside a single repository. I also have worked on a project<br />
where we use more than one repository for the project -- in that case we<br />
had one for the main app and another for a library that we frequently<br />
used in the app. The main developer structured things that way because<br />
he wanted to release the library for public consumption, but keep the<br />
app separate. But it did make me a little wary at times because<br />
sometimes a single bug fix involved changes in both repositories. That<br />
violates the "atomic commit" principle so it made me feel a little dirty<br />
doing it. But it never actually resulted in an issue -- we just had to<br />
remember to pull changes from both projects before committing.</p>
<p>Paul</p></div>Paul Robertsontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-18T10:32:27Z2010-08-18T10:32:27ZProject setup for working as a team with Robotlegs<div><ul>
<li>respect Paul :(</li>
</ul>
<p>We are discussing how to do server side also.</p>
<p>I'm thinking for this project (X) that we do the following inside our source control</p>
<p>directory structure</p>
<p>X<br />
</p>
<pre><code> FLEX SOURCE
Coldfusion source</code></pre>
<p>this will keep things simple as only source an assests are stored in git or svn</p>
<p>we then link to the checked out flex source in flash builder and compile for local development.</p>
<p>we check out the Coldfusion source directly to out local coldfusion project for coding and testing, but only check in the source back, probably not using sub eclipse.</p>
<p>I get the team to make sure that their local environment mirrors staging and production to minimse external configurations for different environments</p>
<p>when testing is complete we are wondering what is the best way to get the<br />
(flex binaries and assets and coldfusion assets)
to staging and production.</p>
<p>cheers for anyones input</p>
<p>sorry for asking so much again :)<br />
</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T14:41:25Z2010-08-23T14:41:25ZProject setup for working as a team with Robotlegs<div><p>may I ask why you are using github istead of a a bare repository on your network?</p>
<p>github is not an option for us due to privacy in terms of code :)</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T14:49:39Z2010-08-23T14:49:39ZProject setup for working as a team with Robotlegs<div><p>@Paul, im liking your idea of creating the folder above the flex project. How do you get round the fact that you need the main application mxml to be inside the project source?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:19:32Z2010-08-23T15:19:32ZProject setup for working as a team with Robotlegs<div><p>github also offers private repositories starting at $7mo for personal, and<br />
$25mo for business/small team.</p>
<p>You could even get enterprise and run a GitHub instance inside your private<br />
network.</p>
<p><a href="http://github.com/plans">http://github.com/plans</a></p></div>Jason Diastag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:29:09Z2010-08-23T15:29:09ZProject setup for working as a team with Robotlegs<div><p>Or run something like Gitolite <a href="http://wiki.github.com/sitaramc/gitolite/">http://wiki.github.com/sitaramc/gitolite/</a> and (if you want a web interface) Gitweb <a href="https://git.wiki.kernel.org/index.php/Gitweb">https://git.wiki.kernel.org/index.php/Gitweb</a> for freeeeeeeee ;-)</p></div>simontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:34:02Z2010-08-23T15:34:02ZProject setup for working as a team with Robotlegs<div><p>why do we need gitHub, seems pretty simple to set up a bare on the network?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:49:19Z2010-08-23T15:49:19ZProject setup for working as a team with Robotlegs<div><blockquote><p>github also offers private repositories starting at $7mo for personal, and
$25mo for business/small team.</p></blockquote>
<p>That's what we do at my work -- we just pay for a business account with<br />
GitHub.</p>
<p>As for why we chose to do that instead of run our own Git server<br />
directly, I think it was just familiarity/ease for us. We didn't have to<br />
do the research on how to set it up, or take the time to do it. Plus, we<br />
don't have to worry about server uptime etc. Obviously the trade-off is<br />
that we're paying GitHub to do that work for us.</p>
<p>Paul</p></div>Paul Robertsontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:57:10Z2010-08-23T15:57:10ZProject setup for working as a team with Robotlegs<div><blockquote><p>@Paul, im liking your idea of creating the folder above the flex project. How do you get round the fact that you need the main application mxml to be inside the project source?</p></blockquote>
<p>In our case, one "project" for a client consists of multiple AIR<br />
applications that run on different devices and communicate with each<br />
other. So each of those AIR apps has its own main app file that's inside<br />
the project, something like this:</p>
<p>/client project folder (this is the root folder in Git)</p>
<pre><code> /app1 (the root folder of the Flash Builder project)
/src
/subfolders in src/
app1.mxml (main app file)
app1-app.xml (app.xml for AIR)
/libs
...etc. (This is all just a typical Flash Builder project</code></pre>
<p>structure)<br />
</p>
<pre><code> /app2 (the root folder of this app's Flash Builder project)
(the structure here is similar to app 1 etc.)
/app3 (root folder of this app's Flash Builder project)</code></pre>
<p>Likewise, if we were doing one app with several modules, library<br />
projects, etc. we would just have each of those as a Flash Builder<br />
project inside the root source control folder.</p>
<p>Paul</p></div>Paul Robertsontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-23T15:59:47Z2010-08-23T15:59:47ZProject setup for working as a team with Robotlegs<div><p>how secure is git hub?<br />
do you have any work flow tips on how to use git with server side code<br />
(where your not compiling to a binary file but rather deal with pages?)</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-25T01:12:43Z2010-08-25T01:12:43ZProject setup for working as a team with Robotlegs<div><p>Hey Nikos,</p>
<p>I tend to use github for a bit of public code, <a href="http://github.com/derekdon">http://github.com/derekdon</a>, as you do... I've yet to use it to host private code but I imagine it's very secure when you opt for private/business plans.</p>
<p>I have a few VPS servers, one of which is running subversion and acts as a private hosted repo which has served me well.</p>
<p>It's really hard to say what will suit your setup/team in this instance, but you are right to be asking these questions... what setup on a whole are your team most familiar with?</p>
<p>I haven't used it (yet) myself, but have a look at <a href="http://beanstalkapp.com/">http://beanstalkapp.com/</a> as it might be of some use.</p>
<p>I my experience where client projects are concerned, if you can afford the cost of a professional hosted source control service, then you should really REALLY consider it over rolling your own... Let them worry about what they do, and you guys can just get on building the app minus the headaches...</p>
<p>Derek.</p></div>derekdontag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-25T11:57:20Z2010-08-25T11:57:20ZProject setup for working as a team with Robotlegs<div><p>thanks Derek for your insight. Wether I use a hosted service or not will utimately not be up to me. The biggest problem is that there are so many options out there. let me try and articulate them:</p>
<p>1 we do Coldfusion and flex dev and test and debug locally and use git for source control</p>
<p>on the flex side<br />
a. should we set up a single repo and put both the coldusion and flex projects in there?
b. if so, what project specific information should we include in the remote repo so that I can easily get another developer up and running(ive had problems with svn when a user imports a project stored in there and not working on their local machine)<br />
c.what is the best setup to get the excecutable flex code to staging and live? Maven?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-25T11:58:15Z2010-08-25T11:58:15ZProject setup for working as a team with Robotlegs<div><p>hey noticed your in london too, you wanna catch up sometime?</p></div>Nikos tag:robotlegs.tenderapp.com,2009-10-18:Comment/25919382010-08-25T12:59:41Z2010-08-25T12:59:41ZProject setup for working as a team with Robotlegs<div><p>To be honest people/teams will have different opinions on what works best... but I read the O'Reilly book "Building Scalable Web Sites" awhile back and I think you might find Chapter 3 - "Development Environments" useful. You can access a preview here - <a href="http://oreilly.com/catalog/9780596102357/preview">http://oreilly.com/catalog/9780596102357/preview</a> .</p>
<p>Hope this helps.</p>
<p>Re catching up sometime, I don't mind... sure pop me an email, derek at derekdonnelly dot com.</p></div>derekdon