Later this year I want to release a PHP framework that I've been working on as open source. I do use source control (SVN), but it's on an extremely limited basis. I'm self-taught, I develop by myself and don't have the experience of working with large teams. I have some ideas about what can help make a project successful, but I'm fuzzy on some of the details. Since it's not yet released, I want to do everything I can to set up the right infrastructure from the beginning. What do I need to know in order to setup and manage a successful project?
Some ideas that I have to make it successful (beyond marketing it):
- Good documentation and tutorials
- Automated unit tests and builds to push update to the website
- A clear roadmap
- Bug Tracking integrated with the source control
- A style guide to keep the code consistent
- A forum for the community to get support, share ideas, etc.
- A good example application built with the framework
- A blog to keep the community informed
- Maintaining backwards compatibility wherever possible
Some of my questions:
- How do I setup and automate a one step submit-test-commit-generate API docs-push update to website process? Edit: Would Ant or Maven be good candidates for this? If so, do you know of any resources for setting up a PHP project using them?
- How do I handle (technically) submissions from other users? How can I ensure that those submissions must be approved before being integrated?
- What are some of the pitfalls that can be avoided in terms of the project community? I'd prefer to have it be as friendly and helpful as possible without a lot of drama.
I'd love to learn from your experience on any of these points. If you think I'm missing anything big, please share that as well. Any resources (preferably geared toward a beginner) that you could point me towards would also be greatly appreciated.