页码

创建9年前
维护人平谷
成员 10

帕古雷

作者:皮埃尔·伊夫·奇本<pingou@pingoured.fr>

Pagure是一个以git为中心的锻造,基于pygit2的python。

使用pagure,您可以将项目及其文档作为宿主,让您的用户使用票务系统报告问题或请求增强功能,并构建您的贡献者社区,让他们为您的项目分叉并贡献通过现在流行的拉请求机制实现。

主页:https://pagure.io/pageure网址

在工作中查看:https://pagure.io(网址:https://pageure.io)

游乐场版本:https://stg.pagure.io(网址:https://stg.pagure.io)

如果您有任何问题或只是想讨论页面,欢迎光临我们的矩阵室.

关于它的名字

Pagure这个名字来源于法语单词“Pagure”。法语页面用作甲壳类动物的通用名称寄居蟹总科超级家族,基本上是寄居蟹的家族。

它源于法语,如你所听到的,发音带有很强的“g”这段录音.

让它运行起来

当涉及到开发环境时,有几个选项。它们是:Docker Compose、Vagrant和manual。在下面选择一个选项。

Docker作曲

Docker Compose将为您提供一个可以在其上进行开发的容器。安装它按照这些说明.

有关docker-compose cli的更多信息,请参阅:https://docs.docker.com/compose/reference网站/.

要构建和运行容器,请使用以下命令:

./dev/docker-start.sh

启动所有容器后,您可以访问上的页面http://localhost:5000.要停止容器,请按Ctrl+C组合键.

容器启动并运行后,运行此命令以填充容器中包含测试数据并创建新帐户:

docker-compose-f dev/docker-comose.yml exec web python3 dev-data.py--全部

然后,您可以使用任何创建的用户登录,例如:

  • 用户名:pingou
  • 密码:testing123

流浪者

有关Vagrant的更详细介绍,请参阅https://fedoraproject.org/wiki/Vagrant.

Vagrantfile示例如下Vagrantfile示例。要使用它,复制并安装Vagrant即可。Fedora须知:

cp-dev/Vagrantfile.example Vagrantfile(cp-dev/Wagrantfile)sudo dnf安装ansible libvirt流浪者libvirt流浪者sshfs流浪者主机管理器游荡起来

在Ubuntu上,直接安装Vagrant从网站然后运行以下命令:

cp-dev/Vagrantfile.example Vagrantfile(cp-dev/Wagrantfile)sudo add-apt-repository ppa:可用/可用sudo apt更新sudo apt安装ansible libvirt0 openssh-server qemu libvirt-bin ebtables dnsmasq libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-devvagrant插件安装vagrant-libvirt vagrant-sshfs vagrant-hostmanager

如果出现此错误synced_folders中的块:内部错误。无效:sshfs,当你跑步时游荡起来,您需要安装vagrant sshfs插件,可以通过以下方式完成:

vagrant插件安装vagrant--sshfs

然后:

游荡起来

默认值Vagrantfile文件将端口从主机转发到来宾,这样您就可以像在您的主机。

注释

流浪汉酒店经理将自动为您维护/etc/hosts,以便您可以使用主机名从主机访问开发环境,该主机名默认情况下为page-dev.example.com。您可以选择不使用此只需不安装流浪汉酒店经理插件,但如果您希望Pagure在UI中为git存储库提供有效的URL,您可以将需要调整访客上~/Pagure.cfg中的Pagure配置。

当游荡虚拟机启动并运行时,使用以下连接:

流浪者ssh

这将使您以用户身份登录到VM流浪者它有几个别名预配置:

pstart#启动分页、工作线程和其他任务pstop#再次停止所有这些任务pstatus#显示页面状态

Vagrant页面没有自己的日志文件,请使用日志tl-如果显示页面输出。可以在页面配置文件中配置详细信息使用登录中参数。

在容器中运行单元测试

要运行单元测试,可以使用具有所有所需依赖项的容器。

注释

通过执行的所有构建、测试和shell活动运行测试-容器.py将自动记录。每个容器都有自己的dev/results_<测试容器名称>文件夹,每次运行都会创建单独的以当前unix时间戳为前缀的文件。您应该不时清理此文件夹。

首先,您需要在工作站上安装podman和git:

sudo dnf安装podman git

