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
description: Report a software bug on Turing components.
3
+
labels: ['type: bug', 'status: waiting triage']
4
+
body:
5
+
- type: dropdown
6
+
attributes:
7
+
label: Turing Component
8
+
description: What Turing component is this issue related to?
9
+
multiple: true
10
+
options:
11
+
- API
12
+
- Router
13
+
- Experiment Engine Plugin
14
+
- Pyfunc Ensembler
15
+
- Batch Ensembler
16
+
- SDK
17
+
- UI
18
+
- Others
19
+
validations:
20
+
required: true
21
+
- type: textarea
22
+
attributes:
23
+
label: Describe the Issue
24
+
description: A clear and concise description of the issue you encountered.
25
+
validations:
26
+
required: true
27
+
- type: textarea
28
+
attributes:
29
+
label: Steps to Reproduce
30
+
description: Please provide the steps to reproduce the issue.
31
+
value: |
32
+
1.
33
+
2.
34
+
3.
35
+
validations:
36
+
required: true
37
+
- type: textarea
38
+
attributes:
39
+
label: Expected behavior
40
+
description: A clear and concise description of what you expected to happen.
41
+
validations:
42
+
required: true
43
+
- type: textarea
44
+
attributes:
45
+
label: System
46
+
description: Add your system information which surfaced this bug.
47
+
value: |
48
+
- Device: [e.g. Macbook, Windows Laptop]
49
+
- OS: [e.g. macOS Monterey, Windows 10, Ubuntu 20.04]
50
+
- Browser: [e.g. Chrome, Safari]
51
+
- Version: [e.g. 22]
52
+
validations:
53
+
required: true
54
+
- type: textarea
55
+
attributes:
56
+
label: Additional context
57
+
description: Add any other context about the problem here. Or, screenshots (if applicable) to help explain your problem. You can drag and drop `png`, `jpg`, `gif`, etc. in this box.
Thank you for your interest in contributing to Turing. This document provides
4
-
some suggestions and guidelines on how you can get involved.
5
-
6
-
## Become a contributor
3
+
Thank you for your interest in contributing to Turing.
7
4
8
5
You can contribute to Turing in several ways:
9
6
- Contribute to the Turing codebase
@@ -12,29 +9,102 @@ You can contribute to Turing in several ways:
12
9
- Create articles and documentation for users and contributors
13
10
- Help others answering questions about Turing
14
11
15
-
### Report bugs
12
+
The following sections provide some suggestions and guidelines you should follow:
13
+
-[Code of Conduct](#coc)
14
+
-[Issues and Bugs](#issue)
15
+
-[Feature Requests](#feature)
16
+
-[Submission Guidelines](#submit)
17
+
-[Coding Rules](#rules)
18
+
19
+
## <aname="coc"></a> Code of Conduct
20
+
21
+
Help us keep Turing open and inclusive.
22
+
Please read and follow our [Code of Conduct](https://github.com/caraml-dev/turing/blob/main/CODE_OF_CONDUCT.md).
23
+
24
+
## <aname="issue"></a> Found a Bug?
25
+
26
+
If you find a bug in the source code, you can help us by [submitting an issue](#submit-issue) to our [GitHub Repository][github].
27
+
Even better, you can [submit a Pull Request](#submit-pr) with a fix.
28
+
29
+
30
+
## <aname="feature"></a> Missing a Feature?
31
+
You can *request* a new feature by [submitting an issue](#submit-issue) to our GitHub Repository.
32
+
If you would like to *implement* a new feature, please consider the size of the change in order to determine the right steps to proceed:
33
+
34
+
* For a **Major Feature**, first open an issue and outline your proposal so that it can be discussed.
35
+
This process allows us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
36
+
37
+
**Note**: Adding a new topic to the documentation, or significantly re-writing a topic, counts as a major feature.
38
+
39
+
***Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr).
40
+
41
+
## <aname="submit"></a> Submission Guidelines
42
+
43
+
### <aname="submit-issue"></a> Submitting an Issue
44
+
45
+
Before you submit an issue, please search the issue tracker. An issue for your problem might already exist and the discussion might inform you of workarounds readily available.
46
+
47
+
We want to fix all the issues as soon as possible, but before fixing a bug, we need to reproduce and confirm it.
48
+
In order to reproduce bugs, we require that you provide a minimal reproduction.
49
+
Having a minimal reproducible scenario gives us the necessary information without going back and forth to you with additional questions.
50
+
51
+
A minimal reproduction allows us to quickly confirm a bug (or point out a coding problem) as well as confirm that we are fixing the right problem.
52
+
53
+
Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you, we are going to close an issue that doesn't have enough information to be reproduced.
54
+
55
+
You can file new issues by selecting from our [new issue templates](https://github.com/caraml-dev/turing/issues/new/choose) and filling out the issue template.
56
+
57
+
### <aname="submit-pr"></a> Submitting a Pull Request (PR)
58
+
59
+
Before you submit your Pull Request (PR), consider the following guidelines:
60
+
61
+
1. Search [GitHub](https://github.com/caraml-dev/turing/pulls) for an open or closed PR that relates to your submission.
62
+
You don't want to duplicate existing efforts.
63
+
64
+
2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add.
65
+
Discussing the design upfront helps to ensure that we're ready to accept your work.
66
+
67
+
3. Fork this Turing repository
68
+
4. Create a new branch in your forked repository
69
+
5. Commit the changes to the codebase
70
+
6. Follow our [Coding Rules](#rules).
71
+
7. Make sure all the tests pass
72
+
8. Submit a pull request to the main Turing codebase from your forked repository
73
+
74
+
## <aname="rules"></a> Coding Rules
75
+
To ensure consistency throughout the source code, keep these rules in mind as you are working:
76
+
77
+
* All features or bug fixes **must be tested** by one or more specs (unit-tests).
78
+
79
+
### Code Style & Linting
80
+
81
+
We are using [golangci-lint](https://github.com/golangci/golangci-lint), and we can run the following commands for formatting.
82
+
83
+
```sh
84
+
# Formatting for linting issues
85
+
make format
86
+
87
+
# Checking for linting issues
88
+
make lint
89
+
```
16
90
17
-
Report a bug by creating an issue. Provide as much information as possible
18
-
on how to reproduce the bug.
91
+
### Go tests
19
92
20
-
Before submitting the bug report, please make sure there are no existing issues
21
-
with a similar bug report. You can search the existing issues for similar issues.
93
+
For **Unit** tests, we follow the convention of keeping it beside the main source file.
22
94
23
-
### Sugest features
95
+
### Pre-commit Hooks
24
96
25
-
If you have an idea to improve Turing, submit a feature request. It will be good
26
-
to describe the use cases and how it will benefit Turing users in your feature
27
-
request.
97
+
Setup [`pre-commit`](https://pre-commit.com/) to automatically lint and format the codebase on commit:
28
98
29
-
### Make a pull request
99
+
1. Ensure that you have Python (3.7 and above) with `pip`, installed.
100
+
2. Install `pre-commit` with `pip`& install pre-push hooks
30
101
31
-
Submit a pull request to Turing when you want to make changes to Turing
32
-
codebase. You can submit pull requests to fix bugs, add new features or
33
-
improve our documentation.
102
+
```sh
103
+
# Clear existing hooks
104
+
git config --unset-all core.hooksPath
105
+
rm -rf .git/hooks
106
+
# Install hooks
107
+
make setup
108
+
```
34
109
35
-
The process is normally as follows:
36
-
1. Fork this Turing repository
37
-
2. Create a new branch in your forked repository
38
-
3. Commit the changes to the codebase
39
-
4. Make sure all the tests pass
40
-
5. Submit a pull request to the main Turing codebase from your forked repository
110
+
3. On push, the pre-commit hook will run. This runs `make format` and `make lint`.
0 commit comments