Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 28 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,33 +52,41 @@ yarn lint:fix
yarn build
```

If you want to test a specific package, from the root directory run any of the above command with the `filter` flag.

Example:
```
turbo run test --filter=@meilisearch/instant-meilisearch
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You still have to be in the root dir, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I improved the explaination:

If you want to test a specific package, from the root directory run any of the above command with the filter flag.

Example:

turbo run test --filter=@meilisearch/instant-meilisearch

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perfect! 👯

```

### Playgrounds <!-- omit in TOC -->

To test directly your changes in `instant-meilisearch`, you can run the Vue playground:
#### @meilisearch/instant-meilisearch playgrounds

To test directly your changes in `instant-meilisearch`, you can run the following playgrounds:

`Vue 3`
```bash
yarn playground:vue
```

Or the React playground:
`React`:

```bash
yarn playground:react
```

Or the JavaScript playground:
`Vanilla JS`:
```
yarn playground:javascript
```

Or the HTML playground:
`HTML`:
```
yarn playground:html
```

### Geo-Search Playground

A playground is available to try out the [GeoSearch](./README.md/-geo-search) in `instant-meilisearch`.
An additional playground is provided to test out the [GeoSearch](./packages/instant-meilisearch#-geo-search).

```bash
yarn playground:geo-javascript
Expand All @@ -105,10 +113,13 @@ We don't follow any other convention, but if you want to use one, we recommend [

### Changesets <!-- omit in TOC -->