使用以下命令对所有容器映像运行所有测试,如果系统上不存在这些映像,则将生成这些映像:

./dev/run-tests-container.py

如果希望在基于centos的容器上执行测试套件,请运行以下命令:

./dev/run-tests-container.py--中心

容器图像与要测试的页面源分离。因此,它们只有在不存在时才会自动生成。

应不时进行手动重建,以包括新的包版本。此外,如果您在pagure规范文件、tox配置或任何requirements.txt文件中进行任何更改,执行重建以确保您的更改将被考虑在内。

./dev/run-tests-container.py--重建#所有基本和代码容器./dev/run-tests-container.py--仅重建代码#代码容器

您还可以运行单个测试用例:

./dev/run-tests-container.py测试/test_pagure_flask_ui_priorities.py

或单个测试:

./dev/run-tests-container.py测试/test_pagure_flask_ui_priorities.py:PagureFlaskPrioritiestests.test_ticket_with_no_priority

你也可以得到运行测试-容器.py帮助:

./dev/run-tests-container.py--帮助

默认情况下,对git repo和当前文件夹中的活动分支运行测试。要覆盖此行为并在fork中的远程开发分支上运行测试,请执行以下操作:

./dev/run-tests-container.py--报告https://pageure.io/forks网站/<用户名>/pagure.git--分支<要测试的分支的名称>

在毒物中进行单元测试

您可以使用毒物进行测试。这允许您在本地版本的代码上运行测试。

注释

这种运行测试的方式可以帮助您测试本地更改,但输出可能与集装箱测试不同。在推送之后,还要始终使用容器化测试检查您的分支。

  • 安装所需的系统库:

    sudo-dnf安装libgit2级redis gcc tox python-alembic

    注释

    您还可以安装任何缺少的python解释器。例如sudo-dnf安装python35

  • 运行整个测试套件:

    毒物
  • 或者只是单个环境:

    毒物-e py39
  • 或单个模块:

    毒物测试/test_style.py

手动

  • 安装所需的系统库:

    sudo-dnf安装git-python3 python3-级libgit-2-级redis\libjpeg级别gcc libffi级别redhat-rpm-config

    注释

    请注意您安装的libgit2版本,例如在里面图书馆2-0.26.8-1你需要记住0.26

    注释

    在RHEL和衍生产品(CentOS、Scientific Linux)上没有蟒蛇3包裹。只是蟒蛇36蟒蛇34在中可用EPEL 7(EPEL 6只有蟒蛇34). 选择您喜欢的(3.6较新,通常是更好的选择)。

  • 检索源:

    git克隆https://pagure.io/pageure.git网站cd分页
  • 安装依赖项

    • 创建虚拟环境(使用蟒蛇3.X明确在EPEL上):

      python3-m venv页面env来源/页码env/bin/activate
    • 安装正确版本的pygit2:

      pip安装pygit2==<找到libgit2的版本>*

      因此,在我们的示例中:

      pip安装pygit2==0.26*
    • 安装其余依赖项:

      pip安装-r要求.txt
  • 创建将接收项目、分叉、文档、请求和门票的git回购:

    mkdir-p lcl/{repo、远程、附件、发布}
  • 复制并编辑alembic.ini文件(尤其是脚本_位置键):

    cp文件/alembic.ini。vim alembic.ini公司
  • 设置脚本_位置阿伦比克的,即:修订所在的文件夹相对于阿伦比奇尼文件。

  • 创建初始数据库方案:

    python createdb.py--初始alembic.ini
  • 启用并启动redis服务器:

    sudo系统ctl启用redissudo系统ctl启动redis
  • 在一个终端中启动工人:

    ./runworker.py
  • 在另一个终端中运行应用程序:

    ./运行服务器.py
  • 要获取一些分析信息,您还可以将其运行为:

    ./runserver.py--配置文件

这将在以下位置启动应用程序http://127.0.0.1:5000

  • 在页面上运行单元测试

    • 安装依赖项:

      pip安装-r要求-testing.txt
    • 运行它:

      pytest测试/

      注释

      在测试工作任务时,pagure在/usr/bin中使用芹菜/然后,Celery在系统级,而不是在虚拟环境中。你需要如果需要,请在虚拟环境外部安装eventlet使用一个。

      注释

      这也适用于流浪者。