camdram/camdram

Camdram - 剑桥业余戏剧的门户网站

This package is auto-updated.

Last update: 2024-09-24 04:43:43 UTC


README

Build status Deployment status Code Coverage Join the chat at https://gitter.im/camdram/development

Camdram 是一个由志愿者团队为剑桥业余戏剧社区利益开发的开源项目。我们使用此存储库托管 Camdram 运行的代码并协调我们的工作,但我们欢迎任何人贡献错误并提出新功能。

以下详细说明了设置 Camdram 开发签出的步骤。为了简洁起见,这些说明假设读者熟悉许多技术,例如在基于 Linux 的平台上开发、使用 Git 和 GitHub。

新版本会在 master 分支上定期发布,使用 GitHub 界面进行。这将自动生成变更日志并将新版本推送到 https://www.camdram.net/ 上的生产环境。最新的更改可以在 https://development.camdram.net/ 上看到,它始终反映此存储库的 HEAD 状态。

如果您在下述说明中遇到任何问题,请 创建 GitHub 问题 或发送电子邮件至 support@camdram.net。我们还在 Gitter 上有一个 实时聊天,您可以使用它快速非正式地与开发团队取得联系。

Docker 安装

Docker 是一种隔离应用程序的方法,它充当运行 "容器" 的平台。这是一种在尽可能少的麻烦的情况下设置开发环境的绝佳方式,并且应该可以在 Windows、macOS 和 Linux 上跨平台工作。首先,您需要通过上述链接安装 Docker,然后克隆 Camdram 存储库并构建必要的 Docker 镜像。

  1. git clone git@github.com:camdram/camdram.git && cd camdram
  2. docker-compose build
  3. docker-compose up

这将自动创建和配置完整的 Camdram 堆栈,并在本地端口 8000 上启动服务器。

本地安装

与 Docker 安装程序相比,本地安装程序要复杂得多,因此我们将其分解为几个步骤。

1) 安装程序

您需要安装运行 Camdram 所需的必要包依赖项。强烈建议使用 PHP 版本 8.2 或更高版本。

Debian/Ubuntu 及其衍生版本

以下命令可以在最近的基于 Debian 的发行版上运行(包括 Ubuntu 和 Windows Subsystem for Linux)。

sudo apt-get install git-core php php-cli composer php-curl php-intl php-sqlite3 php-gd php-json php-mbstring php-xml php-zip

macOS

您需要安装 Homebrew。以下命令 似乎(从最小测试中)在 macOS 的最新版本上安装了所有必需项。

brew install git php composer

其他发行版和操作系统的安装方法可能会有所不同。

2) 创建 Camdram 的本地版本

以下步骤假设 Composer PHP 包管理器已在全球范围内安装到您的系统上。如果它不在您的发行版的存储库中,可以在 https://getcomposer.org.cn/download/ 上找到替代安装方法。

注意:以下composer命令中执行的某些SQL数据库操作是内存密集型的。PHP的默认安装往往将PHP脚本的内存限制设置为一个肯定会引发致命错误的值。为了防止这种情况,找到您的php.ini文件(位置因系统而异)并更改memory_limit设置,例如将其更改为memory_limit = 1G(一个千兆字节绝对足够——如果您愿意,可能可以用更少的内存完成)。或者,您可以像这样调用PHP解释器:

php -d memory_limit=1G $(which composer) etc.......

以下命令将在名为camdram的新文件夹中下载并设置Camdram的检出

composer create-project camdram/camdram camdram dev-master --no-interaction --keep-vcs

在获取代码副本后,切换到新创建的目录并启动本地Web服务器

cd camdram
php app/console server:run

然后您应该能够在Web浏览器中访问http://127.0.0.1:8000/以查看Camdram主页的个人版本。

为了获得对网站大多数功能的访问权限,您需要创建一个管理员账户。为了在每次重置数据库时自动完成此操作,打开app/config/parameters.yml并替换设置default_admin_idents的行

    default_admin_idents: "[ { \"name\": \"Your Name\", \"email\": \"yourcrsid@cam.ac.uk\" } ]"

然后运行

php app/console doctrine:fixtures:load --no-interaction

然后您应该能够使用Raven登录并拥有完整的管理员权限。

3) 运行测试套件

Camdram有一个有限但正在增长的自动化测试套件,可以用来确保您的检出正在工作,并在做出更改后检查某些回归。可以通过运行以下命令来执行:

./runtests

4) 创建分支

Camdram的开发模式遵循GitHub上托管的开源项目所使用的标准习语。如果您只是想实验代码库,则不需要进一步的操作,但如果您想做出贡献,则需要创建一个分支

创建个人分支后,您可以使用以下命令重新定位您的检出。

git remote rename origin upstream
git remote add origin git@github.com:your-github-username/camdram.git

我们以功绩为基础运行Camdram:任何有合理数量的被接受的pull请求的人都将被授予直接提交到Camdram仓库的权限

5) 编写一些代码

在开始开发之前创建一个“功能分支”是个好主意,这样pull请求的名称就会相应地命名

git checkout -b my-cool-feature

一些有用的提示

  • 该网站使用Symfony PHP框架 - 阅读文档
  • 使用GitHub问题跟踪器发现和讨论要解决的问题。如果您认为知道如何完成某事,编写代码,提交它,并提交pull请求。
  • 如果您想讨论如何实现新功能或如何修复错误,请联系一位开发者。在开始任何重大项目之前联系可能是明智的,以避免徒劳的努力!
  • 如果您不熟悉Git,请访问http://try.github.io/
  • 代码应尽可能遵守以下风格指南:http://www.php-fig.org/psr/psr-2/。如果这太令人畏惧,则一个格式不佳但功能齐全的改进比没有改进要好。您可以使用http://cs.sensiolabs.org/在编写代码后(主要)清理您的代码。

根据更改的类型,确保它作为已登录和/或未登录的访客工作。您可以通过运行以下命令授予您的用户账户管理权限(这允许您创建和修改任何Camdram内容):

php app/console camdram:admins --grant=youremail@domain.com

6) 提交您的更改

  • 运行 git add file1.php file2.php 为您想要提交的每个文件
  • 运行 git commit 并输入描述您所做更改的消息
  • 运行 git push 将您的更改发送到GitHub

在提交消息的末尾包含相关的issue编号(以哈希#开头)是一个好习惯 - 这会使您的提交链接到GitHub上的issue页面。

一旦您的更改推送到了GitHub上的Camdram分支,您可以 提交一个pull request 以将其包含在Camdram中。

请注意:我们自动在我们的 开发页面 上显示一些贡献者的名字,以此表示感谢!通过提交您的更改,您承认您愿意这样做。

7) 拉取其他人的更改

在将来某个时刻,一旦您的本地仓库与GitHub不同步(因为其他人已经做了更改),您可以运行以下命令来拉取其他人的更改并更新您的检出:

git fetch upstream
git merge upstream/master

如果依赖项、数据库模式或JS/CSS资产已更改,则可能需要在上述命令之后运行以下命令。

composer install
php app/console camdram:database:refresh
php app/console camdram:assets:download

8) 阅读Wiki

Wiki 中包含了有关Camdram当前版本和开发版本的各种信息。阅读这些页面可以深入了解系统的更复杂部分。您可以使用上面的联系信息提出创建新文章的建议。

以下Wiki页面详细说明了如何创建一个与https://www.camdram.net/上的Camdram版本更相似的服务器设置。

版权

Camdram是根据GNU通用公共许可证的第二个版本发布的。

版权 (C) 2014–2021 Camdram网络团队成员和其他贡献者。