跳到内容

creativecommons/cc-legal-tools-app

cc-legal-tools应用程序

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

行为准则

代码_ OF_ CONDUCT.md:

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

贡献

请参见出资.md.

关于

此应用程序管理639个法律工具(636个许可证和3个公共域工具)。许可证的当前版本是4.0,包括6个许可证。它们是国际化的,旨在全球运营,确保强大、可执行且易于在全球范围内采用。改编了以前的版本至特定司法管辖区(“端口”)。这就是为什么有636个许可证。

广义而言,每个法律工具都由三个层次组成:

  1. 行为:法律工具的简明概述
  2. 法律代码:法律工具本身
  3. 无线数字滤波器:RDF/XML格式的法律工具元数据

随着契约的翻译和法律法规的翻译应用程序管理30000多个文档。

不是现场

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

软件版本

设置和使用

一旦在您的系统上启用了此项目所需的依赖项,您将能够运行法律工具应用程序并生成静态文件。

前提条件

这个项目依赖于Docker和Git。它还需要此存储库和数据存储库(代码库)彼此相邻。

MacOS操作系统

Mac用户可以使用以下说明安装Git:Git-安装Git-在macOS上安装.

使用以下说明可以安装Docker Desktop:安装DockerMac桌面| Docker Docs.

Linux操作系统

Git是使用发行版的软件包管理器进行最佳安装的。请参见Git-Linux和Unix下载广受欢迎发行版。

Linux上分别支持Docker Desktop和Docker Engine。两者都包含必需的Compose命令插件,但Docker Engine通常更容易安装:

窗户

必须将Windows 10或11与Windows Subsystem for Linux(WSL2)一起使用。对于安装说明:请参见安装WSL | Microsoft学习.

Git应使用适当的Linux安装在WSL2中安装方法。对于WSL2 Ubuntu,命令是sudo apt-get安装git.

Docker Desktop应安装在Windows本身并与WSL2集成如中所述Windows上的Docker Desktop WSL 2后端| Docker文件。与Git不同,不应在WSL2中安装Docker环境。

代码库设置

此存储库和creativecommons/cc-legal-tools数据项目存储库应该并排克隆,从而形成如下结构以下内容:

创意共性/├── cc-legal-tools-app/(此存储库的git克隆)└── cc-legal-tools-data/(cc-legall-tools数据存储库的git克隆)

为此,我们建议执行以下步骤:

  1. 创建并更改为容器目录,例如创意共性复写的副本.
    mkdir创意共性光盘创意共性
  2. 使用SSH克隆这两个repo,如果这不起作用,则使用HTTPS协议克隆。
    git克隆git@github.com:creativecommons/cc-legal-tools-app.gitgit克隆git@github.com:creativecommons/cc-legal-tools-data.git
    git克隆https://github.com/creativecommons/cc-legal-tools-app.gitgit克隆https://github.com/creativecommons/cc-legal-tools-data.git

访问克隆存储库-GitHub文档有关如何克隆的更多信息GitHub存储库。

Docker准备和执行

使用以下说明准备和运行Docker项目作曲。

  1. 确保所有先决条件和存储库都到位。
  2. 确保您位于克隆此文件的目录的顶层存储库(其中管理.py是)。
    光盘cc-legal-tools应用程序
  3. 从示例文件创建Django本地设置文件。
    cp cc_legal_tools/settings/local.example.py cc_legal_tools/settings/local.py
    • 如有必要,更新新文件中的变量。
    • Git忽略了此文件。
  4. 构建容器。
    码头工人组成建造
  5. 运行容器。
    码头工人整理
    1. 应用程序(127.0.0.1:8005):这个Django应用
      • 将检测并重建对Python所做的任何更改只要开发服务器正在运行,就保持透明。
    2. 静止的(127.0.0.1:8006):静态web服务器服务creativecommons/cc-legal-tools数据:文档/
  6. 初始化数据。打开单独的终端选项卡,并在同一目录中运行:
    ./dev/init_data.sh
    1. 删除数据库(可能还不存在)
    2. 初始化数据库
    3. 执行数据库迁移
    4. 创建supseruser(将提示输入密码)
    5. 加载数据

注意:完成此完整设置后,运行上面的步骤5将执行在随后的任何场合使用。

手动设置

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

  1. 完成Docker Compose设置,如上
  2. 开发环境
    1. 安装依赖项
      • Linux:
        sudo apt-get安装python3.11 python311-dev python3-ip
        pip3安装pipenv
      • macOS:通过自制软件:
        冲泡安装管python@3.11
      • 窗户:安装Python然后使用pip(点阵)安装pipenv公司:
        pip安装pipenv
    2. 通过pipenv安装Python环境和模块以创建虚拟(virtualenv)
      • Linux:
        pipenv安装--dev--python/usr/bin/python3.11
      • macOS:通过自制软件:
        pipenv安装--dev--python/usr/local/opt/python@3.11/libexec/bin/python
      • 窗户:
        pipenv安装--dev--python\U型服务器\A类ppdata(购买力平价数据)\第页程序\第页伊顿
    3. 安装预提交挂钩
    pipenv运行提交前安装
  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/dump_data.sh-转储Django应用程序数据
  • ./dev/init_data.sh-⚠️初始化Django应用程序数据
  • ./dev/load_data.sh-加载Django应用程序数据

神秘而危险:

  • ./dev/updatemessages.sh-⚠️运行Django管理带有帮助选项的nofuzzymakemessages(包括排除legalcode)和编译消息

覆盖率测试和报告

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

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

提交错误

构建树时出错

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

前端依赖项

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

数据

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

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

legal_tools/models.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在创意公用设施本地化有关Django的更多信息翻译域/Tranifex资源,请参阅许可证翻译是如何进行的已实现,如下所示。

文档:

翻译

请参见文档/翻译.md

生成静态文件

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

静态文件进程

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

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

发布对git repo的更改

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

发布依赖关系文档

机器/元数据层:RDF/XML

有关详细信息和历史记录,请参阅文档/rdf.md.

许可证

代码

许可证:此存储库中的代码是根据外籍人士/麻省理工学院许可证。

法律法规文本

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)许可证.