odoo-devops-tools 1.20.0__tar.gz → 1.20.2__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: odoo-devops-tools
3
- Version: 1.20.0
3
+ Version: 1.20.2
4
4
  Summary: A small set of utilities for local Odoo development and simple Odoo deployments.
5
5
  Author: Roman Lacko
6
6
  License-Expression: MIT
@@ -274,7 +274,7 @@ For subsequent addon updates, use the generated update script:
274
274
 
275
275
  The generated script uses `click-odoo-update` with the workspace Odoo configuration.
276
276
 
277
- ### Local Docker backup and restore
277
+ ### 2. Local Docker backup and restore
278
278
 
279
279
  The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
280
280
 
@@ -297,7 +297,7 @@ The default database name is taken from `[config].db_name` when configured, othe
297
297
  ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
298
298
  ```
299
299
 
300
- #### Database backup
300
+ #### 2.1. Database backup
301
301
 
302
302
  Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
303
303
 
@@ -317,7 +317,7 @@ Pass an output path explicitly when needed:
317
317
  ./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
318
318
  ```
319
319
 
320
- #### Database restore
320
+ #### 2.2. Database restore
321
321
 
322
322
  Restore a database dump with `pg_restore`:
323
323
 
@@ -339,7 +339,7 @@ To restore the same dump into another database without replacing the default dat
339
339
  ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
340
340
  ```
341
341
 
342
- #### Filestore backup
342
+ #### 2.3. Filestore backup
343
343
 
344
344
  Create a compressed tar archive of the selected database filestore:
345
345
 
@@ -370,7 +370,7 @@ docker compose stop odoo
370
370
  docker compose up -d odoo
371
371
  ```
372
372
 
373
- #### Filestore restore
373
+ #### 2.4. Filestore restore
374
374
 
375
375
  Restore a filestore archive:
376
376
 
@@ -394,7 +394,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
394
394
 
395
395
  Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
396
396
 
397
- #### Restic filestore backup
397
+ #### 2.5. Restic filestore backup
398
398
 
399
399
  The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
400
400
 
@@ -442,7 +442,7 @@ List or inspect snapshots through the generic wrapper:
442
442
  ./docker/local/scripts/restic.sh check
443
443
  ```
444
444
 
445
- #### Restic filestore restore
445
+ #### 2.6. Restic filestore restore
446
446
 
447
447
  Restore the latest matching filestore snapshot:
448
448
 
@@ -470,7 +470,7 @@ The restore helper removes the target database filestore before restoring it. Wh
470
470
 
471
471
  ---
472
472
 
473
- ### 2. Creating a Docker deploy build context
473
+ ### 3. Creating a Docker deploy build context
474
474
 
475
475
  Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
476
476
 
@@ -511,7 +511,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
511
511
 
512
512
  ---
513
513
 
514
- ### 3. Managing Python requirements
514
+ ### 4. Managing Python requirements
515
515
 
516
516
  The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
517
517
 
@@ -524,7 +524,7 @@ Use:
524
524
 
525
525
  When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
526
526
 
527
- #### 3.1. Add or pin packages
527
+ #### 4.1. Add or pin packages
528
528
 
529
529
  Use `requirements` to install additional packages or to force a specific version:
530
530
 
@@ -537,7 +537,7 @@ requirements =
537
537
 
538
538
  In this example, both packages are included in the generated dependency set and pinned to the specified versions.
539
539
 
540
- #### 3.2. Override a package with a different one
540
+ #### 4.2. Override a package with a different one
541
541
 
542
542
  If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
543
543
 
@@ -555,13 +555,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
555
555
 
556
556
  ---
557
557
 
558
- ### 4. Using system Python instead of managed Python
558
+ ### 5. Using system Python instead of managed Python
559
559
 
560
560
  By default, `odt-env` uses `uv` to install and manage the requested Python version.
561
561
 
562
562
  If you already have a suitable system Python installed, you can disable managed Python.
563
563
 
564
- #### 4.1. Update the project file
564
+ #### 5.1. Update the project file
565
565
 
566
566
  Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
567
567
 
@@ -575,7 +575,7 @@ managed_python = false
575
575
  python_version = 3.11
576
576
  ```
577
577
 
578
- #### 4.2. Update the workspace
578
+ #### 5.2. Update the workspace
579
579
 
580
580
  After changing the project file, run `odt-env` again from the workspace root:
581
581
 
@@ -587,7 +587,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
587
587
 
588
588
  ---
589
589
 
590
- ### 5. Creating portable workspace bundles
590
+ ### 6. Creating portable workspace bundles
591
591
 
592
592
  Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
593
593
 