We use [changesets](https://github.com/Noviny/changesets) to do versioning. What that means is that you need to [add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) by running `yarn changeset`. The changeset you create contains what packages should be bumped, their associated semver type and the changelogs.
We use [changesets](https://github.com/Noviny/changesets) to do versioning. What that means is that you need to [add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) by running `yarn changeset`. The changeset you create contains which packages should be bumped, their associated semver type and the changelogs.


> avant chaque release, les fichiers sont supprimés (voir process qui suit)

These changesets are added in the `.changesets` directory at the root of the repository, and should be added in your PR.
Once there is a [release](#release-on-github-and-npm), these files are automatically removed.
These changesets are added to the `.changesets` directory at the root of the repository, and should be added to your PR.
Before a release, these files are removed (see [process](#release-on-github-and-npm)).

Some changes do [not require a changeset](https://github.com/changesets/changesets/blob/main/docs/intro-to-using-changesets.md#not-every-change-requires-a-changeset). For example changes that does not impact the packages, e.g. : Updating the README.md or changes in tests files.

Expand All @@ -131,17 +142,17 @@ Meilisearch tools follow the [Semantic Versioning Convention](https://semver.org
This project integrates a bot that helps us manage pull requests merging.<br>
_[Read more about this](https://github.com/meilisearch/integration-guides/blob/main/resources/bors.md)._

### Release on Github and npm
### Release on GitHub and npm

This repository uses the [changesets](https://github.com/Noviny/changesets) library to handle the version updates and the publishing on Github and `npm`.
This repository uses the [changesets](https://github.com/Noviny/changesets) library to handle the version updates and the publishing on GitHub and `npm`.

When PR's are merged on `main`, they trigger the [`release` CI](./.github/workflows/publish.yml). This CI creates a PR titled `Version Packages` containing all the version updates and changelogs of the impacted packages. The PR updates the versions and the changelogs based on the `changesets` that were previously pushed on main (see [changeset section](#changesets)).
When PRs are merged on `main`, they trigger the [`release` CI](./.github/workflows/publish.yml). This CI creates a PR titled `Version Packages` containing all the version updates and changelogs of the impacted packages. The PR updates the versions and the changelogs based on the `changesets` that were previously pushed on main (see [changeset section](#changesets)).

To release on Github and `npm` you must merge the `Version packages` PR. This will trigger the publishing action and create the Github and `npm` releases for all affected packages.
To release on GitHub and `npm` you must merge the `Version packages` PR. This will trigger the publishing action and create the GitHub and `npm` releases for all affected packages.

See more in depth explaination on [versioning](https://github.com/changesets/changesets/blob/main/docs/command-line-options.md#version), [publishing](https://github.com/changesets/changesets/blob/main/docs/command-line-options.md#publish) and the [changesets github-action](https://github.com/changesets/action).

If you were previously on `pre-release mode`, do not forget to create a PR exiting the pre-release mode by doing `yarn changeset pre exit` and then merge it to main.
If you merged a beta branch, that was released, into main, you were probably in the `changesets` [pre-release](https://github.com/changesets/changesets/blob/main/docs/prereleases.md) mode (see section on [releasing a beta](#release-a-beta-version)). If the `pre.json` file is present in the `.changesets` folder, you need to exit that mode. This is possible by running `yarn changeset pre exit`. Once done, create a PR with the changes and merge it to main.

#### Codesandbox update
Once the version is available on npm, please update the instant-meilisearch version used in the different Code-Sandboxes we provide:
Expand Down Expand Up @@ -172,11 +183,11 @@ Here are the steps to release a beta version of this package depending on its ty

2. Enable the pre-release mode by running `yarn changeset pre enter [X]`. `X` is the part after the `/` of your beta branch. Example for `beta/refactor`, X would be `refactor`. This will create a `pre.json` file in `.changesets` that must be pushed on your beta branch.

3. Commit and push your related PR's to the newly created branch (step 1).
3. Commit and push your related PRs to the newly created branch (step 1).

4. When a PR is merged onto your beta branch, the [release CI](./.github/workflows/publish.yml) opens a PR named `Version Packages (X)` (see step 2 for `X`). This PR contains all the changesets and the version update based on the type of changes in the changesets.

5. To publish the release on Github and `npm`, you need to merge the `Version Packages (X)` PR. This will trigger the publishing.
5. To publish the release on GitHub and `npm`, you need to merge the `Version Packages (X)` PR. This will trigger the publishing.

<hr>

Expand Down
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<p align="center">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loved the explanation, I just don't feel the "Meilisearch Javascript plugins" is the right choice, but I don't have any other suggestion, so I'm just thinking out loud!

Maybe @alallema has one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After internal discussion, the repo will be named meilisearch-js-plugins. Thus the title may be kept as javascript inside the readme

<img src="https://raw.githubusercontent.com/meilisearch/integration-guides/main/assets/logos/logo.svg" alt="Instant-Meilisearch" width="200" height="200" />
</p>

<h1 align="center">Meilisearch Javascript plugins</h1>

<p align="center">
<a href="https://github.com/meilisearch/instant-meilisearch/actions"><img src="https://github.com/meilisearch/instant-meilisearch/workflows/Tests/badge.svg?branch=main" alt="Tests"></a>
<a href="https://github.com/meilisearch/instant-meilisearch/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-informational" alt="License"></a>
<a href="https://github.com/meilisearch/meilisearch/discussions" alt="Discussions"><img src="https://img.shields.io/badge/github-discussions-red" /></a>
<a href="https://ms-bors.herokuapp.com/repositories/48"><img src="https://bors.tech/images/badge_small.svg" alt="Bors enabled"></a>
</p>

**Meilisearch** is an open-source search engine. [Discover what Meilisearch is!](https://github.com/meilisearch/meilisearch)

This repository contains clients and plugins to use Meilisearch in third party tools.

## Table of Contents <!-- omit in toc -->

- [📖 Documentation](#-documentation)
- [🐱 Plugins](#-plugins)
- [⚙️ Development Workflow and Contributing](#️-development-workflow-and-contributing)

## 📖 Documentation

For general information on how to use Meilisearch—such as our API reference, tutorials, guides, and in-depth articles—refer to our [main documentation website](https://docs.meilisearch.com/).

## 🐱 Plugins:

### Plugins Found Here
| | |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [`instant-meilisearch`](./packages/instant-meilisearch) | The search client needed to make Meilisearch work with [instantsearch.js](https://github.com/algolia/instantsearch). |
| | |

### Plugins Found On their Own Repo

| | |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [`strapi-plugin-meilisearch`](https://github.com/meilisearch/strapi-plugin-meilisearch) | A plugin to add and synchronize your [Strapi](https://strapi.io/) data on Meilisearch. |
| [`Firestore-meilisearch`](https://github.com/meilisearch/firestore-meilisearch/) | A plugin to synchronize your [firestore](https://firebase.google.com/docs/firestore) data on Meilisearch. |
| [`gatsby-plugin-meilisearch`](https://github.com/meilisearch/gatsby-plugin-meilisearch/) | A plugin to index your [Gatsby](https://www.gatsbyjs.com/) content to Meilisearch based on graphQL queries. |
| [`docs-searchbar.js`](https://github.com/meilisearch/docs-searchbar.js) | A search bar integration for all kinds of documentation. |
| [`vuepress-plugin-meilisearch`](https://github.com/meilisearch/vuepress-plugin-meilisearch) | A plugin to use docs-searchbar.js as the searchbar of vuepress. |
| | |

## ⚙️ Development Workflow and Contributing

Any new contribution is more than welcome in this project!

If you want to know more about the development workflow or want to contribute, please visit our [contributing guidelines](/CONTRIBUTING.md) for detailed instructions!

<hr>

**Meilisearch** provides and maintains many **SDKs and Integration tools** like this one. We want to provide everyone with an **amazing search experience for any kind of project**. If you want to contribute, make suggestions, or just know what's going on right now, visit us in the [integration-guides](https://github.com/meilisearch/integration-guides) repository.
5 changes: 5 additions & 0 deletions packages/instant-meilisearch/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Contributing <!-- omit in TOC -->

First of all, thank you for contributing to Meilisearch!

For the full explaination on how to contribute, please refer to the [contributing guide](../../CONTRIBUTING.md) at the root of this repository.
7 changes: 6 additions & 1 deletion packages/instant-meilisearch/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

**Meilisearch** is an open-source search engine. [Discover what Meilisearch is!](https://github.com/meilisearch/meilisearch)

This library is a client that establishes communication between your [Meilisearch](https://github.com/meilisearch/meilisearch) instance and [InstantSearch](https://github.com/algolia/instantsearch.js). InstantSearch, an open-source project developed by Algolia, is the tool that renders all the components needed to start searching in your front-end application.
This library is the search client that you should use to make [Meilisearch](https://github.com/meilisearch/meilisearch) work with [InstantSearch](https://github.com/algolia/instantsearch.js). InstantSearch, an open-source project developed by Algolia, is the tool that renders all the components needed to start searching in your front-end application.

Instead of reinventing the wheel, we have opted to reuse the InstantSearch library for our own front-end tooling. We will contribute upstream any improvements that may result from our adoption of InstantSearch.

Expand All @@ -39,6 +39,7 @@ NB: If you don't have any Meilisearch instance running and containing your data,

## Table of Contents <!-- omit in toc -->

- [📖 Documentation](#-documentation)
- [🔧 Installation](#-installation)
- [🎬 Usage](#-usage)
- [💅 Customization](#-customization)
Expand All @@ -47,6 +48,10 @@ NB: If you don't have any Meilisearch instance running and containing your data,
- [📜 API Resources](#-api-resources)
- [⚙️ Development Workflow and Contributing](#️-development-workflow-and-contributing)

## 📖 Documentation

For general information on how to use Meilisearch—such as our API reference, tutorials, guides, and in-depth articles—refer to our [main documentation website](https://docs.meilisearch.com/).

## 🔧 Installation

Use `npm` or `yarn` to install `instant-meilisearch`:
Expand Down