From 7f318ee964729541b262484c68cc38762b42cc5e Mon Sep 17 00:00:00 2001 From: curquiza Date: Sun, 20 Jul 2025 22:11:30 +0200 Subject: [PATCH] Adapt issue template --- .github/ISSUE_TEMPLATE/new_feature_issue.md | 56 +++++++++++++++++++++ .github/templates/dependency-issue.md | 22 ++++++++ .github/workflows/dependency-issue.yml | 2 +- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/new_feature_issue.md create mode 100644 .github/templates/dependency-issue.md diff --git a/.github/ISSUE_TEMPLATE/new_feature_issue.md b/.github/ISSUE_TEMPLATE/new_feature_issue.md new file mode 100644 index 000000000..cf55fa43f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new_feature_issue.md @@ -0,0 +1,56 @@ +--- +name: New feature issue +about: ⚠️ Should only be used by the internal Meili team ⚠️ +title: '' +labels: 'impacts docs, impacts integrations' +assignees: '' + +--- + +Related product team resources: [PRD]() (_internal only_) + +## Usage + + + +TBD + +## TODO + + + +### Are you modifying a database? + +- [ ] If not, add the `no db change` label to your PR, and you're good to merge. +- [ ] If yes, add the `db change` label to your PR. You'll receive a message explaining you what to do. + +### Reminders when modifying the API + +- [ ] Update the openAPI file with utoipa: + - [ ] If a new module has been introduced, create a new structure deriving [the OpenAPI proc-macro](https://docs.rs/utoipa/latest/utoipa/derive.OpenApi.html) and nest it in the main [openAPI structure](https://github.com/meilisearch/meilisearch/blob/f2185438eed60fa32d25b15480c5ee064f6fba4a/crates/meilisearch/src/routes/mod.rs#L64-L78). + - [ ] If a new route has been introduced, add the [path decorator](https://docs.rs/utoipa/latest/utoipa/attr.path.html) to it and add the route at the top of the file in its openAPI structure. + - [ ] If a structure which is deserialized or serialized in the API has been introduced or modified, it must derive the [`schema`](https://docs.rs/utoipa/latest/utoipa/macro.schema.html) or the [`IntoParams`](https://docs.rs/utoipa/latest/utoipa/derive.IntoParams.html) proc-macro. + If it's a **new** structure you must also add it to the big list of structures [in the main `OpenApi` structure](https://github.com/meilisearch/meilisearch/blob/f2185438eed60fa32d25b15480c5ee064f6fba4a/crates/meilisearch/src/routes/mod.rs#L88). + - [ ] Once everything is done, start Meilisearch with the swagger flag: `cargo run --features swagger`, open `http://localhost:7700/scalar` on your browser, and ensure everything works as expected. + - For more info, refer to [this presentation](https://pitch.com/v/generating-the-openapi-file-jrn3nh). + +### Reminders when modifying the Setting API + + + +- [ ] Ensure the new setting route is at least tested by the [`test_setting_routes` macro](https://github.com/meilisearch/meilisearch/blob/5204c0b60b384cbc79621b6b2176fca086069e8e/meilisearch/tests/settings/get_settings.rs#L276) +- [ ] Ensure Analytics are fully implemented + - [ ] `/settings/my-new-setting` configurated in the [`make_setting_routes` macro](https://github.com/meilisearch/meilisearch/blob/5204c0b60b384cbc79621b6b2176fca086069e8e/meilisearch/src/routes/indexes/settings.rs#L141-L165) + - [ ] global `/settings` route configurated in the [`update_all` function](https://github.com/meilisearch/meilisearch/blob/5204c0b60b384cbc79621b6b2176fca086069e8e/meilisearch/src/routes/indexes/settings.rs#L655-L751) +- [ ] Ensure the dump serializing is consistent with the `/settings` route serializing, e.g., enums case can be different (`camelCase` in route and `PascalCase` in the dump) + +#### Special cases when adding a setting for an experimental feature + +- [ ] ⚠️ API stability: The setting does not appear on the main settings route when the feature has never been enabled (e.g. mark it `Unset` when returned from the index in this situation. See [an example](https://github.com/meilisearch/meilisearch/blob/7a89abd2a025606a42f8b219e539117eb2eb029f/meilisearch-types/src/settings.rs#L608)) +- [ ] The setting cannot be set when the feature is disabled, either by the main settings route or the subroute (see [`validate_settings` function](https://github.com/meilisearch/meilisearch/blob/7a89abd2a025606a42f8b219e539117eb2eb029f/meilisearch/src/routes/indexes/settings.rs#L811)) +- [ ] If possible, the setting is reset when the feature is disabled (hard if it requires reindexing) + +## Impacted teams + + + diff --git a/.github/templates/dependency-issue.md b/.github/templates/dependency-issue.md new file mode 100644 index 000000000..72835c5f6 --- /dev/null +++ b/.github/templates/dependency-issue.md @@ -0,0 +1,22 @@ +This issue is about updating Meilisearch dependencies: + - [ ] Update Meilisearch dependencies with the help of `cargo +nightly udeps --all-targets` (remove unused dependencies) and `cargo upgrade` (upgrade dependencies versions) - ⚠️ Some repositories may contain subdirectories (like heed, charabia, or deserr). Take care of updating these in the main crate as well. This won't be done automatically by `cargo upgrade`. + - [ ] [deserr](https://github.com/meilisearch/deserr) + - [ ] [charabia](https://github.com/meilisearch/charabia/) + - [ ] [heed](https://github.com/meilisearch/heed/) + - [ ] [roaring-rs](https://github.com/RoaringBitmap/roaring-rs/) + - [ ] [obkv](https://github.com/meilisearch/obkv) + - [ ] [grenad](https://github.com/meilisearch/grenad/) + - [ ] [arroy](https://github.com/meilisearch/arroy/) + - [ ] [segment](https://github.com/meilisearch/segment) + - [ ] [bumparaw-collections](https://github.com/meilisearch/bumparaw-collections) + - [ ] [bbqueue](https://github.com/meilisearch/bbqueue) + - [ ] Finally, [Meilisearch](https://github.com/meilisearch/MeiliSearch) + - [ ] If new Rust versions have been released, update the minimal Rust version in use at Meilisearch: + - [ ] in this [GitHub Action file](https://github.com/meilisearch/meilisearch/blob/main/.github/workflows/test-suite.yml), by changing the `toolchain` field of the `rustfmt` job to the latest available nightly (of the day before or the current day). + - [ ] in every [GitHub Action files](https://github.com/meilisearch/meilisearch/blob/main/.github/workflows), by changing all the `dtolnay/rust-toolchain@` references to use the latest stable version. + - [ ] in this [`rust-toolchain.toml`](https://github.com/meilisearch/meilisearch/blob/main/rust-toolchain.toml), by changing the `channel` field to the latest stable version. + - [ ] in the [Dockerfile](https://github.com/meilisearch/meilisearch/blob/main/Dockerfile), by changing the base image to `rust:-alpine`. Check that the image exists on [Dockerhub](https://hub.docker.com/_/rust/tags?page=1&name=alpine). Also, build and run the image to check everything still works! + +⚠️ This issue should be prioritized to avoid any deprecation and vulnerability issues. + +The GitHub action dependencies are managed by [Dependabot](https://github.com/meilisearch/meilisearch/blob/main/.github/dependabot.yml), so no need to update them when solving this issue. diff --git a/.github/workflows/dependency-issue.yml b/.github/workflows/dependency-issue.yml index 99bd8330a..5de490d76 100644 --- a/.github/workflows/dependency-issue.yml +++ b/.github/workflows/dependency-issue.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Download the issue template - run: curl -s https://raw.githubusercontent.com/meilisearch/engine-team/main/issue-templates/dependency-issue.md > $ISSUE_TEMPLATE + run: curl -s https://raw.githubusercontent.com/meilisearch/meilisearch/main/.github/templates/dependency-issue.md > $ISSUE_TEMPLATE - name: Create issue run: | gh issue create \