@@ -605,7 +605,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
605
605
 
606
606
  Those machine-specific outputs are recreated on the target machine.
607
607
 
608
- #### 5.1. Create a bundle on the build machine
608
+ #### 6.1. Create a bundle on the build machine
609
609
 
610
610
  On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
611
611
 
@@ -625,7 +625,7 @@ You can also select an explicit output file:
625
625
  odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
626
626
  ```
627
627
 
628
- #### 5.1.1. Including uncommitted changes
628
+ #### 6.1.1. Including uncommitted changes
629
629
 
630
630
  By default, bundle creation stops when a bundled Git repository has uncommitted changes.
631
631
 
@@ -635,7 +635,7 @@ To intentionally include those changes in the bundle, use:
635
635
  odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
636
636
  ```
637
637
 
638
- #### 5.2. Create the workspace on the target machine
638
+ #### 6.2. Create the workspace on the target machine
639
639
 
640
640
  Copy the ZIP to the target machine and import it into an empty directory:
641
641
 
@@ -662,7 +662,7 @@ The import operation:
662
662
  > **Compatibility note**
663
663
  > A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
664
664
 
665
- #### 5.3. Manual wheelhouse workflow
665
+ #### 6.3. Manual wheelhouse workflow
666
666
 
667
667
  The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
668
668
 
@@ -246,7 +246,7 @@ For subsequent addon updates, use the generated update script:
246
246
 
247
247
  The generated script uses `click-odoo-update` with the workspace Odoo configuration.
248
248
 
249
- ### Local Docker backup and restore
249
+ ### 2. Local Docker backup and restore
250
250
 
251
251
  The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
252
252
 
@@ -269,7 +269,7 @@ The default database name is taken from `[config].db_name` when configured, othe
269
269
  ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
270
270
  ```
271
271
 
272
- #### Database backup
272
+ #### 2.1. Database backup
273
273
 
274
274
  Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
275
275
 
@@ -289,7 +289,7 @@ Pass an output path explicitly when needed:
289
289
  ./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
290
290
  ```
291
291
 
292
- #### Database restore
292
+ #### 2.2. Database restore
293
293
 
294
294
  Restore a database dump with `pg_restore`:
295
295
 
@@ -311,7 +311,7 @@ To restore the same dump into another database without replacing the default dat
311
311
  ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
312
312
  ```
313
313
 
314
- #### Filestore backup
314
+ #### 2.3. Filestore backup
315
315
 
316
316
  Create a compressed tar archive of the selected database filestore:
317
317
 
@@ -342,7 +342,7 @@ docker compose stop odoo
342
342
  docker compose up -d odoo
343
343
  ```
344
344
 
345
- #### Filestore restore
345
+ #### 2.4. Filestore restore
346
346
 
347
347
  Restore a filestore archive:
348
348
 
@@ -366,7 +366,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
366
366
 
367
367
  Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
368
368
 
369
- #### Restic filestore backup
369
+ #### 2.5. Restic filestore backup
370
370
 
371
371
  The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
372
372
 
@@ -414,7 +414,7 @@ List or inspect snapshots through the generic wrapper:
414
414
  ./docker/local/scripts/restic.sh check
415
415
  ```
416
416
 
417
- #### Restic filestore restore
417
+ #### 2.6. Restic filestore restore
418
418
 
419
419
  Restore the latest matching filestore snapshot:
420
420
 
@@ -442,7 +442,7 @@ The restore helper removes the target database filestore before restoring it. Wh
442
442
 
443
443
  ---
444
444
 
445
- ### 2. Creating a Docker deploy build context
445
+ ### 3. Creating a Docker deploy build context
446
446
 
447
447
  Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
448
448
 
@@ -483,7 +483,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
483
483
 
484
484
  ---
485
485
 
486
- ### 3. Managing Python requirements
486
+ ### 4. Managing Python requirements
487
487
 
488
488
  The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
489
489
 
@@ -496,7 +496,7 @@ Use:
496
496
 
497
497
  When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
498
498
 
499
- #### 3.1. Add or pin packages
499
+ #### 4.1. Add or pin packages
500
500
 
501
501
  Use `requirements` to install additional packages or to force a specific version:
502
502
 
@@ -509,7 +509,7 @@ requirements =
509
509
 
510
510
  In this example, both packages are included in the generated dependency set and pinned to the specified versions.
511
511
 
512
- #### 3.2. Override a package with a different one
512
+ #### 4.2. Override a package with a different one
513
513
 
514
514
  If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
515
515
 
@@ -527,13 +527,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
527
527
 
528
528
  ---
529
529
 
530
- ### 4. Using system Python instead of managed Python
530
+ ### 5. Using system Python instead of managed Python
531
531
 
532
532
  By default, `odt-env` uses `uv` to install and manage the requested Python version.
533
533
 
534
534
  If you already have a suitable system Python installed, you can disable managed Python.
535
535
 
536
- #### 4.1. Update the project file
536
+ #### 5.1. Update the project file
537
537
 
538
538
  Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
539
539
 
@@ -547,7 +547,7 @@ managed_python = false
547
547
  python_version = 3.11
548
548
  ```
