diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..e880140
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,7 @@
+name: "Auto Release"
+on:
+ push:
+ branches: [ master, main ]
+jobs:
+ release:
+ uses: thelia-modules/ReusableWorkflow/.github/workflows/auto_release.yml@main
diff --git a/Action/DisplayProductsListAction.php b/Action/DisplayProductsListAction.php
index 03fd77a..2148156 100644
--- a/Action/DisplayProductsListAction.php
+++ b/Action/DisplayProductsListAction.php
@@ -25,7 +25,7 @@
{
public const DEFAULT_LIMIT = 3;
- //A product never appears in its own recommendations (#561) — neutral outside
+ //A product never appears in its own recommendations — neutral outside
//a product page, where :product_id is bound to the 0 sentinel. Only for the
//stateless selection: the sticky path filters AFTER its persistence logic
private const CURRENT_PRODUCT_EXCLUSION = '`product`.`id` != :product_id';
@@ -139,7 +139,7 @@ private function executeSticky(
//Display-only filter: the sticky rotation (displayability, backfill,
//recording) must never react to which product page is being viewed —
- //a slot silently hidden here is not a freed slot (#561)
+ //a slot silently hidden here is not a freed slot
if ($runtimeContext->productId !== null && $runtimeContext->productId > 0) {
$productIds = array_values(array_diff($productIds, [$runtimeContext->productId]));
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b7723c5..4385727 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,12 @@ All notable changes to this module are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2.0.2] 2026-10-01
+
+### Changed
+- The module is declared stable (`prod`).
+- Releases are published automatically when the version of `Config/module.xml` changes on `main`.
+
## [2.0.1] 2026-09-24
### Fixed
@@ -11,7 +17,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
## [2.0.0] 2026-09-16
-Port of the module to Thelia 3. The Thelia 2 line (1.0.0 to 1.2.0) lived in the project the module was written for and is not published.
+Port of the module to Thelia 3. The Thelia 2 line (1.x) is maintained on the `thelia2` branch.
### Added
- Back-office screens on the default-twig theme (Twig, Bootstrap 5): rule list, rule in three steps, action screen, entry in the Tools menu. Screens and menu entry follow the right granted on the module itself in the administrator profiles.
@@ -49,5 +55,6 @@ Port of the module to Thelia 3. The Thelia 2 line (1.0.0 to 1.2.0) lived in the
- The `/query_builder/products/{hookCode}` Symfony route, replaced by the API Platform resource.
- The `product.top` and `product.bottom` `BaseHook` front hooks, replaced by the theme hook implementation.
+[2.0.2]: https://github.com/thelia-modules/QueryBuilder/releases/tag/2.0.2
[2.0.1]: https://github.com/thelia-modules/QueryBuilder/releases/tag/2.0.1
[2.0.0]: https://github.com/thelia-modules/QueryBuilder/releases/tag/2.0.0
diff --git a/Config/module.xml b/Config/module.xml
index 4db5b94..f731092 100644
--- a/Config/module.xml
+++ b/Config/module.xml
@@ -15,7 +15,7 @@
en_US
fr_FR
- 2.0.1
+ 2.0.2
Samuel Diakité
@@ -26,5 +26,5 @@
classic
3.0.0
- beta
+ prod
diff --git a/Config/update/1.2.0.sql b/Config/update/1.2.0.sql
index 0f5123f..fafe9e3 100644
--- a/Config/update/1.2.0.sql
+++ b/Config/update/1.2.0.sql
@@ -1,4 +1,4 @@
-# 1.2.0 — #573 : les hooks orphelins (jamais consommés côté front) sont retirés
+# 1.2.0 : les hooks orphelins (jamais consommés côté front) sont retirés
# du dictionnaire ; purge des codes fantômes encore cochés par des règles.
UPDATE `query_builder_rule`
diff --git a/README.md b/README.md
index c7874bd..04f9442 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,8 @@ Only the fields of a data dictionary and a closed list of operators are accepted
- PHP 8.3+
- `openstudio/query-builder-bundle` ^1.1 (the back-office editor)
+Thelia 2 shops use the 1.x line, maintained on the [`thelia2`](https://github.com/thelia-modules/QueryBuilder/tree/thelia2) branch.
+
## Installation
```bash
diff --git a/Service/HookResultPresenter.php b/Service/HookResultPresenter.php
index 66e0807..f7e39f1 100644
--- a/Service/HookResultPresenter.php
+++ b/Service/HookResultPresenter.php
@@ -53,7 +53,7 @@ public function present(string $hookCode, RuntimeContext $runtimeContext, bool $
//The hook slot is shared: several rules on the same hook fill a single
//budget (the highest action limit) in rule order, instead of stacking
- //their own limits (#562). Presentation only — sticky cycles already
+ //their own limits. Presentation only — sticky cycles already
//recorded by the actions are never affected.
//Floor at 1 like SqlBuilder::compile() does on the per-action LIMIT,
//so a hand-written "limit: 0" never blanks the whole hook slot
@@ -87,7 +87,7 @@ public function present(string $hookCode, RuntimeContext $runtimeContext, bool $
}
//The current product carries its own offer (badge « Pour vous aujourd'hui »)
- //even though it never appears in its own recommendations (#561)
+ //even though it never appears in its own recommendations
$offerProductIds = $runtimeContext->productId !== null && $runtimeContext->productId > 0
? array_values(array_unique([...$productIds, $runtimeContext->productId]))
: $productIds;