Development: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
I'm looking to get in place a tool chain for development in conjunction with my move to AWS.
== Components ==
* Editor
* Source Control
* Continuous Integration
* Issue Tracker
* Documentation
* Build/Publishing
* Backups


== Connection ==
=== Editor ===
I'm looking at connecting to a file system over ssh. There is [http://dokan-dev.net/en/ this] for Windows and sshfs for Linux. This seems more secure than ftp. By mounting it as a file system, I won't have to look for ftp plugins - which I've had trouble finding.
I think I'm going with [http://www.sublimetext.com/ Sublime Text].


I will have to investigate how to attach the drives. I would like it to be as automated as possible. Setting up a cron on my Linux systems may be best as I'm hesitant to add it to fstab and compromise the boot.
=== Source Control ===
Git. I think I'll simply have a repo on the dev machine.


== IDE ==
=== Backups ===
I like the idea of an IDE. Particularly because I would like to move in the direction of more testing and refactoring. The two big contenders seem to be NetBeans and Eclipse. I think the best thing to do from here is try both of them and see which one works better.
AMIs. I need to come up a with a rotation. I would also like to see if they can be exported.


Update: I think I am pretty set against an IDE at this point. I would prefer a toolchain.
=== Continuous Integration ===
I'm leaning towards Buildbot, but I should also look at Apache Ant. I may also forgo this entirely and do the whole thing with some scripting.


== BASH Toolchain ==
=== Build/Publishing ===
Standing in opposition to an IDE would be a more traditional toolchain. In this case, I would connect over SSH, and use Vim as my editor. This would probably give me much tighter control, but I'm afraid I would miss out on things like automated test tools.
I may be using Go which requires a build. I want to incorporate a more complex JavaScript tool-chain using JavaScript optimizers which will also require a build. Finally, I want to be able to target various machines.


== Source Control ==
== Integration ==
I'm setup on GitHub but I'm finding that I have a lot of projects I do not want to share and the cost of private account is prohibitive.
I would really like source control, continuous integration and the issue tracker to all work together. I don't want to impose my prejudices on the system, so I will stick the basic requirements rather than how I expect it to work. I should be able to associate commits with issues and have the status of the continuous integration performed on those commits tied to the issue tracker.
 
I think I'm going to setup a dev server.
 
== Dev Servers ==
* Git
* Continuous integration
 
There will not be one dev server - there will be many. Each Dev server has a parent (except the origin). Any check-in to a dev server kicks off the continuous integration. Each dev server can also publish a live build. A publish will always produce a new instance.
 
For CI I should look at BuildBot and Apache Ant.
 
http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software


[[Category: Code]]
[[Category: Code]]

Revision as of 15:30, 20 June 2013

Components

  • Editor
  • Source Control
  • Continuous Integration
  • Issue Tracker
  • Documentation
  • Build/Publishing
  • Backups

Editor

I think I'm going with Sublime Text.

Source Control

Git. I think I'll simply have a repo on the dev machine.

Backups

AMIs. I need to come up a with a rotation. I would also like to see if they can be exported.

Continuous Integration

I'm leaning towards Buildbot, but I should also look at Apache Ant. I may also forgo this entirely and do the whole thing with some scripting.

Build/Publishing

I may be using Go which requires a build. I want to incorporate a more complex JavaScript tool-chain using JavaScript optimizers which will also require a build. Finally, I want to be able to target various machines.

Integration

I would really like source control, continuous integration and the issue tracker to all work together. I don't want to impose my prejudices on the system, so I will stick the basic requirements rather than how I expect it to work. I should be able to associate commits with issues and have the status of the continuous integration performed on those commits tied to the issue tracker.