Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Preserve the pinned upstream license bytes, including its original trailing space.
assets/brand/source/OFL-Exo2.txt -text whitespace=-blank-at-eol
62 changes: 62 additions & 0 deletions .github/ISSUE_TEMPLATE/brand-asset.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Brand or asset request
description: Request profile, mascot, or design asset work in php-fast-forward/.github.
title: "[Brand]: "
body:
- type: markdown
attributes:
value: |
Submit brand and asset requests in [php-fast-forward/.github](https://github.com/php-fast-forward/.github/issues).
This organization template may also appear in package repositories; package bugs and code changes belong in their affected repository.
Review [DESIGN.md](https://github.com/php-fast-forward/.github/blob/main/DESIGN.md), [STYLE.md](https://github.com/php-fast-forward/.github/blob/main/STYLE.md), [SOUL.md](https://github.com/php-fast-forward/.github/blob/main/SOUL.md), and [the asset catalog](https://github.com/php-fast-forward/.github/blob/main/assets/README.md).
Keep references and uploads suitable for public reading. Use the affected repository's security policy for vulnerabilities.
- type: textarea
id: purpose
attributes:
label: Purpose and audience
description: What should this change help someone understand or do? Who will use it?
validations:
required: true
- type: dropdown
id: request_type
attributes:
label: Requested change
options:
- Existing asset correction or export
- Mascot pose or illustration
- Profile or documentation presentation
- Design token or component
- Visual identity proposal
validations:
required: true
- type: textarea
id: intended_surface
attributes:
label: Intended surface and requirements
description: Name the page or context, size, format, background, and accessibility needs.
validations:
required: true
- type: textarea
id: references
attributes:
label: References and provenance
description: Link asset IDs or public references. Record origin, author or method where known, and reuse permissions. Mark unknown information, or state that no references exist yet.
validations:
required: true
- type: textarea
id: design_evidence
attributes:
label: Proposed result and review evidence
description: Describe the result, include a public-safe preview if available, and explain relevant design, style, or character rules or proposed contract changes.
validations:
required: true
- type: checkboxes
id: submission_checks
attributes:
label: Before submitting
options:
- label: I searched existing requests and the asset catalog for related work.
required: true
- label: The references and uploads contain no secrets, personal data, or confidential material.
required: true
- label: I recorded source and permission status, including anything that is unknown.
required: true
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Bug report
description: Report a reproducible problem in the affected PHP Fast Forward repository.
title: "[Bug]: "
body:
- type: markdown
attributes:
value: |
Use the affected repository for package behavior, documentation, or accessibility barriers.
For central profile, mascot, and design assets, use [php-fast-forward/.github](https://github.com/php-fast-forward/.github/issues).
Follow the affected repository's security policy for vulnerabilities. Remove secrets, personal information, and private URLs from examples, logs, and screenshots.
- type: textarea
id: affected_component
attributes:
label: Affected repository, package, and version
description: Identify the repository, package or page, and version. Use a commit or branch when no version applies.
validations:
required: true
- type: textarea
id: environment
attributes:
label: PHP version and environment
description: Include relevant PHP, operating system, dependency, browser, or assistive technology versions. Write not applicable for fields unrelated to this report.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Provide the smallest public-safe example or steps, including the command or page location.
validations:
required: true
- type: textarea
id: expected_result
attributes:
label: Expected result
description: Explain the behavior or access you expected.
validations:
required: true
- type: textarea
id: actual_result
attributes:
label: Actual result
description: Explain what happened. Include only relevant, redacted output or screenshots; never upload credentials, personal data, or confidential logs.
validations:
required: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Feature request
description: Describe a use case and a proposed improvement in the affected repository.
title: "[Feature]: "
body:
- type: markdown
attributes:
value: |
Search existing requests first and use the affected repository.
Submit central profile, mascot, or design work through the brand form in [php-fast-forward/.github](https://github.com/php-fast-forward/.github/issues).
Keep examples and references suitable for public reading; omit secrets, personal information, and confidential material.
- type: textarea
id: problem
attributes:
label: Problem and use case
description: Who needs this, what are they trying to do, and what makes the current approach difficult?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed result
description: Describe the improvement, affected package or component, and how someone would use it. Examples are welcome.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Describe existing options, workarounds, and relevant tradeoffs. State if you have not found an alternative.
validations:
required: true
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Purpose and result

<!-- Explain the concrete problem and resulting behavior or content. Follow the contribution guide and checks in the affected repository. -->

Related issue:
<!-- Link an existing issue. Use a closing keyword only when this PR fully resolves it. -->

## Validation

<!-- State relevant commands/checks and their results. Include meaningful regression coverage for behavior changes. For documentation, describe text/link review. Identify manual review and remaining limitations. -->

## Brand and asset evidence (when relevant)

<!-- Remove this section when the PR has no brand or asset changes. In the profile/design repository, consult:
https://github.com/php-fast-forward/.github/blob/main/DESIGN.md
https://github.com/php-fast-forward/.github/blob/main/STYLE.md
https://github.com/php-fast-forward/.github/blob/main/SOUL.md
https://github.com/php-fast-forward/.github/blob/main/assets/README.md
Include public-safe previews at the intended size/surface, explain contract changes, and record sources, authors or methods, transformations, and permission/license status. Distinguish reusable exports from references/concepts and mark unknown facts. Update the design repository's assets/manifest.json and catalog when appropriate. -->

## Checklist

- [ ] The change belongs in this repository and follows its contribution instructions.
- [ ] The description explains the result and the relevant validation performed.
- [ ] Code examples, commands, and documentation match the delivered behavior.
- [ ] If assets changed, their origin and permission status are documented and relevant previews/catalog updates are included.
- [ ] The diff, logs, and previews contain no secrets, personal data, confidential material, or accidental system files.
59 changes: 59 additions & 0 deletions .github/workflows/brand-assets.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Brand assets

on:
pull_request:
paths:
- 'assets/**'
- 'DESIGN.md'
- 'SOUL.md'
- 'STYLE.md'
- 'docs/brand/**'
- 'skills/dash-art/**'
- 'references/**'
- 'profile/assets/**'
- 'scripts/**'
- 'tests/**'
- 'composer.json'
- 'composer.lock'
- 'phpunit.xml'
- '.gitattributes'
- '.github/workflows/brand-assets.yml'
push:
branches: [main]
paths:
- 'assets/**'
- 'DESIGN.md'
- 'SOUL.md'
- 'STYLE.md'
- 'docs/brand/**'
- 'skills/dash-art/**'
- 'references/**'
- 'profile/assets/**'
- 'scripts/**'
- 'tests/**'
- 'composer.json'
- 'composer.lock'
- 'phpunit.xml'
- '.gitattributes'
- '.github/workflows/brand-assets.yml'

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- name: Set up PHP
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # 2.35.5
with:
php-version: '8.4'
extensions: dom, mbstring, zlib
tools: composer:v2
coverage: none
- name: Install locked development dependencies
run: composer install --no-interaction --no-plugins --no-scripts --prefer-dist --no-progress
- name: Verify assets, exports and publication regression tests
run: composer check
88 changes: 88 additions & 0 deletions .github/workflows/brand-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Brand Pages

on:
push:
branches: [main]
paths:
- 'assets/**'
- 'docs/brand/**'
- 'profile/**'
- '*.md'
- 'scripts/**'
- 'tests/**'
- 'composer.json'
- 'composer.lock'
- 'phpunit.xml'
- '.gitattributes'
- '.github/workflows/brand-pages.yml'
pull_request:
paths:
- 'assets/**'
- 'docs/brand/**'
- 'profile/**'
- '*.md'
- 'scripts/**'
- 'tests/**'
- 'composer.json'
- 'composer.lock'
- 'phpunit.xml'
- '.gitattributes'
- '.github/workflows/brand-pages.yml'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: brand-pages-${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main' && 'deployment' || github.ref }}
cancel-in-progress: false
Comment thread
coderabbitai[bot] marked this conversation as resolved.

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4, matches brand-assets.yml
- name: Set up PHP
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # 2.35.5
with:
php-version: '8.4'
extensions: dom, mbstring, zlib
tools: composer:v2
coverage: none
- name: Install locked development dependencies
run: composer install --no-interaction --no-plugins --no-scripts --prefer-dist --no-progress
- name: Verify assets, exports and publication boundaries
run: composer check
- name: Build public brand library
env:
SOURCE_REF: ${{ github.sha }}
run: php scripts/build-brand-pages.php --output-dir _site --source-ref "$SOURCE_REF"
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: _site
retention-days: 1
include-hidden-files: true # The staging script creates only .nojekyll.

deploy:
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Read Pages configuration
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
with:
enablement: false
- name: Deploy brand library
id: deployment
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
backup/
backup/
.DS_Store
._*
vendor/
.phpunit.cache/

# Generated GitHub Pages staging output
_site/
22 changes: 22 additions & 0 deletions ACCESSIBILITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# PHP Fast Forward accessibility priorities

Make PHP Fast Forward documentation, websites, examples, and interfaces usable by people with different access needs. These are organization priorities; follow any more specific guidance in the affected repository.

## Design and implementation

- Use readable text and sufficient contrast for text, controls, and focus indicators. Convey status and meaning with text or other cues alongside color.
- Keep instructions and code selectable and copyable as text. Provide textual explanations for diagrams and screenshots when they carry information.
- Make interactive elements operable by keyboard, with visible focus and a logical navigation order. Use meaningful labels and semantic structure.
- Preserve readable content when text is enlarged or the viewport changes. Give useful alternative text to informative images and keep purely decorative images out of the reading flow.

Use [W3C WAI's design guidance](https://www.w3.org/WAI/tips/designing/) when reviewing contrast, navigation, labels, structure, and image alternatives.

Keep nonessential animation optional. For web interfaces, respect reduced-motion preferences and provide a static equivalent; [WAI technique C39](https://www.w3.org/WAI/WCAG22/Techniques/css/C39) explains the `prefers-reduced-motion` approach. A mascot animation must not be required to understand an instruction or status.

## Review and reporting

Review relevant changes with keyboard navigation, text enlargement, contrast checks, and appropriate assistive technology or content checks. Record the surface and environment tested, observed barriers, and unresolved limitations. A compliance statement should identify the standard, assessed scope, and supporting evidence.

Report an accessibility barrier as a bug in the affected repository. Include the page or component, expected access, reproduction steps, and relevant browser or assistive technology version when useful. Keep the report public-safe; you do not need to disclose a disability or personal medical information.

For central profile content, mascot assets, or the visual system, use [the profile and design repository](https://github.com/php-fast-forward/.github/issues) and its brand form. Its [design guidance](https://github.com/php-fast-forward/.github/blob/main/DESIGN.md) and [asset catalog](https://github.com/php-fast-forward/.github/blob/main/assets/README.md) document intended applications and known asset limitations.
23 changes: 23 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# PHP Fast Forward community Code of Conduct

PHP Fast Forward welcomes people with different backgrounds, identities, abilities, and levels of experience. Help make its repositories and project discussions useful places to learn and contribute. These are organization defaults; respect additional expectations published in the space where you participate.

## How we work together

Be respectful and specific. Critique ideas and behavior rather than attacking people. Make room for questions, acknowledge useful corrections, and respect others' time and boundaries. Keep technical disagreements focused on evidence and the tradeoffs under discussion.

Harassment, threats, discriminatory language, sexual attention, repeated unwanted contact, and publishing another person's private information are unacceptable. Do not use project spaces for spam or targeted humiliation.

These expectations apply to project issues, pull requests, discussions, and other spaces managed by PHP Fast Forward maintainers. They also apply when someone is representing the project in a public setting.

## Reporting concerns

Use GitHub's **Report content** action on the relevant issue, pull request, or comment when available. GitHub may offer reporting to repository admins or to GitHub Support, depending on the context and repository settings. See [Reporting abuse or spam](https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam) for available reporting routes.

Use a repository's published confidential conduct contact if it provides one. These defaults do not establish a confidential contact. When no private contact is published, use GitHub's platform reporting tools for sensitive cases instead of posting personal details or a sensitive account in a public issue. Share only the information needed for the selected route; do not promise confidentiality on behalf of the project.

## Maintainer responsibilities

Maintainers may edit or remove disruptive content, close discussions, or restrict participation to protect the community. They should consider context and severity, explain decisions where appropriate, and limit the circulation of sensitive information to people who need it to address the concern.

The aim is a respectful, constructive community. Maintainers retain responsibility for enforcing expectations in the spaces they manage; GitHub handles reports about its platform rules through its own processes.
Loading
Loading