ergebnis / license
提供开源许可证的抽象。
Requires
- php: ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-filter: *
Requires (Dev)
- ergebnis/composer-normalize: ^2.28.3
- ergebnis/data-provider: ^1.2.0
- ergebnis/php-cs-fixer-config: ^6.13.0
- fakerphp/faker: ^1.23.0
- infection/infection: ~0.26.6
- phpunit/phpunit: ^9.6.13
- psalm/plugin-phpunit: ~0.18.4
- rector/rector: ~0.18.11
- symfony/filesystem: ^5.0.0 || ^6.0.0
- vimeo/psalm: ^5.16.0
This package is auto-updated.
Last update: 2024-09-10 15:28:40 UTC
README
此项目提供了一个composer
包,用于对开源许可证进行抽象。
安装
运行
composer require --dev ergebnis/license
使用
有时开源维护者会抱怨管理开源项目的负担。有时他们会辩称,贡献者不必要地通过打开请求更新许可证年份增加了他们的工作量。
当然,所有这些都可以自动化,不是吗?
friendsofphp/php-cs-fixer
的配置
使用 friendsofphp/php-cs-fixer
,您可以使用配置文件 .php-cs-fixer.php
来
- 将许可证保存到文件中,例如
LICENSE
或LICENSE.md
- 使用
header_comment
修复器指定文件级别的头部,该头部将在PHP文件中被替换
以下是一个针对使用 MIT
许可证类型的开源项目的 .php-cs-fixer.php
文件示例
<?php declare(strict_types=1); /** * Copyright (c) 2020-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. * * @see https://github.com/ergebnis/license */ use Ergebnis\License; use PhpCsFixer\Config; use PhpCsFixer\Finder; $license = License\Type\MIT::text( __DIR__ . '/LICENSE', License\Range::since( License\Year::fromString('2020'), new DateTimeZone('UTC') ), License\Holder::fromString('Andreas Möller'), License\Url::fromString('https://github.com/ergebnis/license') ); $license->save(); $finder = Finder::create()->in(__DIR__); return Config::create() ->setFinder($finder) ->setRules([ 'header_comment' => [ 'comment_type' => 'PHPDoc', 'header' => $license->header(), 'location' => 'after_declare_strict', 'separate' => 'both', ], ]);
💡 也可以看看这个项目的 .php-cs-fixer.php
。
以下是一个针对使用 None
许可证类型的封闭源代码项目的 .php-cs-fixer.php
文件示例
<?php declare(strict_types=1); /** * Copyright (c) 2011-2019 Andreas Möller * * @see https://github.com/localheinz/localheinz.com */ use Ergebnis\License; use PhpCsFixer\Config; use PhpCsFixer\Finder; $license = License\Type\None::text( License\Range::since( License\Year::fromString('2020'), new DateTimeZone('UTC') ), License\Holder::fromString('Andreas Möller'), License\Url::fromString('https://github.com/localheinz/localheinz.com') ); $finder = Finder::create()->in(__DIR__); return Config::create() ->setFinder($finder) ->setRules([ 'header_comment' => [ 'comment_type' => 'PHPDoc', 'header' => $license->header(), 'location' => 'after_declare_strict', 'separate' => 'both', ], ]);
GitHub Actions
当使用 GitHub Actions 时,您可以设置一个计划的工作流程,该工作流程将在1月1日自动打开许可证年份的请求。
name: "License" on: schedule: - cron: "1 0 1 1 *" jobs: license: name: "License" runs-on: "ubuntu-latest" steps: - name: "Checkout" uses: "actions/[email protected]" - name: "Install dependencies with composer" run: "composer install --no-interaction --no-progress --no-suggest" - name: "Run friendsofphp/php-cs-fixer" run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --dry-run --verbose" - name: "Open pull request updating license year" uses: "gr2m/[email protected]" with: author: "Andreas Möller <[email protected]>" branch: "feature/license-year" body: | This PR - [x] updates the license year commit-message: "Enhancement: Update license year" path: "." title: "Enhancement: Update license year" env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
💡 如果需要帮助安排工作流程,请查看 crontab.guru
。
请注意,由GitHub Actions打开的请求或推送的提交不会触发构建。作为替代方案,您可以设置一个机器人用户
- name: "Open pull request updating license year" uses: "gr2m/[email protected]" with: - author: "Andreas Möller <[email protected]>" + author: "ergebnis-bot <[email protected]>" branch: "feature/license-year" body: | This PR - [x] updates the license year commit-message: "Enhancement: Update license year" path: "." title: "Enhancement: Update license year" env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
类型
以下许可证类型目前可用
💡 需要其他许可证类型?请随意打开一个请求!
变更日志
此项目的维护者在变更日志中记录了此项目的显著更改。
贡献
此项目的维护者建议遵循贡献指南。
行为准则
此项目的维护者要求贡献者遵循行为准则。
一般支持策略
此项目的维护者提供有限的支持。
您可以通过赞助 @localheinz 或请求与该项目相关的服务发票来支持此项目的维护。
PHP版本支持策略
此项目支持具有活动和安全支持的PHP版本。
本项目的维护者在其初始发布后添加对PHP版本的兼容支持,并在其安全支持结束时停止支持该PHP版本。
安全策略
本项目有一个安全策略。
许可证
本项目使用MIT许可证。
社交
在Twitter上关注@localheinz和@ergebnis。