You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/developer_guide.md
+32-7Lines changed: 32 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,37 @@
1
+
# Contributing
2
+
3
+
If you are interested in contributing, please open an issue and propose changes or additions you think would be beneficial. After discussion and approval, create a fork of the repository, and submit the changes via a pull request. Please review the guidelines described below.
4
+
1
5
# Style Guide
2
6
3
-
The code written in SequentialSamplingModels.jl follows the guidlines presented in the .[JuliaFormatter.toml](https://github.com/itsdfish/SequentialSamplingModels.jl/blob/master/.JuliaFormatter.toml) file, which is inspired by [blue style](https://github.com/JuliaDiff/BlueStyle). You may run the formatter locally by loading SequentialSamplingModels into your session and running ` JuliaFormatter.format(SequentialSamplingModels)`. All PRs undergo a formatting check, which will provide suggestions if you forget to run the formatter locally.
7
+
The code written in SequentialSamplingModels.jl follows the guidlines presented in the .[JuliaFormatter.toml](https://github.com/itsdfish/SequentialSamplingModels.jl/blob/master/.JuliaFormatter.toml) file, which is inspired by [blue style](https://github.com/JuliaDiff/BlueStyle). You may run the formatter locally by loading SequentialSamplingModels into your session and running ` JuliaFormatter.format(SequentialSamplingModels)`. All PRs undergo a formatting check, which will provide suggestions if you forget to run the formatter locally.
8
+
9
+
# API
10
+
11
+
In this section, we provide a high-level overview of the API. We recommend reviewing the code for the [Lognormal Race Model](https://github.com/itsdfish/SequentialSamplingModels.jl/blob/master/src/multi_choice_models/LNR.jl) for a simple example illustrating the implementation of a model.
12
+
13
+
## Types
14
+
15
+
The type system current consists of the following abstract model types:
16
+
17
+
-`SSM1D`: abstract SSM for univariate reaction time distributions
18
+
-`SSM2D`: abstract SSM for joint choice, reaction time distributions
19
+
-`ContinuousMultivariateSSM`: abstract SSM for continuous multivariate distributions
20
+
21
+
Most models can be implimented as sub-types of one of the three abstract types above. When adding a new model, create a new abstract type so users can develop alternative implementations as needed.
22
+
23
+
## Methods
24
+
25
+
The following methods are required for each new model. Defining new methods for other functions in the API (e.g., `length`) is typically not required.
26
+
27
+
-`increment!`
28
+
-`logpdf`
29
+
-`pdf`
30
+
-`plot_model`
31
+
-`rand`
32
+
-`simulate`
33
+
34
+
Only export (make public) types and methods that are intended for users. Other methods are implementational details for interal use.
4
35
5
36
# Documentation
6
37
@@ -56,9 +87,6 @@ For the benefit of other developers, err on the side of providing doc strings fo
56
87
57
88
Provide a detailed model walk through for the online documentation under the section `Models`. The walk through should include a description of the model, an explanation of the model parameters, and a demonstration showing the pdf overlayed on the histogram (if applicable). Please use existing model examples as a template.
58
89
59
-
# API
60
-
61
-
Only export (make public) types and methods that are intended for users. Other methods are implementational details for interal use.
62
90
63
91
# Unit Tests
64
92
@@ -79,6 +107,3 @@ To ensure consistency across models, please use the following variable names:
79
107
80
108
Use variable names that are descriptive unless there is a strong mathematical convention for a particular variable name. When appropriate, use verbs to describe functions. For example, use `summarize(model)` instead of `summary(model)`. Use lower case for variables, and capitalize the first letter of package names, types, and constructors. Use underscore to separate words. For example, name a file `developer_guide.md` instead of `developerguide.md`.
81
109
82
-
# Contributing
83
-
84
-
If you are interested in contributing, please open an issue and propose changes or additions you think would be beneficial. After discussion and approval, create a fork of the repository, and submit the changes via a pull request.
If you are interested in contributing, please review the [developer guidelines](developer_guide.md) before beginning.
73
76
74
77
# References
75
78
Evans, N. J. & Wagenmakers, E.-J. Evidence accumulation models: Current limitations and future directions. Quantitative Methods for Psychololgy 16, 73–90 (2020).
If you encounter a bug or issue, please submit an issue on [GitHub](https://github.com/itsdfish/SequentialSamplingModels.jl/issues). Be sure to include the following details in the issue:
4
+
5
+
1. A concise description of the problem, including the error message
6
+
2. A minimum working example that demonstrates the issue you encountered.
7
+
3. The version of Julia, SequentialSamplingModels.jl and dependencies you are using
8
+
9
+
Please use the formatting features for code and error messages.
10
+
11
+
# Feature Requests
12
+
13
+
Open an issue on [GitHub](https://github.com/itsdfish/SequentialSamplingModels.jl/issues) to propose a feature that would be of general interest to the larger modeling community.
14
+
15
+
# Help
16
+
17
+
If you need help, feel free to start a thread on [Discourse](https://discourse.julialang.org/) or the [Discussions](https://github.com/itsdfish/SequentialSamplingModels.jl/discussions) forum for SequentialSamplingModels.jl
0 commit comments