Skip to content

Latest commit

 

History

History
55 lines (44 loc) · 3.48 KB

CONTRIBUTING.md

File metadata and controls

55 lines (44 loc) · 3.48 KB

Contribute to Revel

This describes how developers may contribute to Revel.

Mission

Revel's mission is to provide a batteries-included framework for making large scale web application development as efficient and maintainable as possible.

The Play! Framework had a huge impact on ability of the author to deliver software of "business value" extremely rapidly. Bringing a similar toolkit and API to the Go language could provide a framework that delivers both productivity and efficiency of computing resources. (Go programs are generally quite efficient by Java or Scala standards in terms of both memory and CPU.) Plus, Go subjectively is a much more pleasant and scalable language to develop in.

How to Contribute

The ideal process for a successful contribution looks like this:

  1. Send email to [email protected] with your idea.
  2. Within 24 hours (usually), @robfig will respond with a "yes", "no", or discussion.
  3. Upon "yes", fork the repository, and prepare + send a Pull Request
  4. Be sure to run the tests in the revel package, as well as the revel/harness package.
  5. (Optional) If your change affects the developer-facing functionality, it is appreciated (but not mandatory) to add it to the manual. Switch to the gh-pages branch of the repository, document your change, and send a Pull Request for that as well.
  6. @robfig will provide a code review, and when no outstanding comments are left he will merge the pull request(s).

In other words, not much red tape.

Potential Projects

These are outstanding feature requests, roughly ordered by priority. Additionally, there are frequently smaller feature requests or items in the issues.

  1. Better ORM support. Investigate Hood, Jet, or QBS as possible improvement over Gorp. Provide more samples (or modules) and better documentation for setting up common situations like SQL database, Mongo, LevelDB, etc.
  2. Support for other templating languages (e.g. mustache, HAML). Make TemplateLoader pluggable. Use Pongo instead of vanilla Go templates (and update the samples)
  3. Better reverse routing (the current thing sucks, the stuff Play has rocks)
  4. Test Fixtures
  5. Coffeescript pre-processor. Could potentially use otto as a native Go method to compiling.
  6. SCSS/LESS pre-processor.
  7. GAE support. Some progress made in the 'appengine' branch -- the remaining piece is running the appengine services in development.
  8. More Form helpers (template funcs).
  9. A Mongo module (perhaps with a sample app)
  10. Easy emailer support (e.g. to email exception logs to developer, or even to email users),
  11. Deployment to OpenShift (support, documentation, etc)
  12. Deployment to Heroku (support, documentation, etc)
  13. Improve the logging situation. The configuration is a little awkward and not very powerful. Integrating something more powerful would be good. (like seelog or log4go)
  14. Cross-compilation in the "package" command.
  15. ETags, cache controls
  16. Performance tests. Overall QPS would be useful for marketing. Subsystem tests to direct optimization
  17. Authenticity tokens for CSRF protection
  18. A module or plugins for adding HTTP Basic Auth
  19. Allowing the app to hook into the source code processing step
  20. More tests for revel code