On 9/15/05, Barney Boisvert <[EMAIL PROTECTED]> wrote: > > That's a surprise -- though it of course depends on what you're doing. > > I don't have many CF projects that don't have at least *some* java in > > them (usually the credit card API) so using Ant seems pretty natural. > > Credit cards? Ick. That stuff sucks. ;) No unhappiness from me that > I have touched CC processing in like 4 years. But anyway. We build > the Java pieces separately. So Java piece X gets built into a JAR, > and then that JAR is included in the CF apps as needed. Keeps the > dependancies flowing downward, and isolates the CF apps from any > changes to the Java apps until they're ready to deal with them.
I'd actually like to hear a little more about how you do that -- if I had to rewrite the JAR for credit card processing for you, it sounds like I'd do that in a branch, approve it, and merge it back into the trunk. Then everyone just pulls down the JAR into their working directory? \yourapp\trunk\java \yourapp\trunk\cfcode or similar in the repository? I'm actually curious :) > > I do a lot with using filter expansion to properly configure > > differences between deployments (e.g. changing the fusebox <mode> > > parameter from development to production as appropriate on the > > specific server). > > We don't use FB4 either. And we maintain our different config stuff > in-code, rather than in external ant properties files, so the app > itself takes care of pulling the right config stuff out based on where > it's at. Most of the reason is so that we can go right from staging > to production with a minimum of steps. More steps == more room for > error, especially if you're CHANGING THE CODE!!!. ;) If we did use > FB4, we'd switch the mode the same way, in-code. <cfset > application.fusebox.mode = "production" /> is just as effective as > changing the XML file, as long as it happens while no request is > actively executing the loader. I don't understand how that's fewer steps. If you're developing (in FB for this example) and you have <cfset application.fusebox.mode = "production" /> somewhere in your code, you have developers pull that down and change it to "development" while they're working. Someone inadvertently checks that back in with other changes and it rolls out... Or you have to add a step to verify the setting is correct. What am I missing? I tend to prefer abstracting deployment information (dev/stage/prod settings) into external files (source controlled of course) and relying on the deployment script (aka Ant) to handling everything. Of course then you have to add your deployment script to the testing process. It always comes down to deciding where to spend the time/resources :) I find it pretty interesting to see how folks really *do* their development! > > > Wouldn't you have to start the testing process again after any change > > in the branch being tested? A change in the staging branch during > > integration testing *should* restart the unit tests for sure, > > functional if they are automated and reasonable in length. > Yes, expected, and intentionally prevented from interfering. ;) By > doing it this way, developer X can merge his private branch into > stage, switch his working copy to the stage branch, and then make sure > there aren't any issues now that he's back with everyone else. And he > can do it during a testing period, without interfering with the test. > You can make an argument that that's a stupid way to do it for sure, > but having that central point of control sure makes my life easier. Not a stupid way to do it at all -- defintely not the argument I'm making :) I think the key thing you've done is come up with a process that works for your team that involves good practices (SCM, testing, etc). I tend to subscribe strongly to AGILE principles personally, but even there, there are a wide constellation of techniques and practices that are implemented in teams of various sizes and personalities. > > I'm thrilled we're (the CF community) at the point where more of the > > discussions are about how to implement the tools to improve process > > than "why it's important to use source control". > > Amen to that. It's amazing the change that's happened in the past > couple years. Not that that question never comes up, but there's so > much more behind it now. Agreed. I mean, not only this -- but a *frameworks* conference instead of just Fusebox? And *choices* in the CF framework. Wow! Seems to me it coincides pretty strongly with your activity on this list increasing..... :) :) :) > > cheers, > barneyb > > -- > Barney Boisvert > [EMAIL PROTECTED] > 360.319.6145 > http://www.barneyb.com/ > > Got Gmail? I have 100 invites. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Logware (www.logware.us): a new and convenient web-based time tracking application. Start tracking and documenting hours spent on a project or with a client with Logware today. Try it for free with a 15 day trial account. http://www.houseoffusion.com/banners/view.cfm?bannerid=67 Message: http://www.houseoffusion.com/lists.cfm/link=i:4:218446 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

