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/contributing-to-airbyte/resources/qa-checks.md
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -10,71 +10,85 @@ They are by no mean replacing the need for a manual review of the connector code
10
10
## 📄 Documentation
11
11
12
12
### Breaking changes must be accompanied by a migration guide
13
+
*Applies to the following connector types: source, destination*
13
14
*Applies to the following connector languages: java, low-code, python*
14
15
15
16
When a breaking change is introduced, we check that a migration guide is available. It should be stored under `./docs/integrations/<connector-type>s/<connector-name>-migrations.md`.
16
17
This document should contain a section for each breaking change, in order of the version descending. It must explain users which action to take to migrate to the new version.
17
18
### Connectors must have user facing documentation
19
+
*Applies to the following connector types: source, destination*
18
20
*Applies to the following connector languages: java, low-code, python*
19
21
20
22
The user facing connector documentation should be stored under `./docs/integrations/<connector-type>s/<connector-name>.md`.
*Applies to the following connector types: source, destination*
22
25
*Applies to the following connector languages: java, low-code, python*
23
26
24
27
The user facing connector documentation should follow the guidelines defined in the [documentation standards](https://hackmd.io/Bz75cgATSbm7DjrAqgl4rw).
25
28
### Connectors must have a changelog entry for each version
29
+
*Applies to the following connector types: source, destination*
26
30
*Applies to the following connector languages: java, low-code, python*
27
31
28
32
Each new version of a connector must have a changelog entry defined in the user facing documentation in `./docs/integrations/<connector-type>s/<connector-name>.md`.
29
33
30
34
## 📝 Metadata
31
35
32
36
### Connectors must have valid metadata.yaml file
37
+
*Applies to the following connector types: source, destination*
33
38
*Applies to the following connector languages: java, low-code, python*
34
39
35
40
Connectors must have a `metadata.yaml` file at the root of their directory. This file is used to build our connector registry. Its structure must follow our metadata schema. Field values are also validated. This is to ensure that all connectors have the required metadata fields and that the metadata is valid. More details in this [documentation](https://docs.airbyte.com/connector-development/connector-metadata-file).
36
41
37
42
## 📦 Packaging
38
43
39
44
### Connectors must use Poetry for dependency management
45
+
*Applies to the following connector types: source, destination*
40
46
*Applies to the following connector languages: python, low-code*
41
47
42
48
Connectors must use [Poetry](https://python-poetry.org/) for dependency management. This is to ensure that all connectors use a dependency management tool which locks dependencies and ensures reproducible installs.
43
49
### Connectors must be licensed under MIT or Elv2
50
+
*Applies to the following connector types: source, destination*
44
51
*Applies to the following connector languages: java, low-code, python*
45
52
46
53
Connectors must be licensed under the MIT or Elv2 license. This is to ensure that all connectors are licensed under a permissive license. More details in our [License FAQ](https://docs.airbyte.com/developer-guides/licenses/license-faq).
47
54
### Connector license in metadata.yaml and pyproject.toml file must match
55
+
*Applies to the following connector types: source, destination*
48
56
*Applies to the following connector languages: python, low-code*
49
57
50
58
Connectors license in metadata.yaml and pyproject.toml file must match. This is to ensure that all connectors are consistently licensed.
51
59
### Connector version must follow Semantic Versioning
60
+
*Applies to the following connector types: source, destination*
52
61
*Applies to the following connector languages: java, low-code, python*
53
62
54
63
Connector version must follow the Semantic Versioning scheme. This is to ensure that all connectors follow a consistent versioning scheme. Refer to our [Semantic Versioning for Connectors](https://docs.airbyte.com/contributing-to-airbyte/#semantic-versioning-for-connectors) for more details.
55
64
### Connector version in metadata.yaml and pyproject.toml file must match
65
+
*Applies to the following connector types: source, destination*
56
66
*Applies to the following connector languages: python, low-code*
57
67
58
68
Connector version in metadata.yaml and pyproject.toml file must match. This is to ensure that connector release is consistent.
59
69
### Python connectors must have PyPi publishing enabled
70
+
*Applies to the following connector types: source*
60
71
*Applies to the following connector languages: python, low-code*
61
72
62
73
Python connectors must have [PyPi](https://pypi.org/) publishing enabled in their `metadata.yaml` file. This is declared by setting `remoteRegistries.pypi.enabled` to `true` in metadata.yaml. This is to ensure that all connectors can be published to PyPi and can be used in `airbyte-lib`.
63
74
64
75
## 💼 Assets
65
76
66
77
### Connectors must have an icon
78
+
*Applies to the following connector types: source, destination*
67
79
*Applies to the following connector languages: java, low-code, python*
68
80
69
81
Each connector must have an icon available in at the root of the connector code directory. It must be an SVG file named `icon.svg` and must be a square.
70
82
71
83
## 🔒 Security
72
84
73
85
### Connectors must use HTTPS only
86
+
*Applies to the following connector types: source, destination*
74
87
*Applies to the following connector languages: java, low-code, python*
75
88
76
89
Connectors must use HTTPS only when making requests to external services.
77
90
### Python connectors must not use a Dockerfile and must declare their base image in metadata.yaml file
91
+
*Applies to the following connector types: source, destination*
78
92
*Applies to the following connector languages: python, low-code*
79
93
80
94
Connectors must use our Python connector base image (`docker.io/airbyte/python-connector-base`), declared through the `connectorBuildOptions.baseImage` in their `metadata.yaml`.
0 commit comments