Saturday, October 15, 2016

Lightweight Software Development Life Cycle with Aptana and Github

Like many of us, I suspect, the software development life cycle (SDLC) for my personal projects is quite different from that of my work.  Obviously, I have complete autonomy when it comes to deciding what tools and processes to use for my personal projects.  Much less so at work.  I recently took a fresh look to identify opportunities to standardize and simplify my personal projects' process.

I was able to distill my process down to the use of just two (free) tools:
  1. Aptana IDE
  2. GitHub
With just these two tools plus some first time setup and a little coding (which I will explain in more detail below), I am able to do all of the following:
Aptana has been my favorite Windows IDE for a number of years now.  It is closely linked and mostly compatible with Eclipse, the de-facto standard IDE at my work.  However, unlike Eclipse, Aptana is targeted more at general web development and less at Java.  Both tools offer tight integration with Git, providing rock-solid version control.  GitHub provides a SaaS-based, highly intuitive UI layer around Git.  However, it also offers so much more, including simple but effective ways to manage your issues, releases, and portfolio.

My simplified process flow looks like this:


 

First Time Aptana Project and GitHub Repos Setup


  1. Launch Aptana
  2. Select Remote tab
  3. Select Transfer Files and copy entire directory representing project to local machine
  4. Select Project Explorer tab
  5. Select Import... -> Git Repository as New Project
  6. Select URI and input corresponding URL for that repository as displayed in Github website (for example, https://github.com/yourid/your-new-project)
  7. Select Project Explorer tab
  8. Copy entire directory representing project to the new Aptana project
  9. Select Team -> Commit...
  10. Select Team -> Push
Your local Aptana project and Git repository is now linked to your GitHub repository.

 

Create Release in GitHub

  1. Refer to:

https://help.github.com/articles/creating-releases


IMPORTANT: Before deploying the release to your remote host, be sure to save off the directory representing the replaced release (i.e., don't simply overwrite).  This provides you with an easy way to toggle back to your "working version" if you encounter issues during your sanity checks.  It also ensures that any post-deployment customization is retained and available to copy to the new release.

 

Generate Portfolio/Project List from GitHub

Use GitHub API to build your portfolio or list of projects.
Refer to:
https://developer.github.com/v3/

You can see my implementation of this at
http://www.logixware.com

 

Bonus Tips

If you are like me, you often need to move issues from one GitHub repository to another.  This tool provides a simple and easy way to do it:
https://github-issue-mover.appspot.com/

Do you like to receive digest emails reminding you of the outstanding issues in your GitHub queue?  If so, IFTTT has a "recipe" for that.