firestore-meilisearch 0.1.0

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 (65) hide show
  1. package/.editorconfig +20 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +26 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +18 -0
  4. package/.github/ISSUE_TEMPLATE/other.md +7 -0
  5. package/.github/dependatbot.yml +23 -0
  6. package/.github/release-draft-template.yml +33 -0
  7. package/.github/scripts/check-release.sh +42 -0
  8. package/.github/workflows/publish.yml +30 -0
  9. package/.github/workflows/release-drafter.yml +16 -0
  10. package/.github/workflows/test.yml +42 -0
  11. package/CHANGELOG.md +3 -0
  12. package/CONTRIBUTING.md +236 -0
  13. package/LICENSE +201 -0
  14. package/POSTINSTALL.md +40 -0
  15. package/PREINSTALL.md +42 -0
  16. package/README.md +128 -0
  17. package/bors.toml +8 -0
  18. package/dataset/firebase-export-metadata.json +8 -0
  19. package/dataset/firestore_export/all_namespaces/all_kinds/all_namespaces_all_kinds.export_metadata +0 -0
  20. package/dataset/firestore_export/all_namespaces/all_kinds/output-0 +0 -0
  21. package/dataset/firestore_export/firestore_export.overall_export_metadata +0 -0
  22. package/extension.yaml +176 -0
  23. package/firebase.json +20 -0
  24. package/functions/.eslintignore +2 -0
  25. package/functions/.eslintrc.js +54 -0
  26. package/functions/__tests__/__mocks__/console.ts +7 -0
  27. package/functions/__tests__/adapter.test.ts +98 -0
  28. package/functions/__tests__/config.test.ts +130 -0
  29. package/functions/__tests__/data/document.ts +11 -0
  30. package/functions/__tests__/data/environment.ts +9 -0
  31. package/functions/__tests__/functions.test.ts +280 -0
  32. package/functions/__tests__/jest.setup.ts +1 -0
  33. package/functions/__tests__/test.types.d.ts +5 -0
  34. package/functions/__tests__/tsconfig.json +5 -0
  35. package/functions/__tests__/util.test.ts +200 -0
  36. package/functions/jest.config.js +12 -0
  37. package/functions/lib/adapter.js +61 -0
  38. package/functions/lib/config.js +13 -0
  39. package/functions/lib/import/config.js +127 -0
  40. package/functions/lib/import/index.js +93 -0
  41. package/functions/lib/index.js +90 -0
  42. package/functions/lib/logs.js +97 -0
  43. package/functions/lib/meilisearch/create-index.js +17 -0
  44. package/functions/lib/meilisearch-index.js +17 -0
  45. package/functions/lib/types.js +2 -0
  46. package/functions/lib/util.js +47 -0
  47. package/functions/lib/version.js +4 -0
  48. package/functions/package.json +53 -0
  49. package/functions/src/adapter.ts +106 -0
  50. package/functions/src/config.ts +34 -0
  51. package/functions/src/import/config.ts +207 -0
  52. package/functions/src/import/index.ts +115 -0
  53. package/functions/src/index.ts +103 -0
  54. package/functions/src/logs.ts +107 -0
  55. package/functions/src/meilisearch/create-index.ts +20 -0
  56. package/functions/src/types.ts +8 -0
  57. package/functions/src/util.ts +63 -0
  58. package/functions/src/version.ts +1 -0
  59. package/functions/tsconfig.eslint.json +13 -0
  60. package/functions/tsconfig.json +23 -0
  61. package/functions/yarn.lock +5306 -0
  62. package/guides/IMPORT_EXISTING_DOCUMENTS.md +74 -0
  63. package/package.json +21 -0
  64. package/script/version.sh +51 -0
  65. package/test-params-example.env +9 -0
package/.editorconfig ADDED
@@ -0,0 +1,20 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ [*]
7
+ indent_style = space
8
+ indent_size = 2
9
+ end_of_line = lf
10
+ charset = utf-8
11
+ trim_trailing_whitespace = true
12
+ insert_final_newline = true
13
+ max_line_length = 80
14
+ quote_type = single
15
+
16
+ [*.{js,ts}]
17
+ quote_type = single
18
+ curly_bracket_next_line = false
19
+ spaces_around_brackets = inside
20
+ indent_brace_style = BSD KNF
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: Bug Report 🐞
3
+ about: Create a report to help us improve.
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+ ---
8
+
9
+ <!-- This is not an exhaustive model but a help. No step is mandatory. -->
10
+
11
+ **Description**
12
+ Description of what the bug is about.
13
+
14
+ **Expected behavior**
15
+ What you expected to happen.
16
+
17
+ **Current behavior**
18
+ What happened.
19
+
20
+ **Screenshots or Logs**
21
+ If applicable, add screenshots or logs to help explain your problem.
22
+
23
+ **Environment (please complete the following information):**
24
+ - OS: [e.g. Debian GNU/Linux]
25
+ - Meilisearch version: [e.g. v.0.20.0]
26
+ - firestore-meilisearch version: [e.g v0.1.0]
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: Feature Request 💡
3
+ about: Suggest a new idea for the project.
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+ ---
8
+
9
+ <!-- This is not an exhaustive model but a help. No step is mandatory. -->
10
+
11
+ **Description**
12
+ Brief explanation of the feature.
13
+
14
+ **Basic example**
15
+ If the proposal involves something new or a change, include a basic example. How would you use the feature? In which context?
16
+
17
+ **Other**
18
+ Any other things you want to add.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: Other
3
+ about: Any other topic you want to talk about.
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+ ---
@@ -0,0 +1,23 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: 'npm'
4
+ directory: '/'
5
+ schedule:
6
+ interval: weekly
7
+ time: "04:00"
8
+ open-pull-requests-limit: 10
9
+ labels:
10
+ - skip-changelog
11
+ - dependencies
12
+ ignore:
13
+ - dependency-name: 'eslint*'
14
+ - dependency-name: 'prettier*'
15
+ rebase-strategy: disabled
16
+ - package-ecosystem: github-actions
17
+ directory: '/functions'
18
+ schedule:
19
+ interval: weekly
20
+ time: "04:00"
21
+ labels:
22
+ - skip-changelog
23
+ - dependencies
@@ -0,0 +1,33 @@
1
+ name-template: 'v$RESOLVED_VERSION 🔥'
2
+ tag-template: 'v$RESOLVED_VERSION'
3
+ exclude-labels:
4
+ - 'skip-changelog'
5
+ version-resolver:
6
+ minor:
7
+ labels:
8
+ - 'breaking-change'
9
+ default: patch
10
+ categories:
11
+ - title: '⚠️ Breaking changes'
12
+ label: 'breaking-change'
13
+ - title: '🚀 Enhancements'
14
+ label: 'enhancement'
15
+ - title: '🐛 Bug Fixes'
16
+ label: 'bug'
17
+ - title: '🔒 Security'
18
+ label: 'security'
19
+ template: |
20
+ $CHANGES
21
+
22
+ Thanks again to $CONTRIBUTORS! 🎉
23
+ no-changes-template: 'Changes are coming soon 😎'
24
+ sort-direction: 'ascending'
25
+ replacers:
26
+ - search: '/(?:and )?@dependabot-preview(?:\[bot\])?,?/g'
27
+ replace: ''
28
+ - search: '/(?:and )?@dependabot(?:\[bot\])?,?/g'
29
+ replace: ''
30
+ - search: '/(?:and )?@bors(?:\[bot\])?,?/g'
31
+ replace: ''
32
+ - search: '/(?:and )?@meili-bot,?/g'
33
+ replace: ''
@@ -0,0 +1,42 @@
1
+ #!/bin/sh
2
+
3
+ # Checking if current tag matches the package version
4
+ current_tag=$(echo $GITHUB_REF | cut -d '/' -f 3 | tr -d ' ',v)
5
+ package_file_tag=$(grep '"version":' package.json | cut -d ':' -f 2- | tr -d ' ' | tr -d '"' | tr -d ',')
6
+ package_function_tag=$(grep '"version":' functions/package.json | cut -d ':' -f 2- | tr -d ' ' | tr -d '"' | tr -d ',')
7
+ extension_tag=$(grep "version:" extension.yaml | cut -d ":" -f 2- | tr -d " " )
8
+ version_js_tag=$(grep "version =" functions/src/version.ts | cut -d "=" -f 2- | tr -d " " | tr -d "'" )
9
+ version_ts_tag=$(grep "version =" functions/lib/version.js | cut -d "=" -f 2- | tr -d " "| tr -d "'" | tr -d ";" | tail -n1 )
10
+
11
+ if [ "$current_tag" != "$package_file_tag" ]; then
12
+ echo "Error: the current tag does not match the version in package file."
13
+ echo "$current_tag vs $package_file_tag"
14
+ exit 1
15
+ fi
16
+
17
+ if [ "$current_tag" != "$package_function_tag" ]; then
18
+ echo "Error: the current tag does not match the version in package file inside the function directory."
19
+ echo "$current_tag vs $package_function_tag"
20
+ exit 1
21
+ fi
22
+
23
+ if [ "$current_tag" != "$extension_tag" ]; then
24
+ echo "Error: the current tag does not match the version in the extension file."
25
+ echo "$current_tag vs $extension_tag"
26
+ exit 1
27
+ fi
28
+
29
+ if [ "$current_tag" != "$version_ts_tag" ]; then
30
+ echo "Error: the current tag does not match the version in the version.ts file."
31
+ echo "$current_tag vs $version_ts_tag"
32
+ exit 1
33
+ fi
34
+
35
+ if [ "$current_tag" != "$version_js_tag" ]; then
36
+ echo "Error: the current tag does not match the version in the version.js file, you need to build the package."
37
+ echo "$current_tag vs $version_js_tag"
38
+ exit 1
39
+ fi
40
+
41
+ echo 'OK'
42
+ exit 0
@@ -0,0 +1,30 @@
1
+ name: publish to npm
2
+ on:
3
+ release:
4
+ types: [published]
5
+
6
+ jobs:
7
+ publish-npm:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v2
11
+ - uses: actions/setup-node@v2
12
+ with:
13
+ node-version: 14
14
+ registry-url: https://registry.npmjs.org/
15
+ - name: Check release validity
16
+ run: sh .github/scripts/check-release.sh
17
+ - name: Install dependencies
18
+ run: yarn && yarn install:functions
19
+ - name: Enter functions directory
20
+ run: cd functions
21
+ - name: Publish with latest tag
22
+ if: "!github.event.release.prerelease"
23
+ run: npm publish .
24
+ env:
25
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
26
+ - name: Publish with beta tag
27
+ if: "github.event.release.prerelease"
28
+ run: npm publish . --tag beta
29
+ env:
30
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
@@ -0,0 +1,16 @@
1
+ name: Release Drafter
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ update_release_draft:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: release-drafter/release-drafter@v5
13
+ with:
14
+ config-name: release-draft-template.yml
15
+ env:
16
+ GITHUB_TOKEN: ${{ secrets.RELEASE_DRAFTER_TOKEN }}
@@ -0,0 +1,42 @@
1
+ name: Tests
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ # trying and staging branches are for BORS config
7
+ branches:
8
+ - trying
9
+ - staging
10
+ - main
11
+
12
+ jobs:
13
+ linter:
14
+ name: linter
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Setup node
19
+ uses: actions/setup-node@v2
20
+ with:
21
+ node-version: 14
22
+ - name: Install dependencies
23
+ run: yarn install:functions
24
+ - name: Run style check
25
+ run: yarn lint
26
+
27
+ integration-tests:
28
+ name: integration-tests
29
+ runs-on: ubuntu-latest
30
+ strategy:
31
+ matrix:
32
+ node: ["14", "16", "17"]
33
+ steps:
34
+ - uses: actions/checkout@v2
35
+ - name: Setup node
36
+ uses: actions/setup-node@v1
37
+ with:
38
+ node-version: ${{ matrix.node }}
39
+ - name: Install dependencies
40
+ run: yarn install:functions
41
+ - name: Run tests with coverage
42
+ run: yarn test:coverage
package/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## Version 0.1.0
2
+
3
+ Initial release of the _Search in your Firestore content with Meilisearch_ extension.
@@ -0,0 +1,236 @@
1
+ # Contributing
2
+
3
+ First of all, thank you for contributing to Meilisearch! The goal of this document is to provide everything you need to know in order to contribute to Meilisearch and its different integrations.
4
+
5
+ <!-- MarkdownTOC autolink="true" style="ordered" indent=" " -->
6
+
7
+ - [Assumptions](#assumptions)
8
+ - [How to Contribute](#how-to-contribute)
9
+ - [Development Workflow](#development-workflow)
10
+ - [Git Guidelines](#git-guidelines)
11
+ - [Release Process (for internal team only)](#release-process-for-internal-team-only)
12
+
13
+ <!-- /MarkdownTOC -->
14
+
15
+ ## Assumptions
16
+
17
+ 1. **You're familiar with [GitHub](https://github.com) and the [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) (PR) workflow.**
18
+ 2. **You've read the Meilisearch [documentation](https://docs.meilisearch.com) and the [README](/README.md).**
19
+ 3. **You know about the [Meilisearch community](https://docs.meilisearch.com/learn/what_is_meilisearch/contact.html). Please use this for help.**
20
+
21
+ ## How to Contribute
22
+
23
+ 1. Make sure that the contribution you want to make is explained or detailed in a GitHub issue! Find an [existing issue](https://github.com/meilisearch/meilisearch-js/issues/) or [open a new one](https://github.com/meilisearch/meilisearch-js/issues/new).
24
+ 2. Once done, [fork the firestore-meilisearch repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) in your own GitHub account. Ask a maintainer if you want your issue to be checked before making a PR.
25
+ 3. [Create a new Git branch](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository).
26
+ 4. Review the [Development Workflow](#development-workflow) section that describes the steps to maintain the repository.
27
+ 5. Make the changes on your branch.
28
+ 6. [Submit the branch as a PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) pointing to the `main` branch of the main meilisearch-js repository. A maintainer should comment and/or review your Pull Request within a few days. Although depending on the circumstances, it may take longer.<br>
29
+ We do not enforce a naming convention for the PRs, but **please use something descriptive of your changes**, having in mind that the title of your PR will be automatically added to the next [release changelog](https://github.com/meilisearch/meilisearch-js/releases/).
30
+ 7. You will need to build the project with `yarn build` before pushing files.
31
+ 8. Don't forget to add `js` files from the `./lib/` directory to your PR.
32
+
33
+ ## Development Workflow
34
+
35
+ ### Requirements <!-- omit in toc -->
36
+
37
+ To run this project, you will need:
38
+
39
+ - Node >= 14 && node <= 17
40
+ - Npm >= v7
41
+ - A google account
42
+ - Latest version of `firebase-tools` the Firebase CLI:
43
+ ``` bash
44
+ yarn global add firebase-tools
45
+ ```
46
+ Add the directory for the commands of the packages installed globally in yarn, to access of firebase binary:
47
+ ``` bash
48
+ export PATH="$(yarn global bin):$PATH"
49
+ ```
50
+
51
+ ### Setup <!-- omit in toc -->
52
+
53
+ Sign in with your Google Account:
54
+ ``` bash
55
+ firebase login
56
+ ```
57
+ Enable the extension developer commands:
58
+ ``` bash
59
+ firebase --open-sesame extdev
60
+ ```
61
+ Install dependencies:
62
+ ``` bash
63
+ yarn install:functions
64
+ ```
65
+ Build the project:
66
+ ``` bash
67
+ yarn build
68
+ ```
69
+ Launch Meilisearch instance:
70
+ ``` bash
71
+ curl -L https://install.meilisearch.com | sh # download Meilisearch
72
+ ./meilisearch --master-key=masterKey --no-analytics # run Meilisearch
73
+ ```
74
+ You may need to [install Java](https://www.java.com/en/download/help/download_options.html) to run the emulator.</br>
75
+ Set emulator:
76
+ ```bash
77
+ firebase init emulators
78
+ ```
79
+ Launch emulator:
80
+ ``` bash
81
+ firebase ext:dev:emulators:start --test-params=test-params-example.env --import=dataset --project=name-of-the-project
82
+ ```
83
+ or just
84
+ ``` bash
85
+ yarn emulator
86
+ ```
87
+ The emulator runs with environment parameters found in `test-params-example.env` and with a provided dataset found in `/dataset`.
88
+
89
+ Once it is running, open the emulator in a browser at the following address: http://localhost:4000
90
+
91
+ NB: If you want to change your Meilisearch credentials or the plugins options you need to edit the `test-params-example.env` file.
92
+
93
+ ### Tests and Linter <!-- omit in toc -->
94
+
95
+ Each PR should pass the tests and the linter to be accepted.
96
+
97
+ ```bash
98
+ curl -L https://install.meilisearch.com | sh # download Meilisearch
99
+ ./meilisearch --master-key=masterKey --no-analytics # run Meilisearch
100
+
101
+ # Tests
102
+ yarn test
103
+
104
+ # Tests in watch mode
105
+ yarn test:watch
106
+
107
+ # Linter
108
+ yarn lint
109
+
110
+ # Linter with fixing
111
+ yarn lint:fix
112
+
113
+ # Build the project
114
+ yarn build
115
+ ```
116
+
117
+ ### Run the backfilled-data script
118
+
119
+ - Set up credentials. The import script uses the application's default credentials to communicate with Firebase. Please follow the instructions [generate a private key file for your service account](https://firebase.google.com/docs/admin/setup#initialize-sdk).
120
+
121
+ - Run the import script interactively and run ONE of the following commands:
122
+ - Run interactively:
123
+ ```bash
124
+ yarn run-cli
125
+ ```
126
+
127
+ - Or run non-interactively with paramaters:
128
+ ```bash
129
+ yarn run-cli \
130
+ --project <project_id> \
131
+ --source-collection-path <collection_name> \
132
+ --index <index_uid> \
133
+ --batch-size <100/default=300> \
134
+ --host <host_address> \
135
+ --api-key <api_key> \
136
+ --non-interactive
137
+ ```
138
+ **Note**: The `--batch-size` and `--query-collection-group` arguments are optional. To see its usage, run the above command with `--help`.
139
+
140
+ - Run the project for development:
141
+ Launch Meilisearch instance:
142
+ ``` bash
143
+ curl -L https://install.meilisearch.com | sh # download Meilisearch
144
+ ./meilisearch --master-key=masterKey --no-analytics # run Meilisearch
145
+ ```
146
+ Launch the watcher on the project:
147
+ ``` bash
148
+ yarn watch
149
+ ```
150
+ Launch the watcher on the script. You have to modify the informations of the playground script by your own parameters inside the `package.json` file:
151
+ ``` bash
152
+ yarn playground
153
+ ```
154
+
155
+ ### Generate the README
156
+
157
+ The Firebase CLI offers the possibility of automatically generating the `README.md` file with the following command:
158
+ ```bash
159
+ firebase ext:info ./path/to/extension --markdown > README.md
160
+ ```
161
+ **Note:** Be careful this will only regenerate the text of the central part of the `README.md` from the Title: `Search in your Firestore content with Meilisearch` to the `**Cloud Functions:**` section.
162
+
163
+ ## Git Guidelines
164
+
165
+ ### Git Branches <!-- omit in toc -->
166
+
167
+ All changes must be made in a branch and submitted as PR.
168
+ We do not enforce any branch naming style, but please use something descriptive of your changes.
169
+
170
+ ### Git Commits <!-- omit in toc -->
171
+
172
+ As minimal requirements, your commit message should:
173
+ - be capitalized
174
+ - not finish by a dot or any other punctuation character (!,?)
175
+ - start with a verb so that we can read your commit message this way: "This commit will ...", where "..." is the commit message.
176
+ e.g.: "Fix the home page button" or "Add more tests for create_index method"
177
+
178
+ We don't follow any other convention, but if you want to use one, we recommend [this one](https://chris.beams.io/posts/git-commit/).
179
+
180
+ ### GitHub Pull Requests <!-- omit in toc -->
181
+
182
+ Some notes on GitHub PRs:
183
+
184
+ - [Convert your PR as a draft](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request) if your changes are a work in progress: no one will review it until you pass your PR as ready for review.<br>
185
+ The draft PR can be very useful if you want to show that you are working on something and make your work visible.
186
+ - The branch related to the PR must be **up-to-date with `main`** before merging. Fortunately, this project [integrates a bot](https://github.com/meilisearch/integration-guides/blob/main/resources/bors.md) to automatically enforce this requirement without the PR author having to do it manually.
187
+ - All PRs must be reviewed and approved by at least one maintainer.
188
+ - The PR title should be accurate and descriptive of the changes. The title of the PR will be indeed automatically added to the next [release changelogs](https://github.com/meilisearch/meilisearch-js/releases/).
189
+
190
+ ## Release Process (for internal team only)
191
+
192
+ Meilisearch tools follow the [Semantic Versioning Convention](https://semver.org/).
193
+
194
+ ### Automation to Rebase and Merge the PRs <!-- omit in toc -->
195
+
196
+ This project integrates a bot that helps us manage pull requests merging.<br>
197
+ _[Read more about this](https://github.com/meilisearch/integration-guides/blob/main/resources/bors.md)._
198
+
199
+ ### Automated Changelogs <!-- omit in toc -->
200
+
201
+ This project integrates a tool to create automated changelogs.<br>
202
+ _[Read more about this](https://github.com/meilisearch/integration-guides/blob/main/resources/release-drafter.md)._
203
+
204
+ ### How to Publish the Release <!-- omit in toc -->
205
+
206
+ ⚠️ Before doing anything, make sure you got through the guide about [Releasing an Integration](https://github.com/meilisearch/integration-guides/blob/main/resources/integration-release.md).
207
+
208
+ 1. To update the version package in all needed files you can run the `version.sh` script with the version number in argument: `"X.X.X"`. If you want to modify it by hand you have to update the version in the following files:
209
+ - [`package.json`](/package.json).
210
+ - [`package.json`](/functions/packag e.json) in the functions directory.
211
+ - [`extension.yaml`](/extension.yaml).
212
+ - [`version.ts`](/functions/src/version.ts).
213
+
214
+ After which don't forget to rebuild the project.
215
+ </br>
216
+ The `version.sh` script will `add` and `commit` the modification but you till need to verify it and push it.
217
+ ```bash
218
+ sh script/version.sh X.X.X
219
+ ```
220
+
221
+ 2. Test the extension by installing it in Firestore:
222
+ ```bash
223
+ firebase ext:install . --project=[your_project_id]
224
+ ```
225
+
226
+ 3. Publish the extension by running the following command in the root of the extension directory:
227
+ ```bash
228
+ firebase ext:dev:publish meilisearch/firestore-meilisearch
229
+ ```
230
+ **Note**: `meilisearch` is the `publisher id` for this extension.
231
+
232
+ Once the changes are merged on `main`, you can publish the current draft release via the [GitHub interface](https://github.com/meilisearch/meilisearch-go/releases): on this page, click on `Edit` (related to the draft release) > update the description (be sure you apply [these recommandations](https://github.com/meilisearch/integration-guides/blob/main/resources/integration-release.md#writting-the-release-description)) > when you are ready, click on `Publish release`.
233
+
234
+ <hr>
235
+
236
+ Thank you again for reading this through, we can not wait to begin to work with you if you made your way through this contributing guide ❤️