Project setup for working as a team with Robotlegs

Nikos 's Avatar

Nikos

16 Aug, 2010 01:42 PM

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

any tips would be great :)

  1. 1 Posted by Paul Robertson on 17 Aug, 2010 01:04 AM

    Paul Robertson's Avatar

    I'm not an expert, but I do work on a team that uses Robotlegs for
    projects (we use Git/GitHub, but the concepts are obviously similar).
    Here are a few of the things we do:

    - 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
    tool-specific stuff out.)
    - The root folder of the source control project is one level above the
    Flash Builder project. That way multiple Flash Builder projects that are
    part of the same client work are kept together in source control
    - 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
    - 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
    executables onto test machines (we do custom multitouch hardware and
    other form factors like tablets, so there's lots of testing on
    non-developer machines =) But admittedly we haven't come close to using
    it to its full potential -- we're not really looking at the code quality
    metrics yet although we hopefully will someday =)

    Those are the thoughts I have off the top of my head. Thanks for asking
    this question -- I'd love to hear what others have to say too.

    Paul

  2. 2 Posted by Jason Dias on 17 Aug, 2010 01:10 AM

    Jason Dias's Avatar

    Hey Paul,

    May I ask what you use for your continuous integration?

    I was looking into Bamboo, but seems it's Java only.

    Thanks,
    Jason

  3. 3 Posted by Paul Robertson on 17 Aug, 2010 01:15 AM

    Paul Robertson's Avatar

    We use Hudson. That's about all I know about it, unfortunately --
    someone else (Jonathan Campos) had the unenviable task of setting it up.

    Paul

  4. 4 Posted by Nikos on 17 Aug, 2010 12:43 PM

    Nikos 's Avatar

    @Paul

    repect dude, your operating in a awesome team to have that set up that way.

    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?

  5. 5 Posted by Nikos on 17 Aug, 2010 01:14 PM

    Nikos 's Avatar

    @Paul do you keep your git code in a local network? If so is it easier to setup than svn?

  6. 6 Posted by Paul Robertson on 17 Aug, 2010 04:27 PM

    Paul Robertson's Avatar

    Yes, luckily we are a new enough company that we were able to
    standardize on Robotlegs and Git from the beginning =)

    Since we're using Git instead of SVN, we do all keep a copy of it on our
    computer. (Maybe you already know this, but just in case) one big
    difference between Git and SVN is that with Git, you basically run the
    source control client and server on your local computer. The remote
    server (GitHub in our case) is in some ways more like a remote backup +
    collaboration facilitator rather than the main "source control." So we
    each have the Git "engine" installed on our local machines. We initially
    clone the project from GitHub down to our local machine. Then we create
    branches on our local machine and make and commit our changes. We can
    each choose whatever Git client we want, though most of us have settled
    on SmartGit. (But at least one person still does everything on the
    command line.) Then when we've got a branch that we want to share we
    push it to GitHub. When our code is ready to merge in to the "master"
    branch we do that merge on our local machine then just push the master
    branch to GitHub.

    I believe there is an Eclipse Git plugin (EGit?) but I haven't tried it
    so I don't know whether it requires a repository to be linked to a
    single Eclipse project. When I used SVN I used a different client
    (TortoiseSVN). Since it wasn't linked to the IDE, I would sometimes
    structure my SVN projects the way I described, with multiple Flex
    projects inside a single repository. I also have worked on a project
    where we use more than one repository for the project -- in that case we
    had one for the main app and another for a library that we frequently
    used in the app. The main developer structured things that way because
    he wanted to release the library for public consumption, but keep the
    app separate. But it did make me a little wary at times because
    sometimes a single bug fix involved changes in both repositories. That
    violates the "atomic commit" principle so it made me feel a little dirty
    doing it. But it never actually resulted in an issue -- we just had to
    remember to pull changes from both projects before committing.

    Paul

  7. 7 Posted by Nikos on 18 Aug, 2010 10:32 AM

    Nikos 's Avatar
    • respect Paul :(

    We are discussing how to do server side also.

    I'm thinking for this project (X) that we do the following inside our source control

    directory structure

    X

      FLEX SOURCE
      Coldfusion source

    this will keep things simple as only source an assests are stored in git or svn

    we then link to the checked out flex source in flash builder and compile for local development.

    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.

    I get the team to make sure that their local environment mirrors staging and production to minimse external configurations for different environments

    when testing is complete we are wondering what is the best way to get the
    (flex binaries and assets and coldfusion assets) to staging and production.

    cheers for anyones input

    sorry for asking so much again :)

  8. 8 Posted by Nikos on 23 Aug, 2010 02:41 PM

    Nikos 's Avatar

    may I ask why you are using github istead of a a bare repository on your network?

    github is not an option for us due to privacy in terms of code :)

  9. 9 Posted by Nikos on 23 Aug, 2010 02:49 PM

    Nikos 's Avatar

    @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?

  10. 10 Posted by Jason Dias on 23 Aug, 2010 03:19 PM

    Jason Dias's Avatar

    github also offers private repositories starting at $7mo for personal, and
    $25mo for business/small team.

    You could even get enterprise and run a GitHub instance inside your private
    network.

    http://github.com/plans

  11. 11 Posted by simon on 23 Aug, 2010 03:29 PM

    simon's Avatar

    Or run something like Gitolite http://wiki.github.com/sitaramc/gitolite/ and (if you want a web interface) Gitweb https://git.wiki.kernel.org/index.php/Gitweb for freeeeeeeee ;-)

  12. 12 Posted by Nikos on 23 Aug, 2010 03:34 PM

    Nikos 's Avatar

    why do we need gitHub, seems pretty simple to set up a bare on the network?

  13. 13 Posted by Paul Robertson on 23 Aug, 2010 03:49 PM

    Paul Robertson's Avatar

    >
    > github also offers private repositories starting at $7mo for personal, and
    > $25mo for business/small team.
    >

    That's what we do at my work -- we just pay for a business account with
    GitHub.

    As for why we chose to do that instead of run our own Git server
    directly, I think it was just familiarity/ease for us. We didn't have to
    do the research on how to set it up, or take the time to do it. Plus, we
    don't have to worry about server uptime etc. Obviously the trade-off is
    that we're paying GitHub to do that work for us.

    Paul

  14. 14 Posted by Paul Robertson on 23 Aug, 2010 03:57 PM

    Paul Robertson's Avatar

    >
    > @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?
    >

    In our case, one "project" for a client consists of multiple AIR
    applications that run on different devices and communicate with each
    other. So each of those AIR apps has its own main app file that's inside
    the project, something like this:

    /client project folder (this is the root folder in Git)
         /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
    structure)
         /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)

    Likewise, if we were doing one app with several modules, library
    projects, etc. we would just have each of those as a Flash Builder
    project inside the root source control folder.

    Paul

  15. 15 Posted by Nikos on 23 Aug, 2010 03:59 PM

    Nikos 's Avatar

    how secure is git hub?
    do you have any work flow tips on how to use git with server side code
    (where your not compiling to a binary file but rather deal with pages?)

  16. 16 Posted by derekdon on 25 Aug, 2010 01:12 AM

    derekdon's Avatar

    Hey Nikos,

    I tend to use github for a bit of public code, http://github.com/derekdon, 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.

    I have a few VPS servers, one of which is running subversion and acts as a private hosted repo which has served me well.

    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?

    I haven't used it (yet) myself, but have a look at http://beanstalkapp.com/ as it might be of some use.

    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...

    Derek.

  17. 17 Posted by Nikos on 25 Aug, 2010 11:57 AM

    Nikos 's Avatar

    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:

    1 we do Coldfusion and flex dev and test and debug locally and use git for source control

    on the flex side
    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)
    c.what is the best setup to get the excecutable flex code to staging and live? Maven?

  18. 18 Posted by Nikos on 25 Aug, 2010 11:58 AM

    Nikos 's Avatar

    hey noticed your in london too, you wanna catch up sometime?

  19. 19 Posted by derekdon on 25 Aug, 2010 12:59 PM

    derekdon's Avatar

    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 - http://oreilly.com/catalog/9780596102357/preview .

    Hope this helps.

    Re catching up sometime, I don't mind... sure pop me an email, derek at derekdonnelly dot com.

  20. Stray closed this discussion on 12 Feb, 2011 10:48 PM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac