Tag Archives: code

Inside Look – Git Flow

Working on small projects, picking up a version control system (VCS) was hardly a must for me. I don’t any project here has ever had more than 4 people working on it at once. Nevertheless, using Git and a well established process can be incredibly useful for even the individual coder. It allows a one (or multiple people) to work on multiple paths of a project without (or at least little) worry of seriously corrupting the source code. Git is known as a decentralized version control system. There is no one golden repository which everyone must work from. In fact, any individual has their own copy of the repository which they can use to track their own local changes as they’re working. There are many ways to use Git to keep on top of a project and I think everyone finds their own style, but I’d like to share what I’ve been using.

My projects consist of two main branches, master and develop. These branches will always exist and will never be removed.

The two main branches.

The two main branches.

Master is considered sacred and only touched if a completely sound production release is ready. Instead, develop contains typically the latest, active, and (reasonably) working code. When a the team has a new feature they want to introduce, they create a branch off of develop. This is called a feature branch. This is worked on until completed and then merged back into develop. Sometimes, merges may happen before a feature is fully completed. Maybe there was a specific change that needed to be present in develop for other feature branches or some bug was found.

A feature branch example

A feature branch example.

In a perfect world, these are all the branches of code you would ever need to care about. There are many corner cases that can occur where you may need to create a hotfix branch to fix a bad release on master, you may have a feature with sub-features being worked on, and many more. For a nice example, here’s a bigger picture of what that may look like.

A full Git Flow example.

A full Git Flow example.

Huge credit goes to Vincent Driessen for these images. You can find his post at http://nvie.com/posts/a-successful-git-branching-model/ which describes the full process. Over a year ago when I was just getting into this Git thing, his post allowed me to finally grasp a good method of using this powerful tool.

Advertisements
Tagged , , ,

Wrapping up v0.1

I haven’t posted in awhile as I’ve been pretty busy this last weekend getting my girlfriend moved in and with the release of Guild Wars 2, but I have done a few updates on our code and we’re getting close to getting v0.1 ready. You can see here that there are only a few issues left. Map readability may not make it into this release unless someone finds a quick, awesome way of going about it, but as of now, I don’t think it’s work throwing too much time into as it is “working” already. This release will definitely feature all functionality in place. There won’t be an option that doesn’t work or an operating system unsupported. The features may not be as polished as I and others would like, but there will always be room for advancement.

After this release, I’m going to be changing the Downloads page to include the following for each release (if applicable):

  • Executable (Windows Only)
  • Source Zipball
  • Changelist Post
  • Contributors: <List of Contributors>

I found that I could actually choose any commit from the repository’s history and download the Zipball at that moment in time. This should allow me to link to the specific releases instead of overriding each time when the “master” get branch will be updated with a new release or patch. Anyway, I’m going to be at PAX this weekend, so unless something amazing happens code-wise, the release should be out early next week.

Tagged , ,

Suggestions and Ideas for v0.09

The next release, v0.09, is definitely looking to be a lot of cleanup work, but there will be some additions in store. If you’ve already checked out the source, you may have noticed that unique items (known as rare items for now) are getting implemented. Thanks to Onionnion, the code is also now a lot closer to PEP-8 code style standards than before.

Suggestions big and small are certainly welcome. Got an idea for a cool weapon/armor/consumable? Name for a zone? Maybe some tweaks to the UI? Comment here or submit an issue on github! Bigger features can certainly be requested, but they may not be ready for v0.09. Something like buffs/debuffs may have to wait a little while.

Tagged , ,

Source Code Available

After a few requests and me finally succumbing to the beauty of open software, I’ve made a repository on github to host my project and for anyone to view and possibly contribute. You can access that repository here:

https://github.com/Bluedagger21/the-first-fantasy

Transitioning over to git was more complicated than I would have liked, but I can definitely see the advantages of using it over subversion although I will miss its simplicity. Anyway, this will mean a few changes to links on this site and how Downloads will work. I’ll be hosting the distributable versions of The First Fantasy in the downloads section on github, but linking to those from my blog. As the link to the source is always the same, it will have it’s own section in the Downloads page.

I’m hosting the project to the public to share, learn, and help others that are open-source project newbies get on their feet. There’s still a lot of documentation that I’d like to do so viewers/contributors can better understand my thinking, and you can expect additional commenting to be a priority right now. If you have any questions, please feel free to send them over to me. I might even make a post to explain a process I use.

Tagged , , ,
%d bloggers like this: