跳到内容

creativecommons/cc-legal-tools-app

cc-legal-tools应用程序

知识共享(CC)法律工具应用程序。此存储库包含管理许可证工具和公共域工具的应用程序(静态HTML、国际化和本地化文件等)。它消耗和在中生成数据creativecommons/cc-legal-tools数据存储库。

行为准则

代码_ OF_ CONDUCT.md:

Creative Commons团队致力于培养一个受欢迎的社区。此项目和所有其他Creative Commons开放源码项目均受管理由我们的行为准则.请报告不合格行为conduct@creativecommons.org根据我们报告准则

贡献

请参见贡献.md

不是现场

本项目不打算直接为法律工具服务。相反,一个命令行工具可用于保存所有呈现的HTML和RDF/XML页面作为文件。然后这些文件被用作真正的CreativeCommons.org的一部分站点(用作静态文件)。

软件版本

设置项目

数据存储库

访问克隆存储库介绍如何克隆GitHub存储库。

这个creativecommons/cc-legal-tools数据项目存储库应克隆到与此目录相邻的目录中:

家长_DIR├── cc法律工具应用程序(此存储库的git克隆)└── cc-legal-tools-data(cc-legall-tools数据存储库的git克隆)

如果它没有克隆到默认位置,Django数据_位置_DIRDjango配置设置,或数据_代理_DIR环境变量可用于配置其位置。

Docker Compose设置

使用以下说明启动Docker compose项目。请注意CC员工使用macOS进行开发--请帮助我们如果遇到问题,请记录其他操作系统。

  1. 确保数据存储库上面的已就位
  2. 安装Docker引擎
  3. 确保您位于克隆此存储库的目录的顶层(其中管理.py是)
  4. 创建Django本地设置文件
    cp cc_legal_tools/settings/local.example.py cc_legal_tools/settings/local.py
  5. 构建容器
    码头工人组成建造
  6. 运行容器
    码头工人组成
    1. 应用程序(127.0.0.1:8005):这个Django应用
      • 将检测并重建对Python所做的任何更改只要开发服务器正在运行,就保持透明。
    2. 静止的(127.0.0.1:8006):静态web服务器服务creativecommons/cc-legal-tools数据:文档/
  7. 运行数据库迁移
    码头工人作曲执行官应用程序/manage.py迁移
  8. 清除数据库中的数据
    码头工人作曲执行官应用程序/通过清除许可证数据管理
  9. 在数据库中加载旧HTML
    码头工人作曲执行官应用程序/管理.py加载html_files

手动设置

⚠️ 本节可能有助于维护项目,但不应用于开发。请使用Docker Compose设置,以上。

  1. 开发环境
    1. 确保数据存储库上面的已就位
    2. 安装依赖项
      • Linux:
        sudo apt-get安装python3.9-python3.9-dev-python3-ip
        pip3安装pipenv
      • macOS:通过自制啤酒:
        brew安装pipenv蟒蛇@3.9
      • 窗户:安装Python然后使用pip(点阵)安装pipenv公司:
        pip安装pipenv
    3. 通过pipenv安装Python环境和模块以创建虚拟(virtualenv)
      • Linux:
        pipenv安装--dev--python/usr/bin/python3.9
      • macOS:通过自制啤酒:
        pipenv安装--dev--python/usr/local/opt/蟒蛇@3.9/libexec/bin/python
      • 窗户:
        pipenv安装--dev--python\U型服务器\A类ppdata公司\第页程序\第页伊顿
    4. 安装预提交挂钩
    pipenv运行提交前安装
  2. 配置Django
    1. 创建Django本地设置文件
    cp cc_legal_tools/settings/local.example.py cc_legal_tools/settings/local.py
    1. 创建项目数据库
      • Linux:
        sudo创建了b-E UTF-8 cc_legal_tools
      • macOS操作系统:
        createdb-E UTF-8 cc_legal_tools
      • 窗户:
        createdb-E UTF-8 cc_legal_tools
    2. 加载数据库架构
    pipenv运行/manage.py迁移
  3. 运行开发服务器(127.0.0.1:8005)
    pipenv运行/manage.py运行服务器
    • 对Python所做的任何更改都将被检测到并透明地重新构建为只要开发服务器正在运行。

手动命令

ℹ️ 文档的其余部分假设为Docker。如果你是使用手动设置,使用pipenv运行而不是docker compose exec应用程序用于以下命令。

工具

助手脚本

每次提交前的最佳运行:

  • ./dev/coverage.sh-运行覆盖率测试和报告
  • ./dev/tools.sh-运行Python代码工具(visort、black、flake8)

根据需要运行:

神秘而危险:

  • ./dev/concatenatemessages.sh-连接传统ccEngine翻译进入cc-legal-tools-app
    • 很少使用(仅在更新源字符串后)
  • ./dev/resetdb.sh-重置Django应用程序数据库数据(!!DANGER!!)
    • 通常只有在进行模型/模式工作时才有帮助
  • ./dev/updatemessages.sh-使用运行Django Management nofuzzy_makemessages有用的选项(包括排除legalcode)和编译消息

覆盖率测试和报告

覆盖率测试和报告作为预提交的一部分和GitHub运行行动。要手动运行它:

  1. 确保数据存储库上面的已就位
  2. 确保Docker Compose设置上面的已完成
  3. 覆盖率测试
    码头工人作曲执行官应用程序覆盖率运行manage.py测试--无输入—keepdb
  4. 覆盖范围报告
    码头工人作曲执行官应用覆盖率报告

提交错误

构建树时出错

如果您遇到错误:构建树时出错预提交时出错提交后,尝试添加文件(git添加<文件>)在提交之前。

前端依赖项

以下CC项目用于实现一致的外观:

数据

法律工具元数据在数据库中。元数据跟踪哪些合法工具的存在、它们的翻译、它们的端口以及它们的特征,如他们允许、要求和禁止的。

可以通过访问URL路径下载元数据:127.0.0.1:8005/许可证/metadata.yaml(当前已禁用)

法律工具/模型.py:

  1. 法律代码
  2. 工具

工具可以通过单元(例如。通过,旁路nc-sa,发展)其中是整套权限、要求和禁令的代理;版本(例如。4,3.0)和可选管辖权用于端口。所以我们可能通过其引用该工具标识符“在上午3.0点之前”3.0版BY许可条款,已移植至亚美尼亚管辖区。对于其他信息请参见:法律工具命名空间-creativecommons/cc-legal-tools-data:cc法律工具数据(静态HTML,语言文件等)

法律法规文本可以有三个地方:

  1. Gettext文件(.po型.mo(毫米))在中creativecommons/cc-legal-tools数据存储库(法律工具完全翻译支持):
    • 4.0许可证
    • CC0公司
  2. Django模板(legalcode_licenses_3.0_unported.html):
    • 未报告的3.0许可证(仅英文版)
  3. html格式领域(位于法律代码型号):
    • 其他一切

gettext文件中的文本可以通过Transifex在创意Commons本地化有关Django的更多信息翻译域/Tranifex资源,请参阅许可证翻译如何已实现,如下所示。

文档:

导入现有法律工具文本

将文本输入网站的过程因法律工具而异。

请注意,一旦站点启动并在生产中运行,站点中的数据将成为规范源,此处描述的过程不应之后需要重复。

实现是Django管理命令加载html_files,其中从中的旧HTML合法代码文件读取creativecommons/cc-legal-tools数据存储库,并填充数据库记录和翻译文件。

加载html_files使用美味汤4解析遗留HTML合法代码:

  1. import_zero_license_html()用于CC0公共域工具
    • 专门处理HTML(使用标记ID和类)来填充转换字符串,并在以下情况下与特定HTML格式一起使用通过模板显示
  2. import_by_40_license_html()用于4.0许可证工具
    • 专门处理HTML(使用标记ID和类)来填充转换字符串,并在以下情况下与特定HTML格式一起使用通过模板显示
  3. import_by_30_未授权许可_html()用于未引导的3.0许可证工具(仅英语)
    • HTML是专门处理的,用于特定的HTML格式当通过模板显示时
  4. simple_import_license_html()为了其他一切
    • HTML是通用的;只有所有权和许可主体已确定。尸体存放在html格式的字段法定代码模型

导入过程

此过程将从指定目录中读取HTML文件,填充法定代码工具模型,并创建.po型可移植对象Gettext中的文件creativecommons/cc-legal-tools数据

  1. 确保数据存储库上面的已就位
  2. 确保Docker Compose设置上面的已完成
  3. 清除数据库中的数据
    码头工人作曲执行官应用程序/通过清除许可证数据管理
  4. 在数据库中加载旧HTML
    码头工人作曲执行官应用程序/管理.py加载html_files
  5. 可选(且仅在适当情况下):
    1. 提交.po型可移植对象Gettext文件更改creativecommons/cc-legal-tools数据
    2. 翻译更新过程,如下所示
    3. 生成静态文件,如下所示

导入依赖项文档

翻译

要向Transifex上传/下载翻译文件,您需要一个帐户有权访问这些翻译。然后按照身份验证-Transifex API v3:获取API令牌,并设置晶体管[“API_TOKEN”]在您的环境中发挥其价值。

这个creativecommons/cc-legal-tools数据必须克隆存储库在这个旁边cc-legal-tools应用程序存储库。(它可能在其他地方,然后你需要设置数据_代理_DIR到其位置。)请确保使用以开头的URLgit@github。。。而不是https://github。。。否则你不会能够推动它。另请参阅数据存储库,如上所示。

在生产中检查翻译更新管理命令应该是每小时运行一次。请参见检查翻译更新,如下所示。

另请参见发布对git repo的更改,如下所示。

巴别塔用于本地化信息。

文档:

如何实现工具翻译

Django Translation在creativecommons/cc-legal-tools数据存储库(数据存储库,如上所示)。有关详细信息,请参阅该存储库信息和定义。

文档:

检查翻译更新

⚠️ 此功能当前已禁用。

每小时运行check_for_translation_updates(检查_翻译_更新)查看是否有Transifex中的翻译文件的上次修改时间比我们知道的要晚关于。它执行以下过程(也可以手动完成:

  1. 确保数据存储库上面的已就位
  2. creativecommons/cc-legal-tools数据(该数据存储库):
    1. 签出或创建适当的分支。
      • 例如,如果BY 4.0的法语翻译文件发生更改分支名称将为cc4-fr型
    2. 下载更新的.po型Transifex中的可移植对象Gettext文件
    3. 执行翻译更新过程(如下)
      • 这很重要,很容易忘记,但没有它,Django会继续使用旧的翻译
    4. 提交更改并将其推向上游。
  3. 在此范围内cc-legal-tools应用程序存储库:
    1. 对于每个已更新的分支,生成静态文件夹(见下文)。使用选项更新git和推动变革。

检查翻译更新依赖关系文档

翻译更新过程

此Django Admin命令必须在.po型便携式物体创建或更改Gettext文件。

  1. 确保数据存储库,如上,已就位
  2. 确保Docker Compose设置上面的已完成
  3. 编译翻译消息(更新.mo(毫米)机器对象Gettext文件)
    码头工人作曲执行官应用程序/manage.py编译消息

生成静态文件

生成静态文件会更新文档/的目录这个creativecommons/cc-legal-tools数据存储库(数据存储库,如上所示)。

静态文件进程

此过程将在cc-legal-tools-data克隆中写入HTML文件目录位于文档/。它不会提交更改(--诺吉特)并且会不推送任何提交(--不推由暗示--诺吉特).

  1. 确保数据存储库上面的已就位
  2. 确保Docker Compose设置上面的已完成
  3. 删除文档/目录,然后重新创建/复制它应包含的静态文件:
    码头工人作曲执行官应用程序/manage.py发布-v2

发布对git repo的更改

部署站点时,启用推送和拉取许可证数据存储库使用GitHub为cc-legal-tools-data repo创建SSH部署密钥写入权限,并放置私钥文件(不受密码保护)安全的地方www数据如果在服务器上),并且只能由其所有者(0o400)。然后在设置中,使翻译_代理_代理_密钥该部署密钥文件的完整路径。

发布依赖关系文档

许可证

代码

许可证:此存储库中的代码是根据Expat公司/麻省理工学院许可证。

法律法规文本

CC0 1.0通用(CC0 1.0)公共域专用按钮

知识共享公共许可证(法律代码)的文本专用于公共领域CC0 1.0通用(CC0 1.0)公共域奉献

词汇主题

CC0 1.0通用(CC0 1.0)公共域专用按钮

复制:词汇表中的所有代码专用于公共领域CC0 1.0通用(CC0 1.0)公共域奉献

标准化.css

normalize.css根据Expat获得许可/麻省理工学院许可证。

字体

Accidenz通用

Accidenz通用Archetypo根据创意Commons Attribution-ShareAlike 4.0国际(CC BY-SA 4.0)许可证

JetBrains单声道

JetBrains单声道根据OFL-1.1许可

机器人浓缩

机器人浓缩由Christian Robertson根据这个Apache许可证,2.0版

源Sans Pro

源Sans Pro作者:Paul D.Hunt正常开放字体许可证

词汇图标

词汇图标使用来自象形异体字获得许可的知识共享归因4.0国际版(CC BY 4.0)许可证