gpjax 0.8.2__tar.gz → 0.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. gpjax-0.9.1/.github/CODE_OF_CONDUCT.md +23 -0
  2. gpjax-0.9.1/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md +37 -0
  3. gpjax-0.9.1/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md +32 -0
  4. gpjax-0.9.1/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md +7 -0
  5. gpjax-0.9.1/.github/ISSUE_TEMPLATE/04_DOCS_IMPROVEMENT.md +7 -0
  6. gpjax-0.9.1/.github/ISSUE_TEMPLATE/config.yml +6 -0
  7. gpjax-0.9.1/.github/codecov.yml +18 -0
  8. gpjax-0.9.1/.github/labels.yml +66 -0
  9. gpjax-0.9.1/.github/pull_request_template.md +11 -0
  10. gpjax-0.9.1/.github/release-drafter.yml +28 -0
  11. gpjax-0.9.1/.github/workflows/build_docs.yml +63 -0
  12. gpjax-0.9.1/.github/workflows/integration.yml +34 -0
  13. gpjax-0.9.1/.github/workflows/labeler.yml +18 -0
  14. gpjax-0.9.1/.github/workflows/pr_greeting.yml +39 -0
  15. gpjax-0.9.1/.github/workflows/ruff.yml +12 -0
  16. gpjax-0.9.1/.github/workflows/stale_prs.yml +45 -0
  17. gpjax-0.9.1/.github/workflows/test_docs.yml +43 -0
  18. gpjax-0.9.1/.github/workflows/tests.yml +48 -0
  19. gpjax-0.9.1/.gitignore +155 -0
  20. gpjax-0.9.1/CITATION.bib +29 -0
  21. gpjax-0.9.1/Makefile +34 -0
  22. {gpjax-0.8.2 → gpjax-0.9.1}/PKG-INFO +31 -32
  23. {gpjax-0.8.2 → gpjax-0.9.1}/README.md +6 -9
  24. gpjax-0.9.1/docs/CODE_OF_CONDUCT.md +25 -0
  25. gpjax-0.9.1/docs/GOVERNANCE.md +96 -0
  26. gpjax-0.9.1/docs/contributing.md +152 -0
  27. gpjax-0.9.1/docs/design.md +38 -0
  28. gpjax-0.9.1/docs/index.md +75 -0
  29. gpjax-0.9.1/docs/index.rst +5 -0
  30. gpjax-0.9.1/docs/installation.md +49 -0
  31. gpjax-0.9.1/docs/javascripts/katex.js +26 -0
  32. gpjax-0.9.1/docs/refs.bib +126 -0
  33. gpjax-0.9.1/docs/scripts/gen_examples.py +102 -0
  34. gpjax-0.9.1/docs/scripts/gen_pages.py +82 -0
  35. gpjax-0.9.1/docs/scripts/notebook_converter.py +30 -0
  36. gpjax-0.9.1/docs/scripts/sharp_bits_figure.py +108 -0
  37. gpjax-0.9.1/docs/sharp_bits.md +177 -0
  38. gpjax-0.9.1/docs/static/GP.pdf +0 -0
  39. gpjax-0.9.1/docs/static/GP.svg +434 -0
  40. gpjax-0.9.1/docs/static/bijector_figure.svg +813 -0
  41. gpjax-0.9.1/docs/static/css/gpjax_theme.css +3 -0
  42. gpjax-0.9.1/docs/static/favicon.ico +0 -0
  43. gpjax-0.9.1/docs/static/gpjax.mplstyle +54 -0
  44. gpjax-0.9.1/docs/static/gpjax_logo.pdf +0 -0
  45. gpjax-0.9.1/docs/static/gpjax_logo.svg +27 -0
  46. gpjax-0.9.1/docs/static/jaxkern/lato.ttf +0 -0
  47. gpjax-0.9.1/docs/static/jaxkern/logo.png +0 -0
  48. gpjax-0.9.1/docs/static/jaxkern/logo.svg +3712 -0
  49. gpjax-0.9.1/docs/static/jaxkern/main.py +59 -0
  50. gpjax-0.9.1/docs/static/step_size_figure.png +0 -0
  51. gpjax-0.9.1/docs/static/step_size_figure.svg +559 -0
  52. gpjax-0.9.1/docs/stylesheets/extra.css +103 -0
  53. gpjax-0.9.1/docs/stylesheets/permalinks.css +38 -0
  54. gpjax-0.9.1/examples/backend.py +371 -0
  55. gpjax-0.9.1/examples/barycentres/barycentre_gp.gif +0 -0
  56. gpjax-0.9.1/examples/barycentres.py +308 -0
  57. gpjax-0.9.1/examples/bayesian_optimisation.py +790 -0
  58. gpjax-0.9.1/examples/classification.py +324 -0
  59. gpjax-0.9.1/examples/collapsed_vi.py +248 -0
  60. gpjax-0.9.1/examples/constructing_new_kernels.py +338 -0
  61. gpjax-0.9.1/examples/data/max_tempeature_switzerland.csv +153 -0
  62. gpjax-0.9.1/examples/data/yacht_hydrodynamics.data +308 -0
  63. gpjax-0.9.1/examples/decision_making.py +411 -0
  64. gpjax-0.9.1/examples/deep_kernels.py +276 -0
  65. gpjax-0.9.1/examples/gpjax.mplstyle +51 -0
  66. gpjax-0.9.1/examples/graph_kernels.py +233 -0
  67. gpjax-0.9.1/examples/intro_to_gps/decomposed_mll.png +0 -0
  68. gpjax-0.9.1/examples/intro_to_gps/generating_process.png +0 -0
  69. gpjax-0.9.1/examples/intro_to_gps.py +547 -0
  70. gpjax-0.9.1/examples/intro_to_kernels.py +673 -0
  71. gpjax-0.9.1/examples/likelihoods_guide.py +294 -0
  72. gpjax-0.9.1/examples/oceanmodelling.py +554 -0
  73. gpjax-0.9.1/examples/poisson.py +266 -0
  74. gpjax-0.9.1/examples/regression.py +264 -0
  75. gpjax-0.9.1/examples/uncollapsed_vi.py +369 -0
  76. gpjax-0.9.1/examples/utils.py +80 -0
  77. gpjax-0.9.1/examples/yacht.py +293 -0
  78. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/__init__.py +9 -6
  79. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/citation.py +0 -47
  80. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/dataset.py +19 -13
  81. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/decision_maker.py +16 -19
  82. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/posterior_handler.py +20 -23
  83. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/search_space.py +1 -1
  84. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/test_functions/continuous_functions.py +23 -16
  85. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/test_functions/non_conjugate_functions.py +8 -8
  86. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/utility_functions/__init__.py +8 -0
  87. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/utility_functions/base.py +9 -13
  88. gpjax-0.9.1/gpjax/decision_making/utility_functions/expected_improvement.py +112 -0
  89. gpjax-0.9.1/gpjax/decision_making/utility_functions/probability_of_improvement.py +125 -0
  90. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/utility_functions/thompson_sampling.py +4 -4
  91. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/utility_maximizer.py +7 -10
  92. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/utils.py +16 -2
  93. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/distributions.py +54 -63
  94. gpjax-0.9.1/gpjax/fit.py +351 -0
  95. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/gps.py +205 -213
  96. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/integrators.py +39 -41
  97. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/__init__.py +3 -0
  98. gpjax-0.9.1/gpjax/kernels/approximations/rff.py +102 -0
  99. gpjax-0.9.1/gpjax/kernels/base.py +339 -0
  100. gpjax-0.9.1/gpjax/kernels/computations/base.py +109 -0
  101. gpjax-0.9.1/gpjax/kernels/computations/basis_functions.py +74 -0
  102. gpjax-0.9.1/gpjax/kernels/computations/constant_diagonal.py +55 -0
  103. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/computations/dense.py +4 -17
  104. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/computations/diagonal.py +6 -31
  105. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/computations/eigen.py +13 -22
  106. gpjax-0.9.1/gpjax/kernels/non_euclidean/graph.py +113 -0
  107. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/non_euclidean/utils.py +4 -5
  108. gpjax-0.9.1/gpjax/kernels/nonstationary/arccosine.py +160 -0
  109. gpjax-0.9.1/gpjax/kernels/nonstationary/linear.py +79 -0
  110. gpjax-0.9.1/gpjax/kernels/nonstationary/polynomial.py +91 -0
  111. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/stationary/__init__.py +2 -0
  112. gpjax-0.9.1/gpjax/kernels/stationary/base.py +194 -0
  113. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/stationary/matern12.py +14 -30
  114. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/stationary/matern32.py +20 -38
  115. gpjax-0.9.1/gpjax/kernels/stationary/matern52.py +57 -0
  116. gpjax-0.9.1/gpjax/kernels/stationary/periodic.py +91 -0
  117. gpjax-0.9.1/gpjax/kernels/stationary/powered_exponential.py +94 -0
  118. gpjax-0.9.1/gpjax/kernels/stationary/rational_quadratic.py +86 -0
  119. gpjax-0.9.1/gpjax/kernels/stationary/rbf.py +48 -0
  120. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/stationary/utils.py +0 -1
  121. gpjax-0.9.1/gpjax/kernels/stationary/white.py +64 -0
  122. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/likelihoods.py +69 -50
  123. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/lower_cholesky.py +23 -14
  124. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/mean_functions.py +44 -47
  125. gpjax-0.9.1/gpjax/objectives.py +417 -0
  126. gpjax-0.9.1/gpjax/parameters.py +167 -0
  127. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/scan.py +3 -7
  128. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/typing.py +5 -3
  129. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/variational_families.py +207 -172
  130. gpjax-0.9.1/mkdocs.yml +135 -0
  131. gpjax-0.9.1/pyproject.toml +232 -0
  132. gpjax-0.9.1/static/CONTRIBUTING.md +152 -0
  133. gpjax-0.9.1/static/paper.bib +285 -0
  134. gpjax-0.9.1/static/paper.md +59 -0
  135. gpjax-0.9.1/static/paper.pdf +0 -0
  136. gpjax-0.9.1/tests/__init__.py +0 -0
  137. gpjax-0.9.1/tests/conftest.py +8 -0
  138. gpjax-0.9.1/tests/integration_tests.py +105 -0
  139. gpjax-0.9.1/tests/test_citations.py +160 -0
  140. gpjax-0.9.1/tests/test_dataset.py +182 -0
  141. gpjax-0.9.1/tests/test_decision_making/__init__.py +0 -0
  142. gpjax-0.9.1/tests/test_decision_making/test_decision_maker.py +474 -0
  143. gpjax-0.9.1/tests/test_decision_making/test_posterior_handler.py +315 -0
  144. gpjax-0.9.1/tests/test_decision_making/test_search_space.py +206 -0
  145. gpjax-0.9.1/tests/test_decision_making/test_test_functions/__init__.py +0 -0
  146. gpjax-0.9.1/tests/test_decision_making/test_test_functions/test_continuous_functions.py +185 -0
  147. gpjax-0.9.1/tests/test_decision_making/test_test_functions/test_non_conjugate_functions.py +112 -0
  148. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/__init__.py +0 -0
  149. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/test_base.py +26 -0
  150. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/test_expected_improvement.py +67 -0
  151. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/test_probability_of_improvement.py +64 -0
  152. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/test_thompson_sampling.py +120 -0
  153. gpjax-0.9.1/tests/test_decision_making/test_utility_functions/test_utility_functions.py +167 -0
  154. gpjax-0.9.1/tests/test_decision_making/test_utility_maximizer.py +165 -0
  155. gpjax-0.9.1/tests/test_decision_making/test_utils.py +84 -0
  156. gpjax-0.9.1/tests/test_decision_making/utils.py +90 -0
  157. gpjax-0.9.1/tests/test_fit.py +326 -0
  158. gpjax-0.9.1/tests/test_gaussian_distribution.py +163 -0
  159. gpjax-0.9.1/tests/test_gps.py +346 -0
  160. gpjax-0.9.1/tests/test_integrators.py +92 -0
  161. {gpjax-0.8.2/gpjax/base → gpjax-0.9.1/tests/test_kernels}/__init__.py +1 -23
  162. gpjax-0.9.1/tests/test_kernels/test_approximations.py +167 -0
  163. gpjax-0.9.1/tests/test_kernels/test_base.py +211 -0
  164. gpjax-0.9.1/tests/test_kernels/test_computation.py +81 -0
  165. gpjax-0.9.1/tests/test_kernels/test_non_euclidean.py +50 -0
  166. gpjax-0.9.1/tests/test_kernels/test_nonstationary.py +206 -0
  167. gpjax-0.9.1/tests/test_kernels/test_stationary.py +224 -0
  168. gpjax-0.9.1/tests/test_kernels/test_utils.py +50 -0
  169. gpjax-0.9.1/tests/test_likelihoods.py +113 -0
  170. gpjax-0.9.1/tests/test_lower_cholesky.py +110 -0
  171. gpjax-0.9.1/tests/test_markdown.py +20 -0
  172. gpjax-0.9.1/tests/test_mean_functions.py +88 -0
  173. gpjax-0.9.1/tests/test_objectives.py +247 -0
  174. gpjax-0.9.1/tests/test_parameters.py +56 -0
  175. gpjax-0.9.1/tests/test_variational_families.py +227 -0
  176. gpjax-0.8.2/gpjax/base/module.py +0 -416
  177. gpjax-0.8.2/gpjax/base/param.py +0 -73
  178. gpjax-0.8.2/gpjax/fit.py +0 -321
  179. gpjax-0.8.2/gpjax/flax_base/bijectors.py +0 -8
  180. gpjax-0.8.2/gpjax/flax_base/param.py +0 -16
  181. gpjax-0.8.2/gpjax/flax_base/types.py +0 -15
  182. gpjax-0.8.2/gpjax/kernels/approximations/rff.py +0 -92
  183. gpjax-0.8.2/gpjax/kernels/base.py +0 -208
  184. gpjax-0.8.2/gpjax/kernels/computations/base.py +0 -89
  185. gpjax-0.8.2/gpjax/kernels/computations/basis_functions.py +0 -90
  186. gpjax-0.8.2/gpjax/kernels/computations/constant_diagonal.py +0 -92
  187. gpjax-0.8.2/gpjax/kernels/non_euclidean/graph.py +0 -107
  188. gpjax-0.8.2/gpjax/kernels/nonstationary/arccosine.py +0 -122
  189. gpjax-0.8.2/gpjax/kernels/nonstationary/linear.py +0 -59
  190. gpjax-0.8.2/gpjax/kernels/nonstationary/polynomial.py +0 -66
  191. gpjax-0.8.2/gpjax/kernels/stationary/matern52.py +0 -75
  192. gpjax-0.8.2/gpjax/kernels/stationary/periodic.py +0 -64
  193. gpjax-0.8.2/gpjax/kernels/stationary/powered_exponential.py +0 -69
  194. gpjax-0.8.2/gpjax/kernels/stationary/rational_quadratic.py +0 -62
  195. gpjax-0.8.2/gpjax/kernels/stationary/rbf.py +0 -66
  196. gpjax-0.8.2/gpjax/kernels/stationary/white.py +0 -62
  197. gpjax-0.8.2/gpjax/objectives.py +0 -498
  198. gpjax-0.8.2/gpjax/progress_bar.py +0 -131
  199. gpjax-0.8.2/pyproject.toml +0 -220
  200. {gpjax-0.8.2 → gpjax-0.9.1}/LICENSE +0 -0
  201. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/__init__.py +0 -0
  202. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/decision_making/test_functions/__init__.py +0 -0
  203. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/approximations/__init__.py +0 -0
  204. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/computations/__init__.py +0 -0
  205. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/non_euclidean/__init__.py +0 -0
  206. {gpjax-0.8.2 → gpjax-0.9.1}/gpjax/kernels/nonstationary/__init__.py +0 -0
