Skip to content

Contribution Guidelines

Ross Taylor edited this page Aug 27, 2016 · 8 revisions

In its short life so far, PyFlux has been a personal project of mine (Twitter: @rosstaylor90), but I would now like to be more forthright and welcoming of community contributions. I have worked alone on this project in spare time since March 2016, and it's a tough balancing act alongside a full-time job and other commitments. The library is getting better every month but the existing models still need a lot of refinement and speed improvements. So I believe the community can really help out with this and lend expertise to make the library even better - my strengths are still in research rather than software development.

In particular, contributions that achieve the following are very much needed:

  • Contributions that improve performance - for example, further Cythonization, or more basic optimizations that might be lurking in the code in some places. Time series models tend to involve more recursions - so are by their nature slower than many non-sequential model types - but nevertheless, there is still a lot of potential for performance improvements in the library.

  • Contributions that improve estimation of models - in particular, better starting values, or more effective pre-optimization stages.

  • Contributions that expand the feature set - new model types, new model variants, and all the fun stuff.

Because this is a new project, my suggested guidelines for contributions are extremely liberal, but the following things are desirable:

  • Please write unit tests for new features.
  • Please ensure the API is kept as consistent as possible across model types; this is one of the plus points about the library so far.
  • If you are adding a new feature, then please amend documentation (or write new documentation to accompany the feature).
  • New model types that are amenable to multiple types of estimation/inference are to be preferred over those that require very specific estimation/inference procedures.

More generally, if you would like the chance to be a core developer or maintainer of the project, please reach out to me by DM on Twitter. I'm very willing to hand out responsibilities if you want experience working on a open-sourceproject.

Thanks for your interest, and happy Pythoning!

Ross

Clone this wiki locally