#Recommendations
A list of recommendations for the office and workflow.
-
Repositories and Tracking.
- Bitbucket - 100% free git repository hosting. Quality issue tracking like Github, only completely free.
- BitbucketCards - Kanban Agile issue management for Bitbucket repos. Teh awesomes. Teh blog post.
-
Workflow
- Github Flow is used by Github and is a very uick and easy "community" based workflow.
- A simple, and very similar workflow:
- Anything in
master
is deployable, at any time. integration
is a branch to merge many features for a release.- Quick bug-fixes can be merged into
master
by a Project Lead. Once merged,integration
must be rebased frommaster
. - Work from named branches for the feature currently being developed.
- Commit little and often. Never spend more than an hour working without a commit.
- Push to branches constantly.
- Pull Request every partially stable feature into
integration
as soon as the first changes are committed to the feature branch, whether complete or not. It is a great way to log a single feature's development. - Peer code reviews during development to allow the developer to request help from other people by name, to look for issues or offer cleaner solutions. Peer reviews can be requested as a team round the table.
- Once complete and working, Project Lead can merge into
integration
.
- Anything in
-
Development Workflow
- Less CSS for quick css development.
- Less Monkey is a simple toolkit to build whatever grid you want, with a set baseline and helpful mixins, it modularizes uick development.
- CodeKit for Mac to handle Less. Will auto build on source changes.
- WinLess for PC as above.
- Less CSS for quick css development.
-
Server Setup
- Server needs to be accessible via SSH only. One single SSH account for all users means more security.
- Hubot SSH account with limited access, also has a deployment SSH key for read only access.
- Apache Setup OSX is a tool for quickly setting up local development environments with a single bash script.
- Modified version of above script for hosting servers. Allows setup via a Hubot script ;o)
-
Deployment.
- Git commit hooks? Easy to do, requires a little setup at the beginning.
- Hubot deployment script? Requires hubot on a server and a chatroom to read commands from. Hubot is a chatbot developed by Github to receive commands via scripts regarding repositories, like
hubot deploy reponame to production
. This would run a coffeescript on the server to deploy a site, the script can be anything we want.- Requires a hubot to be running on a server that never goes offline.
- Requires a script to get hubot to parse the message it received and run commands.
- Requires hubot to have a deployment key with each project repository for read-only access to the repository.
- Requires hubot to have a secure SSH login to each project server. The SSH login needs to be restricted to only have access to the git folder for the project
- Hubot logs in to the project server via secure ssh, and runs
git pull
-
Chat
- Hipchat. Nuff said. It just works. $2 per month, per user.
- Supplies a private domain for chatrooms.
- Hubot can be quizzed about repos via a chatroom.
- Important team messages/activities can be logged in the chatroom livefeed.