@@ -0,0 +1,23 @@
1
+ Like the technical community as a whole, the GPJax team and community is made up of a mixture of professionals and volunteers from all over the world, working on every aspect of the mission - including mentorship, teaching and connecting people.
2
+
3
+ Diversity is one of our huge strengths, but it can also lead to communication issues and unhappiness. To that end, we have a few ground rules that we ask people to adhere to when they're participating within this community and project. These rules apply equally to founders, mentors and those seeking help and guidance.
4
+
5
+ This isn't an exhaustive list of things that you can't do. Rather, take it in the spirit in which it's intended - a guide to make it easier to enrich all of us, the technical community and the conferences and usergroups we hope to guide new speakers to.
6
+
7
+ This code of conduct applies to all communication: this includes IRC, the mailing list, and other forums such as Skype, Google+ Hangouts, etc.
8
+
9
+ - Be welcoming, friendly, and patient.
10
+ - Be considerate. Your work will be used by other people, and you in turn will depend on the work of others. Any decision you make will affect users and colleagues, and you should take those consequences into account when making decisions.
11
+ - Be respectful. __Not all of us will agree all the time, but disagreement is no excuse for poor behaviour and poor manners.__ We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the GPJax community should be respectful when dealing with other members as well as with people outside the GPJax community and with user groups/conferences, usergroup/conference organizers.
12
+ - Be careful in the words that you choose. Remember that sexist, racist, and other exclusionary jokes can be offensive to those around you. __Be kind and welcoming to others.__ Do not insult or put down other participants. Behave professionally. The harassment and exclusionary behaviour towards others is unacceptable. This includes, but is not limited to:
13
+ - Violent threats or language directed against another person.
14
+ - Discriminatory jokes and language.
15
+ - Posting sexually explicit or violent material.
16
+ - Posting (or threatening to post) other people's personally identifying information ("doxing").
17
+ - Personal insults, especially those using racist or sexist terms.
18
+ - Unwelcome sexual attention.
19
+ - Advocating for, or encouraging, any of the above behaviour.
20
+ - Repeated harassment of others. In general, if someone asks you to stop, then stop.
21
+ - When we disagree, we try to understand why. Disagreements, both social and technical, happen all the time and GPJax is no exception. It is important that we resolve disagreements and differing views constructively. Remember that we're different. The strength of GPJax comes from its varied community, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn't mean that they're wrong. Don't forget that it is human to err and blaming each other doesn't get us anywhere, rather offer to help resolving issues and to help learn from mistakes.
22
+
23
+ Text adapted from the [Speak Up! project](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html) and [Django](https://www.djangoproject.com/conduct/)
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a report to help GPJax to improve
4
+ title: "bug: "
5
+ labels: "bug"
6
+ assignees: ""
7
+ ---
8
+
9
+ # Bug Report
10
+
11
+ **GPJax version:**
12
+
13
+ <!-- Please specify commit or tag version. -->
14
+
15
+ **Current behavior:**
16
+
17
+ <!-- Describe how the bug manifests. -->
18
+
19
+ **Expected behavior:**
20
+
21
+ <!-- Describe what the behavior would be without the bug. -->
22
+
23
+ **Steps to reproduce:**
24
+
25
+ <!-- Please explain the steps required to duplicate the issue, especially if you are able to provide a sample application. -->
26
+
27
+ **Related code:**
28
+
29
+ <!-- If you are able to illustrate the bug or feature request with an example, please provide it here. -->
30
+
31
+ ```
32
+ insert short code snippets here
33
+ ```
34
+
35
+ **Other information:**
36
+
37
+ <!-- List any other information that is relevant to your issue. Related issues, suggestions on how to fix, Stack Overflow links, forum links, etc. -->
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest an idea for this project
4
+ title: "feat: "
5
+ labels: "enhancement"
6
+ assignees: ""
7
+ ---
8
+
9
+ # Feature Request
10
+
11
+ **Describe the Feature Request**
12
+
13
+ <!-- A clear and concise description of what the feature request is. Please include if your feature request is related to a problem. -->
14
+
15
+ **Describe Preferred Solution**
16
+
17
+ <!-- A clear and concise description of what you want to happen. -->
18
+
19
+ **Describe Alternatives**
20
+
21
+ <!-- A clear and concise description of any alternative solutions or features you've considered. -->
22
+
23
+ **Related Code**
24
+
25
+ <!-- If you are able to illustrate the bug or feature request with an example, please provide it here. -->
26
+
27
+ **Additional Context**
28
+
29
+ <!-- List any other information that is relevant to your issue. Stack traces, related issues, suggestions on how to add, use case, Stack Overflow links, forum links, screenshots, OS if applicable, etc. -->
30
+
31
+ **If the feature request is approved, would you be willing to submit a PR?**
32
+ Yes / No _(Help can be provided if you need assistance submitting a PR)_
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: Codebase improvement
3
+ about: Provide your feedback for the existing codebase. Suggest a better solution for algorithms, development tools, etc.
4
+ title: "dev: "
5
+ labels: "enhancement"
6
+ assignees: ""
7
+ ---
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: Documentation improvement
3
+ about: Suggest an area of documentation that could be improved
4
+ title: "docs: "
5
+ labels: "documentation"
6
+ assignees: ""
7
+ ---
@@ -0,0 +1,6 @@
1
+ ---
2
+ blank_issues_enabled: false
3
+ contact_links:
4
+ - name: GPJax Community Support
5
+ url: https://github.com/thomaspinder/GPJax/discussions
6
+ about: Please ask and answer questions here.
@@ -0,0 +1,18 @@
1
+ # codecov used to be able to find this anywhere, now we have to manually
2
+ # tell it where to look
3
+ comment: false
4
+
5
+ codecov:
6
+ notify:
7
+ require_ci_to_pass: no
8
+
9
+ coverage:
10
+ status:
11
+ patch:
12
+ default:
13
+ target: 50%
14
+ if_no_uploads: error
15
+ if_not_found: success
16
+ if_ci_failed: failure
17
+ project:
18
+ default: false
@@ -0,0 +1,66 @@
1
+ ---
2
+ # Labels names are important as they are used by Release Drafter to decide
3
+ # regarding where to record them in changelog or if to skip them.
4
+ #
5
+ # The repository labels will be automatically configured using this file and
6
+ # the GitHub Action https://github.com/marketplace/actions/github-labeler.
7
+ - name: breaking
8
+ description: Breaking Changes
9
+ color: bfd4f2
10
+ - name: bug
11
+ description: Something isn't working
12
+ color: d73a4a
13
+ - name: build
14
+ description: Build System and Dependencies
15
+ color: bfdadc
16
+ - name: ci
17
+ description: Continuous Integration
18
+ color: 4a97d6
19
+ - name: dependencies
20
+ description: Pull requests that update a dependency file
21
+ color: 0366d6
22
+ - name: documentation
23
+ description: Improvements or additions to documentation
24
+ color: 0075ca
25
+ - name: duplicate
26
+ description: This issue or pull request already exists
27
+ color: cfd3d7
28
+ - name: enhancement
29
+ description: New feature or request
30
+ color: a2eeef
31
+ - name: github_actions
32
+ description: Pull requests that update Github_actions code
33
+ color: "000000"
34
+ - name: good first issue
35
+ description: Good for newcomers
36
+ color: 7057ff
37
+ - name: help wanted
38
+ description: Extra attention is needed
39
+ color: 008672
40
+ - name: invalid
41
+ description: This doesn't seem right
42
+ color: e4e669
43
+ - name: performance
44
+ description: Performance
45
+ color: "016175"
46
+ - name: python
47
+ description: Pull requests that update Python code
48
+ color: 2b67c6
49
+ - name: question
50
+ description: Further information is requested
51
+ color: d876e3
52
+ - name: refactoring
53
+ description: Refactoring
54
+ color: ef67c4
55
+ - name: removal
56
+ description: Removals and Deprecations
57
+ color: 9ae7ea
58
+ - name: style
59
+ description: Style
60
+ color: c120e5
61
+ - name: testing
62
+ description: Testing
63
+ color: b1fc6f
64
+ - name: wontfix
65
+ description: This will not be worked on
66
+ color: ffffff
@@ -0,0 +1,11 @@
1
+ ## Checklist
2
+
3
+ - [ ] I've formatted the new code by running `hatch run dev:format` before committing.
4
+ - [ ] I've added tests for new code.
5
+ - [ ] I've added docstrings for the new code.
6
+
7
+ ## Description
8
+
9
+ Please describe your changes here. If this fixes a bug, please link to the issue, if possible.
10
+
11
+ Issue Number: N/A
@@ -0,0 +1,28 @@
1
+ categories:
2
+ - title: ":boom: Breaking Changes"
3
+ label: "breaking"
4
+ - title: ":rocket: Features"
5
+ label: "enhancement"
6
+ - title: ":fire: Removals and Deprecations"
7
+ label: "removal"
8
+ - title: ":beetle: Fixes"
9
+ label: "bug"
10
+ - title: ":racehorse: Performance"
11
+ label: "performance"
12
+ - title: ":rotating_light: Testing"
13
+ label: "testing"
14
+ - title: ":construction_worker: Continuous Integration"
15
+ label: "ci"
16
+ - title: ":books: Documentation"
17
+ label: "documentation"
18
+ - title: ":hammer: Refactoring"
19
+ label: "refactoring"
20
+ - title: ":lipstick: Style"
21
+ label: "style"
22
+ - title: ":package: Dependencies"
23
+ labels:
24
+ - "dependencies"
25
+ - "build"
26
+ template: |
27
+ ## Changes
28
+ $CHANGES
@@ -0,0 +1,63 @@
1
+ name: Build the documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "**"
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: write
13
+
14
+ jobs:
15
+ build-docs:
16
+ concurrency: ci-${{ github.ref }}
17
+ name: Build docs (${{ matrix.python-version }}, ${{ matrix.os }})
18
+ runs-on: ${{ matrix.os }}
19
+ defaults:
20
+ run:
21
+ shell: bash -l {0}
22
+ strategy:
23
+ matrix:
24
+ os: ["ubuntu-latest"]
25
+ python-version: ["3.10"]
26
+
27
+ steps:
28
+ # Grap the latest commit from the branch
29
+ - name: Checkout the branch
30
+ uses: actions/checkout@v3.5.2
31
+ with:
32
+ persist-credentials: false
33
+
34
+ # Create a virtual environment
35
+ - name: create Conda environment
36
+ uses: conda-incubator/setup-miniconda@v2
37
+ with:
38
+ auto-update-conda: true
39
+ python-version: ${{ matrix.python-version }}
40
+
41
+ # Install katex for math support
42
+ - name: Install NPM
43
+ uses: actions/setup-node@v3
44
+ with:
45
+ node-version: 16
46
+ - name: Install KaTeX
47
+ run: |
48
+ npm install katex
49
+
50
+ # Install Hatch
51
+ - name: Install Hatch
52
+ uses: pypa/hatch@install
53
+
54
+ - name: Build the documentation with MKDocs
55
+ run: |
56
+ conda install pandoc
57
+ hatch run docs:build
58
+
59
+ - name: Deploy Page 🚀
60
+ uses: JamesIves/github-pages-deploy-action@v4.4.1
61
+ with:
62
+ branch: gh-pages
63
+ folder: site
@@ -0,0 +1,34 @@
1
+ name: Integration Tests
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ integration-tests:
10
+ name: Run Integration Tests
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ # Select the Python versions to test against
15
+ os: ["ubuntu-latest", "macos-latest"]
16
+ python-version: ["3.10", "3.11"]
17
+ fail-fast: true
18
+ steps:
19
+ - name: Check out the code
20
+ uses: actions/checkout@v3.5.2
21
+ with:
22
+ fetch-depth: 1
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ uses: actions/setup-python@v4
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ # Install Hatch
29
+ - name: Install Hatch
30
+ uses: pypa/hatch@install
31
+
32
+ # Run the unit tests and build the coverage report
33
+ - name: Run Integration Tests
34
+ run: hatch run docs:integration
@@ -0,0 +1,18 @@
1
+ name: Labeler
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ labeler:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Check out the repository
13
+ uses: actions/checkout@v3.5.2
14
+
15
+ - name: Run Labeler
16
+ uses: crazy-max/ghaction-github-labeler@v4.1.0
17
+ with:
18
+ skip-delete: true
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: PR Greetings
3
+
4
+ on: [pull_request_target]
5
+
6
+ permissions:
7
+ pull-requests: write
8
+
9
+ jobs:
10
+ greeting:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/first-interaction@v1
15
+ with:
16
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
17
+ pr-message: >+
18
+ Thank you for opening your first PR into GPJax!
19
+
20
+
21
+ If you have not heard from us in a while, please feel free to ping
22
+ `@gpjax/developers` or anyone who has commented on the PR.
23
+ Most of our reviewers are volunteers and sometimes things fall
24
+ through the cracks.
25
+
26
+
27
+ You can also join us [on
28
+ Slack](https://join.slack.com/t/gpjax/shared_invite/zt-1da57pmjn-rdBCVg9kApirEEn2E5Q2Zw) for real-time
29
+ discussion.
30
+
31
+
32
+ For details on testing, writing docs, and our review process,
33
+ please see [the developer
34
+ guide](https://docs.jaxgaussianprocesses.com/contributing/)
35
+
36
+
37
+ We strive to be a welcoming and open project. Please follow our
38
+ [Code of
39
+ Conduct](https://github.com/JaxGaussianProcesses/GPJax/blob/main/.github/CODE_OF_CONDUCT.md).
@@ -0,0 +1,12 @@
1
+ name: Check linting
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ jobs:
8
+ ruff:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v3.5.2
12
+ - uses: chartboost/ruff-action@v1
@@ -0,0 +1,45 @@
1
+ name: Close stale issues
2
+ on:
3
+ schedule:
4
+ - cron: "30 8 * * *"
5
+
6
+ jobs:
7
+ close-issues:
8
+ runs-on: ubuntu-latest
9
+ permissions:
10
+ issues: write
11
+ pull-requests: write
12
+ steps:
13
+ - uses: actions/stale@v9.0.0
14
+ with:
15
+ stale-issue-label: "stale"
16
+ stale-pr-label: "stale"
17
+ exempt-issue-label: "no-stale,help-wanted"
18
+ exempt-pr-label: "no-stale,feedback-wanted"
19
+ remove-stale-when-updated: true
20
+ # Days before issue/PR is marked stale
21
+ days-before-stale: 70
22
+ # Days before an issue/PR is closed after marking
23
+ days-before-close: 7
24
+ stale-issue-message: >
25
+ There has been no recent activity on this issue. To keep our issues log
26
+ clean, we remove old and inactive issues.
27
+
28
+ Please update to the latest version of GPJax and
29
+ check if that resolves the issue. Let us know if that works for you
30
+ by leaving a comment.
31
+
32
+ This issue is now marked as stale and will be closed if no
33
+ further activity occurs. If you believe that this is incorrect,
34
+ please comment. Thank you!
35
+ close-issue-message: >
36
+ There has been no activity on this PR for some time. Therefore, we will
37
+ be automatically closing the PR if no new activity occurs within the next
38
+ seven days.
39
+
40
+ Thank you for your contributions.
41
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
42
+ # Always start with the oldest issues
43
+ ascending: true
44
+ # Ensure that we do not encounter rate limits
45
+ operations-per-run: 60
@@ -0,0 +1,43 @@
1
+ name: Test documentation
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ jobs:
7
+ test-docs:
8
+ # Functionality for testing documentation builds on multiple OSes and Python versions
9
+ name: Build docs (${{ matrix.python-version }}, ${{ matrix.os }})
10
+ runs-on: ${{ matrix.os }}
11
+ concurrency:
12
+ group: ${{ github.head_ref }}
13
+ cancel-in-progress: true
14
+ defaults:
15
+ run:
16
+ shell: bash -l {0}
17
+ strategy:
18
+ matrix:
19
+ os: ["ubuntu-latest"]
20
+ python-version: ["3.10"]
21
+
22
+ steps:
23
+ # Grap the latest commit from the branch
24
+ - name: Checkout the branch
25
+ uses: actions/checkout@v3.5.2
26
+ with:
27
+ persist-credentials: false
28
+
29
+ # Create a virtual environment
30
+ - name: create Conda environment
31
+ uses: conda-incubator/setup-miniconda@v2
32
+ with:
33
+ auto-update-conda: true
34
+ python-version: ${{ matrix.python-version }}
35
+
36
+ # Install Hatch
37
+ - name: Install Hatch
38
+ uses: pypa/hatch@install
39
+
40
+ - name: Build the documentation with MKDocs
41
+ run: |
42
+ conda install pandoc
43
+ hatch run docs:build
@@ -0,0 +1,48 @@
1
+ name: Run Tests
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ unit-tests:
10
+ name: Run Tests
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ # Select the Python versions to test against
15
+ os: ["ubuntu-latest", "macos-latest"]
16
+ python-version: ["3.10", "3.11"]
17
+ fail-fast: true
18
+ steps:
19
+ - name: Check out the code
20
+ uses: actions/checkout@v3.5.2
21
+ with:
22
+ fetch-depth: 1
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ uses: actions/setup-python@v4
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ # Install Hatch
29
+ - name: Install Hatch
30
+ uses: pypa/hatch@install
31
+
32
+ # Install the dependencies
33
+ - name: Check docstrings
34
+ run: |
35
+ hatch run dev:docstrings
36
+
37
+ # Run the unit tests and build the coverage report
38
+ - name: Run Tests
39
+ run: hatch run dev:coverage
40
+
41
+ - name: Upload code coverage
42
+ uses: codecov/codecov-action@v3
43
+ with:
44
+ token: ${{ secrets.CODECOV_TOKEN }}
45
+ file: ./coverage.xml
46
+ name: gpjax
47
+ flags: unittests
48
+ env_vars: OS,PYTHON