-
Notifications
You must be signed in to change notification settings - Fork 241
Contribution Guidelines
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