跳转到主要内容

LSST the Docs管理客户端。

项目描述

LSST the Docs: Conveyor

Python Package Index GitHub Actions Documentation

Conveyor 是LSST the Docs (LTD) 服务和客户端的通用Python库和命令行应用程序。

关键特性

  • ltd 命令行应用程序。

    ltd upload 子命令使得将文档上传与持续集成作业(尤其是Travis CI)集成变得简单。

  • ltdconveyor Python包提供了与LSST the Docs一起工作的API。

    ltdconveyor.s3 子包提供S3对象管理服务。所有由LTD托管的文档都通过 Fastly CDN 提供,该CDN使用S3对象元数据来清除缓存。Conveyor确保所有上传、复制或从S3删除对象的客户端和微服务都正确设置了此元数据。

    ltdconveyor.fastly 提供Fastly缓存管理API。

    ltdconveyor.keeper 提供与LTD Keeper的REST API交互的API。

您可以在我们的 SQR-006 技术文档中了解更多关于LTD的信息。

阅读文档: https://ltd-conveyor.lsst.io

变更日志

0.8.3 (2024-02-22)

  • 改进了LTD Keeper API响应中的错误报告,对于常见场景并指导用户在LSSTC Slack上联系dm-docs-support。

0.8.2 (2024-02-22)

  • 移除了对Python 3.12环境更好的兼容性的 pkg_resources 的使用。

  • 修复了内部类型问题。

  • 更新了GitHub Actions工作流程。

0.8.1 (2021-09-27)

修复了GitHub Actions中 GITHUB_HEAD_REF 环境变量的解析。

0.8.0 (2021-09-15)

ltd upload 命令现在在GitHub Actions的pull request工作流程中工作。

0.7.0 (2020-09-01)

本发行版侧重于基础设施改进,不应对用户产生重大影响。

基础设施

  • 此工具在Python 3.7和3.8上经过官方测试和支持。Python 3.6不再官方支持。

  • 移除了第三方依赖项(包括boto3、requests、uritemplate和click)的依赖项。这样做,LTD Conveyor更容易集成到现有的Python环境中。

  • 我们已经从Travis CI迁移到GitHub Actions进行测试、代码风格检查、文档构建和部署以及PyPI的部署。除了按需测试外,GitHub Actions还每天对软件包进行测试,以确保与第三方依赖项的兼容性。

  • 内部,我们使用tox来运行测试、代码风格检查器和构建文档。tox使得本地测试运行可以使用与CI相同的设置。

  • 代码库现在通过black和isort自动格式化。通过使用pre-commit,我们确保始终应用格式化。

  • 代码库现在具有类型注解,使用mypy进行测试。类型注解有助于确保API被显式定义和正确使用。

0.6.1 (2020-02-23)

修复

  • --gh 选项现在支持标签和PR事件,而不仅仅是分支,为 ltd upload

0.6.0 (2020-02-20)

新增

  • ltd upload 命令添加了 --gh 选项,以支持在 GitHub Actions 中的使用。

0.5.0 (2020-02-05)

新增

  • LTD Conveyor现在可以使用Amazon S3的预签名POST URL功能将新构建上传到S3。这意味着客户端不再需要S3的凭证——LTD Keeper API服务器在 POST /products/<product>/builds/ 构建注册步骤中生成预签名POST URL。

  • ltd 命令现在使用基于预签名POST的URL。已移除 --aws-id--aws-secret 选项,但 --user--password 选项仍然保留。

    如果您使用环境变量,则在使用 ltd upload 时不应有任何变化(除了不再需要 $LTD_AWS_ID$LTD_AWS_SECRET 环境变量)。

修复

  • 在INFO级别和更高级别的日志记录中,不显示模块路径。模块路径仅在DEBUG级别日志记录中显示,这最有用。

基础设施

  • 现在通过 setup.cfg 文件和 pyproject.toml 文件(PEP 518)进行打包。

  • 已更新Travis CI配置以使用Python 3.8进行测试;同时重构了CI Pipeline的Travis CI阶段。

0.4.2 (2018-10-09)

修复

  • 修复了一个bug,自从0.4.1版本以来,在删除一个空目录(S3前缀中没有对象)时,ltdconveyor.s3.delete_dir会引发一个TypeError

0.4.1 (2018-10-08)