549
549
 
550
- #### 4.2. Update the workspace
550
+ #### 5.2. Update the workspace
551
551
 
552
552
  After changing the project file, run `odt-env` again from the workspace root:
553
553
 
@@ -559,7 +559,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
559
559
 
560
560
  ---
561
561
 
562
- ### 5. Creating portable workspace bundles
562
+ ### 6. Creating portable workspace bundles
563
563
 
564
564
  Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
565
565
 
@@ -577,7 +577,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
577
577
 
578
578
  Those machine-specific outputs are recreated on the target machine.
579
579
 
580
- #### 5.1. Create a bundle on the build machine
580
+ #### 6.1. Create a bundle on the build machine
581
581
 
582
582
  On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
583
583
 
@@ -597,7 +597,7 @@ You can also select an explicit output file:
597
597
  odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
598
598
  ```
599
599
 
600
- #### 5.1.1. Including uncommitted changes
600
+ #### 6.1.1. Including uncommitted changes
601
601
 
602
602
  By default, bundle creation stops when a bundled Git repository has uncommitted changes.
603
603
 
@@ -607,7 +607,7 @@ To intentionally include those changes in the bundle, use:
607
607
  odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
608
608
  ```
609
609
 
610
- #### 5.2. Create the workspace on the target machine
610
+ #### 6.2. Create the workspace on the target machine
611
611
 
612
612
  Copy the ZIP to the target machine and import it into an empty directory:
613
613
 
@@ -634,7 +634,7 @@ The import operation:
634
634
  > **Compatibility note**
635
635
  > A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
636
636
 
637
- #### 5.3. Manual wheelhouse workflow
637
+ #### 6.3. Manual wheelhouse workflow
638
638
 
639
639
  The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
640
640
 
@@ -0,0 +1 @@
1
+ __version__ = "1.20.2"
@@ -2737,6 +2737,11 @@ services:
2737
2737
  db:
2738
2738
  image: postgres:16
2739
2739
  restart: unless-stopped
2740
+ logging:
2741
+ driver: local
2742
+ options:
2743
+ max-size: "50m"
2744
+ max-file: "10"
2740
2745
  environment:
2741
2746
  POSTGRES_DB: postgres
2742
2747
  POSTGRES_USER: odoo
@@ -2748,6 +2753,11 @@ services:
2748
2753
  build:
2749
2754
  context: {build_context}
2750
2755
  restart: unless-stopped
2756
+ logging:
2757
+ driver: local
2758
+ options:
2759
+ max-size: "50m"
2760
+ max-file: "10"
2751
2761
  depends_on:
2752
2762
  - db
2753
2763
  ports:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: odoo-devops-tools
3
- Version: 1.20.0
3
+ Version: 1.20.2
4
4
  Summary: A small set of utilities for local Odoo development and simple Odoo deployments.
5
5
  Author: Roman Lacko
6
6
  License-Expression: MIT
@@ -274,7 +274,7 @@ For subsequent addon updates, use the generated update script:
274
274
 
275
275
  The generated script uses `click-odoo-update` with the workspace Odoo configuration.
276
276
 
277
- ### Local Docker backup and restore
277
+ ### 2. Local Docker backup and restore
278
278
 
279
279
  The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
280
280
 
@@ -297,7 +297,7 @@ The default database name is taken from `[config].db_name` when configured, othe
297
297
  ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
298
298
  ```
299
299
 
300
- #### Database backup
300
+ #### 2.1. Database backup
301
301
 
302
302
  Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
303
303
 
@@ -317,7 +317,7 @@ Pass an output path explicitly when needed:
317
317
  ./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
318
318
  ```
319
319
 
320
- #### Database restore
320
+ #### 2.2. Database restore
321
321
 
322
322
  Restore a database dump with `pg_restore`:
323
323
 
@@ -339,7 +339,7 @@ To restore the same dump into another database without replacing the default dat
339
339
  ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
340
340
  ```
341
341
 
342
- #### Filestore backup
342
+ #### 2.3. Filestore backup
343
343
 
344
344
  Create a compressed tar archive of the selected database filestore:
345
345
 
@@ -370,7 +370,7 @@ docker compose stop odoo
370
370
  docker compose up -d odoo
371
371
  ```
