[译] —— 构建一个 Laravel 翻译包(预发布待办事项)

- 1 min

在该系列的上一篇文章当中,我们完成了 Laravel 翻译扩展包的构建工作。一旦构建完成,就可以开始考虑发布给他人使用了。然而,在此之前,还有几个重要的事情需要完成。

文档

给扩展包的使用者提供一份清晰的使用说明是非常重要的。文档的大小取决于扩展包的大小以及复杂程度。至少,我建议你在项目的根目录下添加一个 README.md 文件详细说明了如何安装以及开始在项目中使用。你可以看看 Laravel 翻译扩展包的这个文档

友好的文档会降低用户的使用门槛,也就意味着他们更愿意使用以及分享给其它人。同时也会降低仓库 issue 的数量,因为这样增大了用户从文档中找到解决办法的可能性。

我再怎么强调良好文档的重要性也不为过。如果你的问题是因为缺少文件而导致的,可以重点强调这点以防止类似问题的发生。

贡献指南

一旦你发布了你的扩展包,你将非常希望得到社区里其它成员的帮助以改善提升该扩展包。这些帮助可能是修复提出的 issuses、完善文档或者甚至是添加新功能。

这些贡献将以 pull requests 的形态提供,你将需要审阅以决定是否接受还是拒绝,或者通知贡献者你将采纳对方的改动并合并进你的项目里。

为了减轻你的负担,一个好的主意就是,添加一个 CONTRIBUTING.md 文件告诉其它贡献者应该遵循哪些指引。

这个文件可以包含一些东西如:被采纳的代码风格,分支和 git 策略,测试要求以及任何你希望你希望别的贡献者应该遵循的东西。

Issue 模板

我最近发现了 GitHub 提供了一种关于添加 issuse 模板的友好方式,你可以通过这样的方式要求你的用户在提交问题的时候提供你要求填写的信息。

除此之外,GitHub 还支持 bug 修复和建议功能添加,但是你可以根据自己的喜好添加自定义模板。

我已经为 Laravel 翻译扩展包申请了默认的模板配置。现在,当用户想要添加一个问题的时候,他们会被先要求选择这是一个 bug 类型还是一个建议功能类型。

当他们选择了对应类型以后,他们就会看到相应的模板,模板中告诉他们应该提供什么信息。

对于一个 bug 提交,这个模板包含了复现该问题的步骤,附带着报错截屏和浏览器及操作系统型号。

对于一个功能添加类提交,这个模板更多的是关于为什么需要该功能的描述。

我不建议你必须要使用这个功能。然而,让你了解所有关于 issue 模板的信息是件好事,避免了和使用者进行冗长的查错过程。

许可

一个开源扩展包需要一个开源许可信息来维护创作者,贡献者以及用户。

有许多不同的许可信息种类可供选择。最终选择哪一个取决于你希望该扩展包被如何使用,如何修改以及如何分享。

GitHub 有一个站点帮助开源作者为他们的项目选择开源许可信息。他们自己承认,这不是一个完全全面的目录,而是强调那些最有可能适合的目录,如果他们的建议不够充分,那就指向别的方向。

持续集成

有很多持续集成的工具,可以实现的功能比如:确保你的代码在测试成功之后部署,自动修复代码中的问题,测试代码的质量,还有其它五花八门的工具。

这些工具可以直接整合进 GitHub,当你的代码提交到仓库的时候自动触发执行相应的任务。

这就意味着当一个贡献者对你的项目发起一个 pull requests 的时候,你在查看他们提交的代码之前就以及检查过所有代码的质量了。

更重要的是,这些工具为开源项目提供了一个免费的保护层。

以下是一些我个人建议的工具。

Travis CI

当代码提交到仓库的时候,GitHub 会触发 Travis 构建和测试你的代码。你在接下来几分钟将收到关于代码是否有问题的信息通知。对于 pull requests 也会有触发该机制,因此你可以看到贡献者是否往你的代码添加了某些有语法错误的代码。

Scrutinizer

Scrutinizer 将分析你的代码检查是否使用了不安全的语言函数,这就好像 IDE 的代码检查功能一样。

StyleCI

StyleCI 允许你定义你喜欢的代码风格。当代码提交到仓库,它会自动检测代码是否违反了错误指南并且通过新添加一个 pull requests 到仓库的方式尝试自动修复错误。这样,你的代码风格就不因此遭到破坏了。

持续集成工具一般直接涉及到登录服务,集成进 GitHub,会在你的项目根目录下添加一个配置文件。一旦配置好,当代码提交到仓库他们就会按照预期运行。

这些事情都到位以后,我们就可以准备发布了。关注我的下一篇文章,我将告诉你如何将扩展包提供给他人使用。和往常一样,如果你有任何问题,请到 Twitter 与我联系。


原文地址:https://laravel-news.com/building-a-laravel-translation-package-pre-launch-checklist

作者:Joe Dixon


circle

circle

Keep taking risks till you find your passion

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora list2