Acsone Odoo 开发工具
项目描述
这是一套命令行实用程序,旨在简化Acsone的Odoo开发工作流程。
它假定项目是基于setuptools的Python包,可以使用pip打包和安装。
包括在此处的工具的标准
作为标准命令(git,pip等)的小包装
但在手动执行时足够不平凡,可能会出错或耗时
在多个Acsone Odoo项目中使用
安装
pip install --user acsoo
或
pipx install acsoo
要启用bash自动完成,请将以下行添加到您的 .bashrc
eval "$(_ACSOO_COMPLETE=source acsoo)"
我们在这里有什么
以下是一些可用命令及其示例的列表。
使用 acsoo --help 或 acsoo <command> --help 获取更多信息。
acsoo pr-status
在需求文件中查找形式为 refs/pull/NNN/head 的 git 引用,并打印相应的 GitHub 提交请求状态。
/!\ 已废弃的命令 /!\
acsoo checklog
acsoo checklog 已弃用:使用 `checklog-odoo <https://pypi.ac.cn/project/checklog-odoo>`_。
检查 odoo 日志文件是否包含错误,并基于正则表达式忽略一些错误。
acsoo checklog odoo.log odoo -d mydb -i base --stop-after-init | acsoo checklog acsoo checklog --ignore "WARNING.*blah" odoo.log
acsoo tag
acsoo tag 已弃用:使用 `bump2version <https://pypi.ac.cn/project/bump2version/>`_ 并设置 `tag = True`,然后使用 `git push –tags` 代替。
在确保所有内容都已提交到 git 后,对当前项目进行标记。
acsoo tag-requirements
acsoo tag-requirements 已弃用:使用 `pip-preserve-requirements <https://pypi.ac.cn/project/pip-preserve-requirements/>`_ 代替。除了标记外,它还会自动将第三方存储库推送到相应的 ACSONE 分支,简化了使用 ``@refs/pull/NNN/head`` 声明 OCA VCS 引用。
对 requirements.txt 中找到的所有 VCS 需求进行标记,以防在 VCS 垃圾收集时丢失引用的提交。
acsoo addons
acsoo addons 已弃用:使用 `manifestoo <https://pypi.ac.cn/project/manifestoo>`_ 代替:它更健壮,并具有更好的测试覆盖率。
一组命令用于打印插件列表,在运行测试时非常有用。
acsoo addons list acsoo addons list-depends
acsoo freeze
已弃用:使用 `pip-deepfreeze <https://pypi.ac.cn/project/pip-deepfreeze>`_ 代替。
与 pip freeze 类似,但它仅输出提供分布名称的依赖项。
acsoo wheel
此命令已弃用,请使用 pip >= 20.1 并不要使用可编辑的 VCS 依赖项。`pip wheel -e . -r requirements.txt –wheel-dir=release` 将给出相同的结果,包括固定 VCS 依赖项的缓存。
为 requirements.txt 中找到的所有依赖项以及当前目录中的项目构建 wheels。
此命令(与常规 pip wheel -r requirements.txt -e . –wheel_dir=release –src src 相比)的主要优势是它维护了一个使用 sha1 固定的 git 依赖项的缓存。
acsoo release
此命令已弃用。发布已通过 .gitlab-ci 自动化。请参阅项目模板中的 `build` 阶段。
在一个命令中执行 acsoo tag、acsoo tag_requirements 和 acsoo wheel。
acsoo.cfg
项目根目录下的 acsoo.cfg 文件有助于您设置合理的默认值。
这是一个最小示例
[acsoo] trigram=
xyzseries=10.0version=1.5.0
以及一个更详细的示例
[acsoo] trigram=
xyzseries=11.0version=1.5.2pushable= github.com:acsonegithub.com:mozaik[checklog] ignore= WARNING .* module .*:description is empty !WARNING:unable to set column .* of table account_analytic_account not null
有用的链接
维护者
此项目由 ACSONE SA/NV 维护。
变更
3.1.0 (2021-01-04)
pr-status:从需求文件中找到的 GitHub 提交请求 URL 中检测 PR 状态;在注释中检测它们很有用
对项目模板(在 gitlab-ci.yml 和 pre-commit 配置中,主要是)进行了各种改进(#75,#77)。
在 acsoo tag 中,不要对空目录进行抱怨(#76)。
弃用 acsoo freeze 以支持 pip-deepfreeze。
弃用 acsoo addons 以支持 manifestoo。
将许可协议和开发状态检查添加到项目模板中。
从 acsoo 依赖项中删除 bumpversion。该项目现在由 bump2versions 取代,最好使用 pipx 单独安装它。
3.0.2 (2020-10-14)
取消对 setuptools 版本的限制。从 2020-10-14 以来,它与 pypi.org 存在 https 问题。这意味着 odoo-autodiscover>=2 必须用于 Odoo<=10 项目。另请参阅 https://github.com/acsone/setuptools-odoo/issues/10。
3.0.1 (2020-07-29)
[REM] 删除 mrbob 依赖,因为 pip >= 20.2 安装时崩溃
3.0.0 (2020-07-01)
[DEL] 放弃对 Python 2 的支持(acsoo 的先前版本仍可在 PyPI 上找到,并且对于常规使用,python 3 版本也适用于 Odoo 8、9、10 项目)
新增功能:acsoo freeze 限制 pip freeze 输出为给定分布的依赖项
新增功能:acsoo pr-status 打印包含修订形式为 refs/pull/NNN/head 的 GitHub 拉取请求的依赖文件的状态
删除功能:弃用 acsoo wheel(现在由 pip 本地支持)和 acsoo release(在 GitLab CI 中自动执行)
改进:项目模板:在推送翻译更新时跳过 ci
2.1.0 (2020-05-25)
改进:项目模板:更好的 isort 配置
改进:项目模板:合并请求模板
改进:支持在 tag_requirements 命令中使用不可编辑的 VCS 依赖项
删除功能:删除 tag_requirements 命令中的 –force 选项,因为它没有任何有用的作用,因为我们想要的只是确保存在一个标签
维护:声明式 setuptools 配置
改进:将 flake8 锁定到版本 3.7.9(提醒:acsoo flake8 已弃用,请使用 pre-commit)
改进:将 pylint-odoo 锁定到版本 3.1.0(提醒:acsoo pylint 已弃用,请使用 pre-commit)
2.0.0 (2020-01-15)
改进:项目模板:在 gitlab-ci 中发布 html 覆盖率
改进:项目模板:在 gitlab-ci 中添加分支覆盖率
改进:项目模板:在 gitlab-ci 中添加 pre-commit 缓存
删除功能:弃用 acsoo pylint,改为使用 pre-commit 和每个项目的 .pylintrc
改进:支持 Odoo 13
改进:项目模板:将 requirements-dev.txt 重命名为 requirements.txt.in,更好地反映这些是输入依赖项,而不是开发环境的依赖项
改进:项目模板:更新版权年份
改进:项目模板:删除 module_auto_update,使用 click-odoo-update 代替
1.9.0 (2019-02-28)
改进:项目模板:使用 pre-commit(black、isort、flake8)
修复:项目模板:在 click-odoo-update 错误时失败
修复:项目模板:修复部署日志文件
修复:acsoo pylint:与 pylint 2 兼容
1.8.3 (2019-01-22)
修复:acsoo pylint:适配配置以与 pytlint-odoo 2.0.1 一起工作
改进:项目模板:使用 click-odoo-update
1.8.2 (2018-11-05)
改进:项目模板:在 .gitlab-ci.yml 中声明 Python 版本的更好方法
修复:修复 acsoo 标签以支持 Odoo 12
1.8.1 (2018-10-30)
改进:忽略 pylint C0303([链接](https://github.com/PyCQA/pylint/issues/289))
1.8.0 (2018-10-29)
改进:acsoo wheel:添加 –no-deps,这样我们可以构建 requirements.txt 而不获取依赖项,然后使用 –no-index 和 –find-links=release/ 安装项目,以便检测缺失的依赖项(#38)
改进:acsoo wheel:添加 –exclude-project 选项(构建 requirements.txt 时不包括当前项目),为 #44 准备
改进:acsoo wheel:使用可编辑 git 依赖项的缓存
改进:acsoo wheel:使用 pip wheel -e . 来构建项目,而不是 setup.py bdist_wheel,因为显然我们这么做的原因已经在最近的 pip 版本中解决(pip 问题 3499 的评论中提到的似乎是无关的,所以我不确定我们为什么要这么做,可能是因为 [链接](https://github.com/pypa/pip/issues/3500))
改进:flake8:默认忽略 W503 和 W504(逻辑运算符周围的换行符)
改进:项目模板:支持 Odoo 12
改进:项目模板:锁定 acsoo 版本
改进:项目模板:acsoo wheel –no-deps,因此,结合测试阶段的 pip install –no-index,它验证 requirements.txt 中包含所有依赖项
1.7.1 (2018-07-15)
改进:在 .gitlab-ci.yml 中添加 makepot
改进:pylint:将 lxml C 库列入白名单
1.7.0 (2018-06-04)
改进:更多的 Python 3 和 Odoo 11 支持
改进:项目模板:在 gitlab-ci 中添加构建阶段
改进:项目模板:新的部署/升级风格(使用校验和升级和 click-odoo-upgrade 脚本)
改进:强制 odoo-autodiscover>=2 并不用于 Odoo >= 11
改进:向 acsoo tag 和 tag_requirements 添加 –dry-run 选项
改进:使 tag_requirements 可以推送的位置列表可配置
改进:项目模板:按需安装 acsoo 和 ssh-agent
[重要] 项目模板:使用gitlab-ci中的click-odoo-initdb
1.6.0 (2018-02-16)
[重要] checklog:添加–no-err-if-empty选项
[重要] 支持 Python 3
[重要] 初步支持 Odoo 11
[重要] 项目模板:各种改进
[重要] 优化get_installable_addons()方法,提高可复用性
1.5.0 (2017-09-19)
[重要] tag_requirements:更积极获取;这解决了尝试写入不存在对象的ref时发生的错误
[重要] tag:在执行acsoo tag时始终标记要求
[重要] tag:在标记项目之前标记要求,如果标记要求时出现问题,则项目不会被标记且不会触发发布构建
[新增] addons:添加–separator选项(并修复测试不足的测试用例)
[重要] addons:将当前目录视为addons目录候选
[重要] pylint:默认在当前目录中查找要测试的模块,使用与addons列表相同的算法
[重要] pylint:支持python 3风格的odoo/addons命名空间(没有__init__.py)
1.4.3 (2017-06-16)
[重要] checklog:将以下以#开头的行视为注释
[修复] checklog:上一个版本破坏了checklog颜色输出
1.4.2 (2017-06-16)
[重要] checklog:如果在输入中找不到日志记录则失败
[重要] checklog:使用click输出以减少对Unicode问题的敏感性
1.4.1 (2017-06-14)
[修复] acsoo发布中的回归
1.4.0 (2017-06-13)
[重要] 颜色日志
[重要] 对acsoo tag和tag_editable_requirements进行了重大更改。这些更改使得与由新标签触发的CI驱动的发布流程一起工作变得更加容易。通常的acsoo发布流程应该不会受到这些更改的影响。
tag_editable_requirements现在是tag_requirements。
标签结构已从{series}-{trigram}_{version}更改为{series}-{trigram}-{req_sha}-{egg},其中{req_sha}是requirements.txt最后更改的sha。
tag_requirements包含egg名称在标签中,以便在同一个仓库中的不同提交可以进行标记(以前,给定依赖仓库中的所有插件必须位于同一个提交)。
当给定的系列、三字母代码和egg在依赖提交上已经存在标签时,tag_requirements不会尝试创建另一个标签(这避免了创建无用的标签或强制标签),并且这足以避免提交被垃圾回收。
acsoo tag现在调用tag_requirements。然而,在大多数情况下,这不会在依赖关系上放置额外的标签,因为正常的流程是在更新requirements.txt时立即调用tag_requirements。
tag_requirements自动将http(s) url转换为ssh url,以便在推送标签时使用。这允许在requirements中最大化使用http(s) url,以便CI和脚本不需要对公共依赖项的ssh访问。这目前仅适用于github上的acsone组织,但该机制很容易扩展,如果需要的话。
1.3.0 (2017-06-04)
[重要] flake8:从acsoo配置文件中读取额外的flake8-options
[重要] 模板:在.gitlab.ci.yml中添加系列相关的odoo命令。
[重要] 模板:在.gitlab.ci.yml中创建createdb,因为Odoo 8本身不会这样做。
[新增] addons list-depends:添加--exclude选项
1.2.2 (2017-05-30)
[修复] tag、tag_editable_requirements和release命令中的回归
1.2.1 (2017-05-27)
[重要] 添加提供主要配置文件作为选项的可能性
[重要] checklog:从配置文件的[checklog]部分读取默认选项。
[重要] pylint:从配置文件的[pylint]部分读取默认选项。
【改进】pylint:使用-lint模块或包时,可以使用-m选项。
【改进】flake8:从配置文件的[flake8]部分读取默认选项。目前唯一的选项是config,用于提供替代的flake8配置文件。这对于开发者来说很有用,因为他们只需在本地输入acsoo flake8即可,即使在需要特定配置的情况下,也可以在本地使用与CI相同的配置轻松运行。
1.1.0 (2017-05-25)
【改进】pylint:要测试的包必须明确提供,一旦提供额外的pylint选项,就可以轻松地在本地上测试项目的子集。例如:acsoo pylint -- -d some-message odoo,acsoo pylint -- odoo.addons.xyz;
【改进】pylint:禁用更多代码复杂度错误:too-many-nested-blocks,too-many-return-statements。
【改进】pylint:最后显示导致失败的错误信息,这样CI中的邮件显示日志的最后几行就更有相关性。
【改进】pylint:显示未导致失败的错误信息的摘要,即使在没有失败的情况下也是如此。
【新增】acsoo addons list和acsoo addons list-depends。
【新增】acsoo checklog。
1.0.1 (2017-05-21)
首个公开版本。
项目详情
下载文件
根据您的平台下载文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码分布
构建分布
acsoo-3.4.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fd892b559647f0e846f23af22f61bd6d4534e0c546c12e33c0537a72c0dd3eb5 |
|
MD5 | d840165be0b16b499fe5e7d896a0ba51 |
|
BLAKE2b-256 | f52e5c1faab062a61ecdad07df649bbb531912925e5fc33b9c06239181e27d1e |
acsoo-3.4.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d98acea5d01f7d69aa9f775473b0fd0345e50bc8a1557fed2c155cd57211a1ae |
|
MD5 | 3ecbf292437055bf2e766ed128da9918 |
|
BLAKE2b-256 | 656280a1d8ed0b53a4494d973647aee6cb7b397346dc9440f81758f5e52fe5f0 |