Skip to content

Commit 09ac608

Browse files
committed
update contributors faq
1 parent bda5aa3 commit 09ac608

File tree

1 file changed

+46
-26
lines changed

1 file changed

+46
-26
lines changed

docs/community/faq/faq-contributors.md

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,65 @@
11
# First-Time Contributors' Frequently Asked Questions
22

3-
**TODO**
3+
## Technical Questions
44

5-
## Getting Started
5+
1. How is the AutoEmulate project structured?
6+
<!-- An introduction to the project's architecture and where contributors can find key components. -->
7+
* The key component is the `AutoEmulate` class in `autoemulate/compare.py`, which is the main class for setting up and comparing emulators, visualising and summarising results, saving models, and applications such as sensitivity analysis.
8+
* All other modules in `autoemulate/` are supporting modules for the main class, such as data splitting, model processing, hyperparameter searching, plotting, saving, etc.
9+
* `autoemulate/emulators/` contains the emulator models, which are implemented as [scikit-learn estimators](https://scikit-learn.org/1.5/developers/develop.html). Architectures for deep learning models are in `autoemulate/emulators/neural_networks/`, which feed into the emulators via [skorch](https://skorch.readthedocs.io/en/latest/?badge=latest).
10+
* Emulators need to be registered in the model registry in `autoemulate/emulators/__init__.py` to be available in `AutoEmulate`.
11+
* `autoemulate/simulations/` contains simple example simulations.
12+
* `tests/` contains tests for the package.
13+
* `data/` contains example datasets.
14+
* `docs/` contains the documentation source files. We use `jupyter-book` to build the documentation.
615

7-
1. How can I contribute to AutoEmulate?
8-
<!-- Overview of the ways to contribute, from code to documentation, and how to get started. -->
16+
2. How do I set up my development environment for AutoEmulate?
17+
<!-- Steps to configure a local development environment, including any necessary tools or dependencies. -->
18+
* Ensure have poetry installed. If not, install it following the [official instructions](https://python-poetry.org/docs/).
19+
* Fork and clone the repository.
920

10-
2. What are the guidelines for contributing code?
11-
<!-- Information on coding standards, the pull request process, and how contributions are reviewed. -->
21+
```bash
22+
git clone https://github.com/alan-turing-institute/autoemulate.git
23+
cd autoemulate
24+
```
1225

13-
3. How do I choose what to work on for my first contribution?
14-
<!-- Guidance on identifying beginner-friendly issues, selecting tasks based on personal expertise, or areas of the project that need the most help. -->
26+
* Install the dependencies:
1527

16-
4. What coding standards and practices does AutoEmulate follow?
17-
<!-- Information on coding conventions, documentation standards, and testing practices contributors should adhere to. -->
28+
```bash
29+
poetry install
30+
```
1831

19-
5. Are there any specific development tools or environments recommended for working on AutoEmulate?
20-
<!-- Suggestions for IDEs, code editors, version control systems, or other tools that facilitate development and contribute to the project. -->
32+
* If needed, enter the shell (optional when working using an IDE which recognises poetry environments):
2133

22-
## Making Contributions
34+
```bash
35+
poetry shell
36+
```
2337

24-
1. How do I submit a contribution, and what is the review process?
25-
<!-- Step-by-step guide on creating pull requests, what happens after submission, how contributions are reviewed, and typical timelines for feedback. -->
38+
3. How do I run tests for AutoEmulate?
39+
<!-- Instructions on how to execute the project's test suite to ensure changes do not introduce regressions. -->
40+
* We use `pytest` to run the tests. To run all tests:
2641

27-
2. Can I contribute by writing documentation or tutorials, and how?
28-
<!-- Details on how to contribute to the project's documentation, tutorial creation, or translation efforts, including style guides or templates to follow. -->
42+
```bash
43+
pytest
44+
```
2945

30-
3. What should I do if my pull request gets rejected or needs revision?
31-
<!-- Advice on how to handle feedback on contributions, including how to make requested changes and resubmit for review. -->
46+
* To run tests with print statements:
3247

33-
## Technical Questions
48+
```bash
49+
pytest -s
50+
```
3451

35-
1. How is the AutoEmulate project structured?
36-
<!-- An introduction to the project's architecture and where contributors can find key components. -->
52+
* To run a specific test module:
3753

38-
2. How do I set up my development environment for AutoEmulate?
39-
<!-- Steps to configure a local development environment, including any necessary tools or dependencies. -->
54+
```bash
55+
pytest tests/test_example.py
56+
```
4057

41-
3. How do I run tests for AutoEmulate?
42-
<!-- Instructions on how to execute the project's test suite to ensure changes do not introduce regressions. -->
58+
* To run a specific test:
59+
60+
```bash
61+
pytest tests/test_example.py::test_function
62+
```
4363

4464
## Community and Support
4565

0 commit comments

Comments
 (0)