Gocnak / Botnak

A Java-based IRC chat client with focus on Twitch.tv streams.
https://gocnak.github.io/Botnak
MIT License
67 stars 28 forks source link

Do you really need a separate dev branch? #33

Closed mikesmiffy128 closed 10 years ago

mikesmiffy128 commented 10 years ago

GitHub lets you get the full source code for any previous commit, as well as create tags which refer to specific milestones and binary downloads based on those tags.

Wouldn't it be a more logical idea to do all the work on the master branch and host stable downloads via the releases page (rather than Dropbox)? That would also make it more obvious from looking at the repository that Botnak is being actively worked on and maybe make people more likely to contribute.

dr-kegel commented 10 years ago

No, thats a bad idea, the usual workflow is one stable branch (master) and one not so stable branch (developer). e.g. https://guides.github.com/introduction/flow/index.html

mikesmiffy128 commented 10 years ago

Well that's interesting. But based on that page, I still think the current layout could be improved. You are supposed to create a branch for each new feature being worked on and merge it into the master branch as soon as it works. What Goc seems to be doing is adding a huge number of perfectly functional, tested features to the dev branch to save them up for one massive big merge as soon as Episode 2 is ready. Git is supposed to be about continuous integration; I don't think that working on a single branch for several months is a good idea. Also, there should definitely be some sort of versioning / tagging going on. Hosting the jar in Dropbox makes no sense when GitHub has a great system already in place for releasing stable versions of applications in an organised manner.

Gocnak commented 10 years ago

I can host the jar on the release tab for sure, but the dev branch is needed because of the big changes to Botnak that cannot be implemented swiftly into master.

The dev branch is for testing new major software-changing features, like the new Account and Settings GUIs, so that when the master branch is updated, people don't download a potentially broken software. My "master" branch is by "final product" branch; of course I want people to see progress but I don't want people to be using an unfinished product.

mikesmiffy128 commented 10 years ago

That makes sense I guess. Though if you add something like !startraffle, which seems to work well enough now, couldn't you add that to the "final product" as at least an in-beta feature or something, since it is barely a massive backwards-incompatible change? :P EDIT: In other words, commit more of the small, tested changes more often rather than accumulate them?

Gocnak commented 10 years ago

Yeah I see that point. It was just all the big changes I had that made me keep it to this branch, so when I merge to master, people could start fresh.

I'll assure you that after Episode 2 comes out, this branch will pretty much be useless, because all the big features I wanted already exist and it's all about small changes from there-on out.

mikesmiffy128 commented 10 years ago

Okay, cool. I guess I can close the issue now. Thanks for the quick responses.