修复

  • 修复了一个bug,当要删除的路径前缀下的对象数量超过1000个时,ltdconveyor.s3.delete_dir会失败。

  • 通过更新到基于Documenteer的Sphinx设置,修复了文档中项目标题的错误。

0.4.0 (2018-04-17)

新增

  • 添加了一个新的命令行应用程序ltd,它为客户端提供了与LSST the Docs API交互的子命令。该应用程序使用Click实现,其文档自动从命令行帮助中生成,使用sphinx-click

    第一个子命令是ltd upload,允许客户端将站点作为新的构建上传到LTD。此命令包括特殊功能,以便从Travis CI(使用ltd upload --travis选项)中运行客户端以填充来自Travis环境的版本信息。其他标志允许在特定情况下(例如,在pull请求中跳过上传)或任意地(设置ltd upload --skipexport LTD_SKIP_UPLOAD=true)使ltd upload成为一个无操作。

  • 添加了子包ltdconveyor.keeper,将LTD Conveyor的范围扩展为构建LTD客户端的全面服务库,而不仅仅是S3上传客户端。

    • 函数ltdconveyor.keeper.login.get_keeper_token允许您获取LTD Keeper API的临时认证令牌。

    • 模块ltdconveyor.keeper.build包括与LTD Keeper API执行构建上传握手的函数。

更改

  • 移除了Python 2.7和3.4的兼容性。现在代码库完全面向Python 3(3.5、3.6)。

  • 完全重新组织了Python命名空间。现在所有S3 API都在ltdconveyor.s3中,Fastly API可通过ltdconveyor.fastly获取。

  • 切换到使用setuptools_scm来生成发行版本的版本字符串。

  • 切换到使用extras_require用于开发依赖项(pip install -e ".[dev]")。这使我们能够在setup.py中专门协调依赖关系。

  • 通过python setup.py test启用测试。同时升级测试堆栈到pytest 3.5和pytest-flake8 1.0。

  • 更新了Sphinx文档基础设施的兼容性。

  • 默认为acl=None以支持更多的AWS IAM用户。结果发现,并非所有具有PutObject权限的IAM用户都具有设置对象ACL的权限。我们希望许多轻量级的IAM用户能够上传到lsst-the-docs存储桶的受限子目录,但似乎很难使这些用户成为ACL受托人。我们现在寻求一种替代方案

    • lsst-the-docs存储桶现在有一个PublicRead bucket策略

    • 未在单个对象上设置ACL。

修复

  • 将断言更改为RuntimeErrors。在生产代码中不应使用断言来引发异常。

0.3.1 (2017-03-27)

新增

  • 添加了open_bucket函数。这提供了一个方便的API来获取boto3存储桶资源,尤其是对于直接使用只接受存储桶的upload_object和upload_file API的客户。

0.3.0 (2017-02-20)

新增

  • content_type参数添加到upload_object,以便用户可以为HTML上传指定text/htmlupload_file/upload_dir函数通过使用Python的mimetypes库来猜测编码来避免这个问题,但upload_object是更低级的,需要用户明确提供内容类型。

  • 重构了新的函数create_dir_redirect_object。这段代码原本在upload_dir中,但在LTD Dasher中,似乎有必要一次上传一个文件,因此需要直接创建这些目录重定向对象。

修复

  • 修复了在目录名称中出现'..'的问题(当使用LTD Dasher资产目录进行upload_dir时看到)。

0.2.0 (2017-02-02)

新增

  • LTD Keeper移植了Fastly的purge_key函数。任何上传对象到S3的LTD应用程序可能也需要清除Fastly CDN缓存。此清除功能以简单的函数形式提供。

0.1.0 (2017-01-25)

新增

  • LTD Mason移植S3代码库。LTD Conveyor的目的是提供一组可以在客户端(从CI上传文档)和服务器(LTD Keeper)设置中使用的通用S3 API。

MIT许可协议

版权所有 2016-2020 天文研究大学协会(AURA)

特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向获得软件的人提供软件副本,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他方式,源于、产生于或与此软件或软件的使用或其他交易有关。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

ltd-conveyor-0.8.3.tar.gz (38.4 kB 查看哈希值)

上传时间

构建分布

ltd_conveyor-0.8.3-py3-none-any.whl (29.2 kB 查看哈希值)

上传时间 Python 3

支持