372
372
 
373
- #### Filestore restore
373
+ #### 2.4. Filestore restore
374
374
 
375
375
  Restore a filestore archive:
376
376
 
@@ -394,7 +394,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
394
394
 
395
395
  Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
396
396
 
397
- #### Restic filestore backup
397
+ #### 2.5. Restic filestore backup
398
398
 
399
399
  The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
400
400
 
@@ -442,7 +442,7 @@ List or inspect snapshots through the generic wrapper:
442
442
  ./docker/local/scripts/restic.sh check
443
443
  ```
444
444
 
445
- #### Restic filestore restore
445
+ #### 2.6. Restic filestore restore
446
446
 
447
447
  Restore the latest matching filestore snapshot:
448
448
 
@@ -470,7 +470,7 @@ The restore helper removes the target database filestore before restoring it. Wh
470
470
 
471
471
  ---
472
472
 
473
- ### 2. Creating a Docker deploy build context
473
+ ### 3. Creating a Docker deploy build context
474
474
 
475
475
  Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
476
476
 
@@ -511,7 +511,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
511
511
 
512
512
  ---
513
513
 
514
- ### 3. Managing Python requirements
514
+ ### 4. Managing Python requirements
515
515
 
516
516
  The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
517
517
 
@@ -524,7 +524,7 @@ Use:
524
524
 
525
525
  When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
526
526
 
527
- #### 3.1. Add or pin packages
527
+ #### 4.1. Add or pin packages
528
528
 
529
529
  Use `requirements` to install additional packages or to force a specific version:
530
530
 
@@ -537,7 +537,7 @@ requirements =
537
537
 
538
538
  In this example, both packages are included in the generated dependency set and pinned to the specified versions.
539
539
 
540
- #### 3.2. Override a package with a different one
540
+ #### 4.2. Override a package with a different one
541
541
 
542
542
  If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
543
543
 
@@ -555,13 +555,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
555
555
 
556
556
  ---
557
557
 
558
- ### 4. Using system Python instead of managed Python
558
+ ### 5. Using system Python instead of managed Python
559
559
 
560
560
  By default, `odt-env` uses `uv` to install and manage the requested Python version.
561
561
 
562
562
  If you already have a suitable system Python installed, you can disable managed Python.
563
563
 
564
- #### 4.1. Update the project file
564
+ #### 5.1. Update the project file
565
565
 
566
566
  Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
567
567
 
@@ -575,7 +575,7 @@ managed_python = false
575
575
  python_version = 3.11
576
576
  ```
577
577
 
578
- #### 4.2. Update the workspace
578
+ #### 5.2. Update the workspace
579
579
 
580
580
  After changing the project file, run `odt-env` again from the workspace root:
581
581
 
@@ -587,7 +587,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
587
587
 
588
588
  ---
589
589
 
590
- ### 5. Creating portable workspace bundles
590
+ ### 6. Creating portable workspace bundles
591
591
 
592
592
  Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
593
593
 
@@ -605,7 +605,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
605
605
 
606
606
  Those machine-specific outputs are recreated on the target machine.
607
607
 
608
- #### 5.1. Create a bundle on the build machine
608
+ #### 6.1. Create a bundle on the build machine
609
609
 
610
610
  On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
611
611
 
@@ -625,7 +625,7 @@ You can also select an explicit output file:
625
625
  odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
626
626
  ```
627
627
 
628
- #### 5.1.1. Including uncommitted changes
628
+ #### 6.1.1. Including uncommitted changes
629
629
 
630
630
  By default, bundle creation stops when a bundled Git repository has uncommitted changes.
631
631
 
@@ -635,7 +635,7 @@ To intentionally include those changes in the bundle, use:
635
635
  odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
636
636
  ```
637
637
 
638
- #### 5.2. Create the workspace on the target machine
638
+ #### 6.2. Create the workspace on the target machine
639
639
 
640
640
  Copy the ZIP to the target machine and import it into an empty directory:
641
641
 
@@ -662,7 +662,7 @@ The import operation:
662
662
  > **Compatibility note**
663
663
  > A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
664
664
 
665
- #### 5.3. Manual wheelhouse workflow
665
+ #### 6.3. Manual wheelhouse workflow
666
666
 
667
667
  The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
668
668
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "odoo-devops-tools"
7
- version = "1.20.0"
7
+ version = "1.20.2"
8
8
  description = "A small set of utilities for local Odoo development and simple Odoo deployments."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -1 +0,0 @@
1
- __version__ = "1.20.0"