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
5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

26 changes: 26 additions & 0 deletions .github/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Contributing to Arcane

First off, thank you for considering contributing to Arcane!

Arcane is a deliberately minimal single-file microframework. It is built on the philosophy that web development should be crafted, not configured. Because of the framework's strict architectural constraints, please review these guidelines before opening an issue or pull request.

## Core Principles

- **Zero Dependencies:** Arcane does not and will not use external packages.
- **Keep it Small:** The core engine lives in a single file (`index.php`). Every new line of code is ruthlessly scrutinized for weight and necessity. "Less" is a deliberate discipline.
- **Native PHP:** We rely on modern PHP features rather than polyfills or heavy abstractions.
- **Formatting:** We use modern PHP spacing (e.g., `if ()`, `elseif ()`) but strictly maintain a **2-space indentation** and an **80-column soft limit** to keep the file vertically dense and readable.

## Pull Requests

Pull requests for bug fixes, performance optimizations, and documentation updates are always welcome.

**Note on New Features:** Feature additions are heavily gated. If a feature is highly specific or adds significant weight, it likely belongs in the [Arcane Helpers](https://github.com/capachow/arcane-helpers) repository, not the core engine.

### Development Process

1. Fork the repository and create a feature branch off `master`.
2. Ensure your code matches the existing minimalist architectural styles.
3. Submit your pull request with a concise explanation of the problem it solves.

Thank you for helping build something you are proud of. Keep it **Arcane**.
File renamed without changes.
14 changes: 14 additions & 0 deletions .github/issue_template/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: Bug Report
about: Report something that's broken
labels: Bug
---

**Describe the bug**
A clear and concise description of what the bug is.

**How to reproduce**
Steps to cause the bug or a link to a minimal reproduction.

**Environment**
PHP version, OS, and Server (Apache/NGINX/CLI).
File renamed without changes.
11 changes: 11 additions & 0 deletions .github/issue_template/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: Feature Request
about: Suggest an idea for this project
labels: Enhancement
---

**The Idea**
What is the problem or new feature you are suggesting?

**How it should work**
A clear description of how you imagine this feature working in Arcane.
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**What does this PR do?**
A brief description of the changes, bug fixes, or new features.

**Why is this needed?**
Link to any relevant issues or explain the reasoning behind the change.
22 changes: 22 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: PHP Linter

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
linter:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'

- name: Check PHP Syntax
run: php -l index.php
37 changes: 37 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Auto Release

on:
push:
branches:
- master
paths:
- 'index.php'

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Extract Version
id: get_version
run: |
VERSION=$(grep -oE 'Arcane [0-9]+\.[0-9]+\.[0-9]+' index.php | awk '{print $2}')
if [ -z "$VERSION" ]; then
echo "Error: Version could not be extracted from index.php."
exit 1
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=v$VERSION" >> $GITHUB_OUTPUT

- name: Create Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create ${{ steps.get_version.outputs.tag }} \
--title "${{ steps.get_version.outputs.version }}" \
--generate-notes \
index.php
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
*
!.github/
!.github/**
!.gitignore
!composer.json
!LICENSE.md
!README.md
!index.php
!composer.json
!index.php
Loading
Loading