A command-line tool for managing Odoo dependencies.
Project description
bl
Why BL
Because ak is a bit slow and I was tired of waiting around
Install
pipx install bl-odoo
Usage
For all those command bl will try to look in the current directory. If it does find the spec file
it will try to look in the child odoo directory. (i.e. you can launch bl in the root of you project)
You can also override the default paths and verbosity with:
-c/--config: path to the project spec file (default:spec.yaml)-z/--frozen: path to the frozen spec file (default:frozen.yaml)-o/--config-override: path to an override config to extend the project specification-j/--concurrency: number of concurrent tasks (default:28)-b/--use-bindfs: use bindfs instead of creating symlinks (requiresuser_allow_otherin/etc/fuse.conf)-w/--workdir: working directory, defaults to the directory of--config--log-level: one ofDEBUG,INFO,WARNING,ERROR,CRITICAL(default:WARNING)
Build
bl build [-c PATH_TO_SPEC] [-z PATH_TO_FROZEN] [-o CONFIG_OVERRIDE] [-j CONCURRENCY] [-b/--use-bindfs] [-w WORKDIR] [--log-level LEVEL]
What does it do
It does what ak build does
Params
PATH_TO_SPECpath to your spec (default:spec.yaml)PATH_TO_FROZENpath to your frozen spec (default:frozen.yaml)CONFIG_OVERRIDEpath to an override config to extend the project specificationCONCURRENCYnumber of module clone simultaneously (default:28)--use-bindfsuse bindfs instead of creating symlinks (requiresuser_allow_otherin/etc/fuse.conf)WORKDIRworking directory; if omitted, the directory containingspec.yamlLEVELlog level (see--log-levelabove)
How it looks
Freeze
bl freeze [-c PATH_TO_SPEC] [-z PATH_TO_FROZEN] [-o CONFIG_OVERRIDE] [-j CONCURRENCY] [-w WORKDIR] [--log-level LEVEL]
What does it do
It does what ak freeze does
Params
PATH_TO_SPECpath to your spec (default:spec.yaml)PATH_TO_FROZENpath to your frozen spec (default:frozen.yaml)CONFIG_OVERRIDEpath to an override config to extend the project specificationCONCURRENCYnumber of module clone simultaneously (default:28)WORKDIRworking directory; if omitted, the directory containingspec.yamlLEVELlog level (see--log-levelabove)
Diff
bl diff [-c PATH_TO_SPEC] [-z PATH_TO_FROZEN] [-o CONFIG_OVERRIDE] [-j CONCURRENCY] [-w WORKDIR] [--log-level LEVEL]
What does it do
Shows diff for all dirty repos in the project.
Params
PATH_TO_SPECpath to your spec (default:spec.yaml)PATH_TO_FROZENpath to your frozen spec (default:frozen.yaml)CONFIG_OVERRIDEpath to an override config to extend the project specificationCONCURRENCYnumber of module clone simultaneously (default:28)WORKDIRworking directory; if omitted, the directory containingspec.yamlLEVELlog level (see--log-levelabove)
Clean
bl clean [-c PATH_TO_SPEC] [-o CONFIG_OVERRIDE] [-w WORKDIR] [--log-level LEVEL] [--remove] [--unlink] [--force] [--dry-run]
What does it do
By default it scans all repos in the spec for dirty git state and resets them with git reset --hard.
Params
PATH_TO_SPECpath to your spec (default:spec.yaml)CONFIG_OVERRIDEpath to an override config to extend the project specificationWORKDIRworking directory; if omitted, the directory containingspec.yamlLEVELlog level (see--log-levelabove)--removedeletesrcandexternal-srcdirectories--unlinkalso clean the links directory--forceremove confirmation prompts--dry-runjust output what it would do
Init
bl init [DESTINATION]
What does it do
Initializes a new project from the docky-odoo-template-shared template using Copier.
Params
DESTINATIONdestination directory (default: current directory)
Odoo is taking a really long time to clone
Yes !
You can add a locales entry to your odoo repo in spec.yaml like so:
odoo:
modules:
- account
...
remotes:
odoo: https://github.com/odoo/odoo
merges:
- odoo 14.0
locales:
- fr
- en
It will only download the french and english translation instead of all of them
- without locales: 849MB and 40 seconds fresh build
- with locales fr, en: 169MB and 27 seconds fresh build
⚠️ WARNING: you must list all the odoo modules you need if you use the locales property
I have warnings about patch globs
There is a new property to handle git am <patch_glob> (the old one still works but I hope to remove it at some point)
Before:
folder_name:
modules:
...
remotes:
...
merges:
...
shell_command_after:
- git am ../../patches/patch_folder/*
After:
folder_name:
modules:
...
remotes:
...
merges:
...
patch_globs:
- ../../patches/patch_folder/*
Benchmarks
Ak benchmarks
Fresh install
Already cloned once
Bl benchmarks
Fresh install
Already cloned once
Results
| Type | AK | BL |
|---|---|---|
| Cold | ~100s | 2 - 10x faster |
| Hot | 3-20s | 2 - 10x faster |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bl_odoo-0.3.22.tar.gz.
File metadata
- Download URL: bl_odoo-0.3.22.tar.gz
- Upload date:
- Size: 37.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.10 {"installer":{"name":"uv","version":"0.11.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
639ccfa4be24c87892ec2b069b53c0e598f4d52f87a66f599ec2824d56117de9
|
|
| MD5 |
ec439cfba565d9fd7a331cc9c63e49fa
|
|
| BLAKE2b-256 |
008e6586de3bc92d928a983f0bf6d504a71a02ddc941dbbb5b3c0f3f64ca3672
|
File details
Details for the file bl_odoo-0.3.22-py3-none-any.whl.
File metadata
- Download URL: bl_odoo-0.3.22-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.10 {"installer":{"name":"uv","version":"0.11.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63d8f4c8406e09c548577269f6011c45f6bb0c72578952455a57f84f586a80a3
|
|
| MD5 |
25e88472d8d87667d195d24f4722b54b
|
|
| BLAKE2b-256 |
6058f084e95f2371513f079cd31fbd512fb4aa6976d965f36357074d0efc749b
|