安装和管理开源项目的最佳实践

Vir*_*dia 20 installation project-management open-source

今年晚些时候,我想发布一个我一直在开源的PHP框架.我确实使用了源代码控制(SVN),但它的使用非常有限.我是自学成才,我自己开发,没有与大型团队合作的经验.关于什么可以帮助项目成功,我有一些想法,但我对一些细节很模糊.由于它还没有发布,我想尽我所能从一开始就建立正确的基础设施.为了设置和管理成功的项目,我需要知道什么?

我必须使一些想法成功(除了营销之外):

  • 良好的文档和教程
  • 自动化单元测试和构建,以推动更新到网站
  • 一个清晰的路线图
  • Bug跟踪与源代码管理集成
  • 用于保持代码一致的样式指南
  • 社区获得支持,分享想法等的论坛
  • 用框架构建的一个很好的示例应用程序
  • 一个博客,让社区了解情况
  • 尽可能保持向后兼容性

我的一些问题:

  • 如何设置和自动化一步提交 - 测试 - 提交 - 生成API文档 - 推送更新到网站流程?编辑:Ant或Maven会成为这个的好候选人吗?如果是这样,您是否知道使用它们设置PHP项目的任何资源?
  • 如何处理(技术上)其他用户提交的内容?如何确保在整合之前必须批准这些提交?
  • 在项目社区方面可以避免哪些陷阱?我宁愿让它尽可能友好和乐于助人,没有太多的戏剧性.

我很乐意从你对这些方面的经验中学习.如果您认为我错过了任何重大内容,请分享.您可以指向我的任何资源(最好是面向初学者)也会非常感激.

bra*_*is7 5

我刚刚开始参与社区项目,但我会就你所知道的事情给你一些建议.

如何设置和自动化一步提交 - 测试 - 提交 - 生成API文档 - 推送更新到网站流程?

我从来没有将它作为一个过程实现.你可以只有一个清单,甚至可能创建一些脚本来完成某些任务.我从来没有使用任何自动上传的源代码控制,而是由脚本完成.大多数时候,都会涉及一些网络互动.

在官方发布之前,您不希望推送API更改.

编辑:工作环境

对于PHP,大多数时候,我要么直接在服务器上进行编辑,然后使用beta.example.com或类似方法在那里进行测试,然后再推送到example.com.您还可以在家用PC上设置Web环境(使用XAMPP for Windows,或Linux上的标准LAMP安装).你可能只是在这里使用你的存储库的镜像,所以你要做svn commit,或者适合你选择的VCS或DVCS.

有趣的部分是使用不同的PHP版本测试它.我自己没有这样做,但是你可以使用.htaccess文件运行不同的PHP二进制文件来测试它.我不确定这是最好的选择.

我没有做过很多API,因为我从来没有创建过一个库,但只是快速搜索我找到了http://www.phpdoc.org/.它看起来像一个成熟的项目,所以这可能是一个起点.

就创建版本而言,我通常创建一个脚本,该脚本仅包含作为发行版的一部分的文件(它将过滤掉任何VCS文件,以及您在分布式文件中不需要的任何内容).你可以find在linux上写一个脚本(这是我大部分时间都在做的),或者可能还有其他更好的选择.

如何处理(技术上)其他用户提交的内容?如何确保在整合之前必须批准这些提交?

这主要由错误跟踪器处理,并且在版本控制系统中受限制.通常,您和您允许的人可以提交VCS.其他用户可以提交补丁,但之后您可能会有人查看补丁,测试补丁并提交.您可以将这些任务拆分为一个团队,或者为一个人分配补丁并让他们全部完成.

在项目社区方面可以避免哪些陷阱?我宁愿让它尽可能友好和乐于助人,没有太多的戏剧性.

我只想确保项目成员和社区尽可能保持积极态度.会有一些分歧,它会驱使一些人离开,但只要你有一个稳定的产品,满足大多数人的需求,我认为这是所有人都可以期待的.


jem*_*nch 5

一个小的建议,对我来说很有效:开始使用第一人称复数代词,而不是单代词.也就是说,谈论"我们"和"我们"而不是"我"和"我".它鼓励其他人在他们感觉自己是团队的一部分时参与,而不是当他们觉得他们正在贡献自己的自我强化时.