Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 2.91 KB

CONTRIBUTING.md

File metadata and controls

52 lines (42 loc) · 2.91 KB

Contributing to SciML

Please use the following guides to help get started with contributing to SciML:

When in doubt, please feel free to open an early pull request or issue and ask! We tend to prefer an open development model, where results are shared early and often. If you feel stuck and want help, join one of the SciML community channels and ask for help!

Interface Definitions and Developer Tooling

The SciML organization is a large organization with hundreds of packages. It can be overwhelming when first getting accustomed to the ecosystem. Thus we suggest focusing on a single aspect when getting started. Ask for help with what you do not know, and don't worry if you may not have handled some case you don't understand (downstream test, automatic differentiation failure, etc.), this is for the maintainers to help you with! Just open the PR with what you have and describe what works and what does not work.

However, if you are looking for more information on the overarching interfaces of the SciML organization, check out the following resources:

  • SciMLBase.jl Documentation: this documentation defines the core interface of the SciML world, from the problem types to the algorithms and the traits that should be supplied to enforce type correctness.
  • SymbolicIndexingInterface.jl defines the global symbolic indexing interface used throughout all problem and solution types.
  • SciMLOperators.jl defines the operator interface used in all of the solvers.
  • CommonSolve.jl defines the high level solve, init, and solve! interfaces.
  • ArrayInterface.jl defines the extended set of array traits used to enforce correctness and allow for fast and slower routes depending on array attributes.
  • StaticArrayInterface.jl is the ArrayInterface extension for static arrays.

Additionally, the following developer tools are provided:

And lastly, the SciMLBenchmarks serves as an automatically updating audit of performance.