GitHub 的项目管理

(编辑: 这个问题现在已经过时了,因为谷歌代码现在支持 git,而且我已经把协议缓冲转换成了 Mercurial。然而,这仍然是普遍关注的问题。)

我的 C # 协议缓冲使用 github 进行源代码控制,我开始真正喜欢使用 git 了。然而,据我所知,github 没有提供任何项目管理工具: 缺陷和特性跟踪、讨论、特性请求、文档等。考虑到我的分支机构,谷歌代码将是一个自然的选择,但是在那里创建一个项目,却把源代码放在 github 上似乎有些奇怪。

关于 Fogbugz/Assembly 的这个问题似乎主要集中在缺陷跟踪上。我想知道当涉及到一个更“完整”的项目管理解决方案时,其他人有什么经验。Fogbugz 真的能满足我所有的需求吗?(对文档使用 wiki 有其优点,尽管我也希望能够使用代码分发文档。)除了第一段中提到的明确的特性之外,我 应该还考虑了哪些我可能遗漏的其他项目方面?

这肯定会继续是一个开源项目,虽然我宁愿不支付我不介意,如果一个小费是必需的。目前我是唯一的开发人员,但是这种情况可能会改变,可能会有很多人提交 bug 和特性请求。(换句话说,我希望并且期望它能够流行起来,但是大部分工作都是我在做。)

以前我已经对各种开源项目进行了 贡献,但是在运行一个非常可见和活跃的项目方面还没有做很多工作。(MiscUtil目前仍然“托管”在我的网站上,偶尔也会发布——实际的源代码控制在我的本地 NAS 上。)

有人想分享一下他们的经历吗?

编辑: 我现在正在考虑的另一个选择是 Google Code 项目(我真的很想忠于我的雇主)和偶尔从 git 到 svn 的合并(至少,每次我发布一个版本)。这将允许非 git 用户轻松获得源代码。

22681 次浏览

Have you considered Trac ?

There seems to be an "enthusiastic" review of a git-Trac integration.

I have no personal experience with these tools but you may want to check out the integration.

We use bitbucket.org, which is not GIT, it's Mercurial* , but it does have bug/issue tracking per branch etc.

I think it can be very useful to integrate these things with the place you manage your source code for cross-referencing things like issue-number in a commit message. Or Fixed message for an issue containing the code revision number. You would lose this if you chose a separate BTS like Google code. As mentioned in other answer, Trac is really good at the integration thing.

Edit: I should say that for my most widely used open source project, we do actually have it at:

  1. Bitbucket (source code management)
  2. Launchpad (user bug reporting, translations management)
  3. Self hosted Trac (wiki, project and developer issue tracking, source code mirror)
  4. Google code (file downloads)

And I know this sounds insane, but we pick and choose the best bits out of each service. And surprisingly no one complains.

* which is better in my opinion anyway, but please don't flame me.

I use GitHub along with Lighthouse for issue tracking. It's a little barebones compared to some of the other options, but at the same time it works very well if you just want a lightweight tool you don't have to worry too much about. It can integrate with GitHub if you want, and it's also free for open source projects.

If you're thinking that you'll really be the only developer, Fogbugz will help you keep your sanity. Fogbugz is a great product, It builds focused communications and can turn anything into a case (issue). It does all that as well as any system I've seen.

But its orientation is commercial -- efficient communication between users and tech support, improve reliability of schedules, focus & prioritize what's being worked on, separate internal & external discussions, some good reporting to track that things are getting handled. (About the only criticism I can think of is it doesn't do case blocking and dependency tracking, which is really useful for those bugs buried deep.)

Little of this feature set will help you build an active open source project, with open lively communication and the need build a community and have users evolve into developers as the project grows. So if that's where you want to end up, you may really want the less focused communication channels of one of these lightweight tracking systems.

I haven't used Google Code on a project yet, but in terms of transparent & open communication, it looks like a good support for an active open source project. Plus you already know it. If you want to grow the involvement in your project, Google code looks like the way to go.

I use github and google code in some places. Google code's issue tracker is decent enough, but I can't deal with subversion.

Take a look at my java memcached client for an example of this -- particularly the source tab at the top.

At work we use FogBugz and it's by far the best tool of its type in my opinion. I would use it for the non-profit projects I work on, except it's so expensive beyond 2 users.

For the non-profit projects, we use Lighthouse for issue tracking. It's alright for what it costs, and frankly I can't really find any suitable alternatives within its price range. Trac's issue tracking is little better than Bugzilla's...I know a lot of folks love Trac but I find it very inflexible. Trac's deficiencies led us to Lighthouse.

My non-profit projects are looking possibly at moving to Bitbucket. In addition to the issue tracking, it would let us consolidate our repositories over there from beanstalkapp.com, as well as, adding a wiki.

That all being said, if FogBugz-on-Demand had pricing even remotely similar to Lighthouse.app for small user counts, I'd move us over there in a heartbeat. When you use FB at work and then Lighthouse.app at night...using Lighthouse feels like your arm has been chopped off.

As usual when someone ask this, I mention Redmine as I did in this question. I know the question has already its "best answer" but I think it is worth mentioning.

Have you considered CodePlex?

Mingle supports git via mingle_git plugin. Mingle has a free community license for open source projects.

I too use github with Lighthouse. And if your commit message contains something like

[#32 state:resolved]

Lighthouse will resolve ticket #32 against the commit, which I find quick and useful. Other than that, Lighthouse is a bit, er, light on features.

GitHub recently introduced an issue tracker of their own; I haven't done a competitive analysis to determine how it measures up to other options mentioned on this thread, though.

I'd suggest JavaForge as an alternative, since it has everything you look for:

  • It offers free hosting with Mercurial and Git (or mixed).
  • Its issue tracker is lightyears ahead of GitHub. It is extremely powerful and customizable, can track requirements, feature requests, bugs, tasks, etc.
  • It provides Document Management, also with WebDAV access (sharing as easy as with shared folders).
  • It has built-in wiki for collaborative authoring for documentation, requirements, etc.
  • It has forums for discussions.

Please note that the site is powered by codeBeamer, our commercial product battle-tested by global companies.

(Disclaimer: we are a commercial provider of agile ALM solutions.)

<plug>I'm building Airport.</plug>

You could also try using a tool like BusyFlow. There you can track GitHub commits and comment on them (the comments are synced with GitHub). For other project management facets BusyFlow integrates with Google Calendar, Trello, Basecamp, Pivotal Tracker etc. So you can see your GitHub items alongside with tasks, files and calendar events.

(Disclaimer: I'm a co-founder of BusyFlow.)