@@ -36,6 +36,8 @@ Log in to your Gitlab.com account, click the **New project** button, select
3636**Create blank project **, fill in the **Project name **, select the **Private **
3737radio button, and click the **Create project ** button.
3838
39+ .. _create_private_recipes :
40+ 
3941Create Your Private Recipes
4042--------------------------- 
4143
@@ -187,6 +189,87 @@ Create an entry in ``"recipes"`` for each of your bundle recipes. Replace
187189``your-gitlab-account-name ``, ``your-gitlab-repository `` and ``your-gitlab-project-id ``
188190with your own details.
189191
192+ Generate Recipes from a Developer Friendly Format Using the Recipes Checker
193+ -------------- 
194+ 
195+ When installing a bundle, composer checks for flex recipes in the format
196+ stated in the above sections, this is cumbersome to write by hand.
197+ 
198+ You can leverage the recipe checker to create those files for you.
199+ 
200+ Setup
201+ ~~~~~ 
202+ 
203+ .. code-block :: terminal 
204+ 
205+    $ git clone https://github.com/symfony-tools/recipes-checker.git 
206+    $ cd recipes-checker/ 
207+    $ composer install 
208+ 
209+  Now that you've installed the dependencies, you can use the ``run `` binary to compile your recipes
210+ 
211+ Developer Friendly Recipe Structure
212+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
213+ 
214+ When creating a recipe this way, your directory structure will look a bit different now:
215+ 
216+ .. code-block :: text 
217+ 
218+    your-recipes-repository/ 
219+     └─ acme/ 
220+        └─ private-bundle/ 
221+           └─ 1.0/ 
222+              ├─ config/ 
223+              ├─ manifest.json 
224+              └─ post-install.txt 
225+ 
226+  Be sure to change ``acme ``, ``private-bundle `` and ``1.0 `` to your bundle details
227+ 
228+ .. warning ::
229+ 
230+    Please note that bundle version number **must ** be in the **{major}.{minor} ** format
231+    (eg. **don't ** use ``1.0.0 `` but instead ``1.0 ``)
232+ 
233+ .. note ::
234+    The only thing you need in the ``1.0 `` directory is a valid ``manifest.json ``.
235+    Other things are optional and you can read more about it in the official
236+    `symfony recipes repository `_
237+ 
238+ You can then create a simplified ``manifest.json ``, for example:
239+ .. code-block :: json 
240+     { 
241+         "bundles" : { 
242+             "Acme\\ PrivateBundle\\ AcmePrivateBundle" : [" all"  ] 
243+         }, 
244+         "copy-from-recipe" : { 
245+             "config/" : " %CONFIG_DIR%/"  
246+         }, 
247+         "aliases" : [" private-bundle"  ] 
248+     } 
249+ 
250+  .. note ::
251+    Every configurator in the ``manifest.json `` file is optional,
252+    you can find the full list `here `_
253+ 
254+ You are now ready to generate target recipe files by executing the following command in your recipes root directory:
255+ .. code-block :: terminal 
256+     $ git ls-tree HEAD */*/* | /path/to/recipes-checker-directory/run generate:flex-endpoint acme/private-bundle source-branch target-branch ./output/ 
257+ 
258+  Where:
259+ 
260+ ``acme/private-bundle `` is your account and recipes git repository name
261+ 
262+ ``source-branch `` is the branch that you create your recipes on
263+ 
264+ ``target-branch `` is the branch that composer will pull recipes from
265+ 
266+ ``./output/ `` is where recipes checker will put compiled files
267+ 
268+ The ``./output `` directory contains the following files:
269+     * ``acme.private-bundle.1.0.json `` - recipe ``.json `` file
270+     * ``index.json ``
271+     * ``archived ``
272+ 
190273Store Your Recipes in the Private Repository
191274-------------------------------------------- 
192275
@@ -262,6 +345,10 @@ Replace ``your-github-account-name`` and ``your-recipes-repository`` with your o
262345    The ``endpoint `` URL **must ** point to ``https://api.github.com/repos `` and
263346    **not ** to ``https://www.github.com ``.
264347
348+     Also note that when using recipes checker
349+     your endpoint **must ** point to the branch with compiled recipes with a ``ref `` query
350+     parameter or by setting it as a default branch
351+ 
265352Gitlab
266353~~~~~~ 
267354
@@ -287,6 +374,10 @@ Replace ``your-gitlab-project-id`` with your own details.
287374    The ``extra.symfony `` key will most probably already exist in your
288375    ``composer.json ``. In that case, add the ``"endpoint" `` key to the existing
289376    ``extra.symfony `` entry.
377+ .. tip ::
378+     Note that when using recipes checker
379+     your endpoint **must ** point to the branch with compiled recipes with a ``ref `` query
380+     parameter or by setting it as a default branch
290381
291382Install the Recipes in Your Project
292383----------------------------------- 
@@ -307,3 +398,5 @@ install the new private recipes, run the following command:
307398
308399 .. _`release of version 1.16` : https://github.com/symfony/cli 
309400.. _`Symfony recipe files` : https://github.com/symfony/recipes/tree/flex/main 
401+ .. _`symfony recipes repository` : https://github.com/symfony/recipes?tab=readme-ov-file#creating-recipes 
402+ .. _`here` : https://github.com/symfony/recipes?tab=readme-ov-file#configurators 
0 commit comments