diff --git a/.github/.commitlint.config.mjs b/.github/.commitlint.config.mjs
index fcc475c4..49f1f956 100644
--- a/.github/.commitlint.config.mjs
+++ b/.github/.commitlint.config.mjs
@@ -11,9 +11,9 @@ export default {
ignores: [(commitMessage) => automaticCommitPattern.test(commitMessage)],
rules: {
'body-leading-blank': [1, 'always'],
- 'body-max-line-length': [2, 'always', 100],
+ 'body-max-line-length': [2, 'always', 120],
'footer-leading-blank': [1, 'always'],
- 'footer-max-line-length': [2, 'always', 100],
+ 'footer-max-line-length': [2, 'always', 120],
'header-max-length': [2, 'always', 100],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
@@ -25,18 +25,19 @@ export default {
2,
'always',
[
- 'feat',
- 'fix',
- 'perf',
- 'docs',
- 'style',
- 'deps',
- 'refactor',
- 'ci',
- 'test',
- 'revert',
- 'build',
- 'chore',
+ 'feat', // New feature
+ 'fix', // Bug fix
+ 'perf', // Performance improvement
+ 'docs', // Documentation changes
+ 'style', // Code style update (formatting, missing semi colons, etc)
+ 'deps', // Dependency updates
+ 'refactor', // Code refactoring
+ 'ci', // Continuous integration changes
+ 'test', // Adding missing tests
+ 'revert', // Revert to a previous commit
+ 'build', // Changes that affect the build system
+ 'chore', // Other changes that don't modify src or test files
+ 'security', // Security improvements
],
],
},
diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml
new file mode 100644
index 00000000..94e4cfb0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml
@@ -0,0 +1,126 @@
+---
+
+name: 🐞 Bug Report
+description: Report an issue to help the project improve.
+title: '[Bug]: '
+labels: ['type: bug', "status:to be verified"]
+
+body:
+ - type: markdown
+ attributes:
+ value: 🐞 **Bug Report**
+
+ - type: checkboxes
+ id: search-done
+ attributes:
+ label: No duplicates 🥲.
+ options:
+ - label: I have searched for a similar issue in our bug tracker and didn't find any solutions.
+ required: true
+
+ - type: textarea
+ id: bug-description
+ attributes:
+ label: Describe the bug
+ description: Please provide a clear and detailed description of what the bug is. This helps us understand the issue quickly and look for potential fixes.
+ placeholder: Explain the bug in as much detail as possible...
+ validations:
+ required: true
+
+ - type: textarea
+ id: regression
+ attributes:
+ label: Is this a regression?
+ description: |
+ Was this functionality working in a previous version?
+ If yes, please mention the last version in which it worked properly.
+ Understanding regressions helps prioritize fixes.
+ placeholder: Yes or No, and details about the last working version...
+ validations:
+ required: false
+
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: To Reproduce
+ description: |
+ 'Please provide step-by-step instructions that reproduce the issue:
+ 1. Use x argument / navigate to...
+ 2. Fill this information...
+ 3. Go to...
+ 4. See error
+ placeholder: Detailed steps to reproduce the bug...
+ validations:
+ required: true
+
+ - type: textarea
+ id: expected-behaviour
+ attributes:
+ label: Expected behaviour
+ description: |
+ Describe what you expected to happen.
+ Clear expectations help understand the gap between current and desired states.
+ placeholder: What did you expect to happen instead of the bug?
+ validations:
+ required: true
+
+ - type: textarea
+ id: media
+ attributes:
+ label: Media prove
+ description: If applicable, add screenshots or videos to better illustrate the issue. Visual aids can significantly aid in diagnosing problems quicker.
+ placeholder: Upload files or paste links here...
+ validations:
+ required: false
+
+ - type: dropdown
+ id: database
+ attributes:
+ label: Database
+ description: On which databases does the error appear?
+ multiple: true
+ options:
+ - SQLite
+ - MySQL
+ - PostgreSQL
+ - MSSQL
+
+ - type: textarea
+ id: environment
+ attributes:
+ label: Your environment
+ description: |
+ Provide detailed information about your environment to help us replicate the issue:
+ * OS: [e.g. Ubuntu]
+ * PHP version: [e.g. 8.2.2]
+ * Package version: [e.g. 1.0.0]
+ * Any relevant environment details
+ placeholder: |
+ - OS: Ubuntu
+ - PHP version: 8.2.2
+ - Package version: 2.9.0
+ - Any relevant environment details...
+ validations:
+ required: false
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional context
+ description: Include any other context about the problem here, such as unusual system configurations, previous issues, or possible causes.
+ placeholder: Any additional information that could help us resolve the issue...
+ validations:
+ required: false
+
+ - type: markdown
+ attributes:
+ value: |
+ 📛 To ensure a smooth issue processing, please check if a similar bug report has already been submitted before creating a new one.
+ We highly value your contributions, so please make sure to familiarize yourself with our repository's guidelines:
+ - [Code of Conduct](https://github.com/cycle/database/blob/2.x/.github/CODE_OF_CONDUCT.md)
+ - [Contribution Guidelines](https://github.com/cycle/database/blob/2.x/.github/CONTRIBUTING.md)
+
+ Additionally, consider joining our discussions on:
+ - [Spiral Discord Community](https://discord.gg/spiralphp)
+
+...
diff --git a/.github/ISSUE_TEMPLATE/2-feature-request.yml b/.github/ISSUE_TEMPLATE/2-feature-request.yml
new file mode 100644
index 00000000..a2a5b74e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/2-feature-request.yml
@@ -0,0 +1,72 @@
+---
+
+name: 🚀 Feature Request
+description: Suggest an idea or possible new feature for this project.
+title: '[Feature]: '
+labels: ['type: feature']
+
+body:
+ - type: markdown
+ attributes:
+ value: 🚀 **Feature Request**
+
+ - type: textarea
+ id: problem-related
+ attributes:
+ label: Is your feature request related to a problem? Please describe.
+ description: |
+ Please provide a clear and detailed description of what the problem is.
+ For example, 'I'm always frustrated when...'.
+ This will help us understand the context and the impact of the problem.
+ placeholder: Describe the problem...
+ validations:
+ required: true
+
+ - type: textarea
+ id: desired-solution
+ attributes:
+ label: "Describe the solution you'd like"
+ description: |
+ What would you like to see happen? Please provide a detailed explanation of the desired feature.
+ You may include bullet points to outline objectives, key activities, and expected outcomes.
+ placeholder: |
+ 1. Objective: [What you hope to achieve with this feature]
+ 2. Key Activities: [Steps to implement the feature]
+ 3. Expected Outcome: [Benefits and results of the feature]
+ validations:
+ required: true
+
+ - type: textarea
+ id: alternative-solutions
+ attributes:
+ label: "Describe alternatives you've considered"
+ description: |
+ Are there alternative solutions or features you've considered? Please describe them.
+ Understanding different possible solutions can help in finding the best path forward.
+ placeholder: Describe any alternative solutions or workarounds you have considered...
+ validations:
+ required: false
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional context
+ description: |
+ Add any other context or screenshots about the feature request here.
+ Links to similar features, or visual aids that support your proposal, if applicable.
+ placeholder: Insert any additional context or links to similar features here...
+ validations:
+ required: false
+
+ - type: markdown
+ attributes:
+ value: |
+ 📛 To ensure a smooth issue processing, please check if a similar feature request has already been submitted before creating a new one.
+ We highly value your contributions, so please make sure to familiarize yourself with our repository's guidelines:
+ - [Code of Conduct](https://github.com/cycle/database/blob/2.x/.github/CODE_OF_CONDUCT.md)
+ - [Contribution Guidelines](https://github.com/cycle/database/blob/2.x/.github/CONTRIBUTING.md)
+
+ Additionally, consider joining our discussions on:
+ - [Spiral Discord Community](https://discord.gg/spiralphp)
+
+...
diff --git a/.github/ISSUE_TEMPLATE/3-docs-bug-report.yml b/.github/ISSUE_TEMPLATE/3-docs-bug-report.yml
new file mode 100644
index 00000000..4498e8e0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/3-docs-bug-report.yml
@@ -0,0 +1,79 @@
+---
+
+name: 📚 Documentation or README.md issue report
+description: Report an issue in the project's documentation or README.md file.
+title: '[Docs]: '
+labels: ['type: documentation', 'type: maintenance']
+
+assignees:
+ - lotyp
+
+body:
+ - type: markdown
+ attributes:
+ value: 📚 **Documentation Issue Report**
+
+ - type: textarea
+ id: documentation-bug-description
+ attributes:
+ label: Describe the bug
+ description: Provide a clear and concise description of what the error or issue is in the documentation.
+ placeholder: Explain the issue with the documentation...
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: To Reproduce
+ description: |
+ Please provide steps to reproduce the error in the documentation:
+ 1. Navigate to the section or URL where the error occurs...
+ 2. Specify the misleading or incorrect information...
+ 3. Suggest what is expected if applicable...
+ placeholder: |
+ 1. URL or Section...
+ 2. Misleading information...
+ 3. Expected correction...
+ validations:
+ required: true
+
+ - type: textarea
+ id: media-prove
+ attributes:
+ label: Media prove
+ description: If applicable, add screenshots or videos to better illustrate the issue with the documentation.
+ placeholder: Upload files or paste links here...
+ validations:
+ required: false
+
+ - type: textarea
+ id: desired-solution
+ attributes:
+ label: Describe the solution you would like
+ description: Describe what changes or improvements you would like to see in the documentation.
+ placeholder: Describe the desired changes or improvements...
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional context
+ description: Add any other context or additional information that could help clarify the documentation issue.
+ placeholder: Provide any additional context here...
+ validations:
+ required: false
+
+ - type: markdown
+ attributes:
+ value: |
+ 📛 To ensure a smooth issue processing, please check if a similar bug report has already been submitted before creating a new one.
+ We highly value your contributions, so please make sure to familiarize yourself with our repository's guidelines:
+ - [Code of Conduct](https://github.com/cycle/database/blob/2.x/.github/CODE_OF_CONDUCT.md)
+ - [Contribution Guidelines](https://github.com/cycle/database/blob/2.x/.github/CONTRIBUTING.md)
+
+ Additionally, consider joining our discussions on:
+ - [Spiral Discord Community](https://discord.gg/spiralphp)
+
+...
diff --git a/.github/ISSUE_TEMPLATE/4-security-report.yml b/.github/ISSUE_TEMPLATE/4-security-report.yml
new file mode 100644
index 00000000..84417b59
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/4-security-report.yml
@@ -0,0 +1,35 @@
+---
+
+name: ⚠️ Security Report
+description: Please report security issues directly through GitHub Security Advisories to ensure privacy.
+title: '[Security]: '
+labels: ['type: bug', 'priority: high', 'type: security']
+
+assignees:
+ - lotyp
+
+body:
+ - type: markdown
+ attributes:
+ value: >
+ ⚠️ **Please DO NOT report security vulnerabilities here.** Instead, use the GitHub Security Advisories feature to report them privately and securely. This helps us address issues responsibly without exposing them publicly.
+
+ - type: markdown
+ attributes:
+ value: >
+ GitHub Advisories do not automatically notify maintainers, so by using the advisories, you help maintain confidentiality while ensuring the issue is documented and tracked properly.
+
+ - type: markdown
+ attributes:
+ value: 'To create a new advisory, go to: [Create Security Advisory](https://github.com/cycle/database/security/advisories/new)'
+
+ - type: textarea
+ id: github-advisory-url
+ attributes:
+ label: Your GitHub Advisory URL
+ description: Optionally, you can paste the URL of the GitHub Security Advisory you have created here for reference.
+ placeholder: Paste the GitHub Security Advisory URL here...
+ validations:
+ required: false
+
+...
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
deleted file mode 100644
index 633302b9..00000000
--- a/.github/ISSUE_TEMPLATE/bug-report.yml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-
-name: Bug Report
-description: 🐛 File a bug report
-title: "🐛 "
-labels: ["type:bug", "status:to be verified"]
-assignees:
- - roxblnfk
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
-
- - type: checkboxes
- id: search-done
- attributes:
- label: No duplicates 🥲.
- options:
- - label: I have searched for a similar issue in our bug tracker and didn't find any solutions.
- required: true
-
- - type: dropdown
- id: database
- attributes:
- label: Database
- description: On which databases does the error appear?
- multiple: true
- options:
- - SQLite
- - MySQL
- - PostgreSQL
- - MSSQL
-
- - type: textarea
- id: what-happened
- attributes:
- label: What happened?
- description: Also tell us, what did you expect to happen? Please write only in English.
- placeholder: Tell us what you see!
- value: "A bug happened!"
- validations:
- required: true
- - type: textarea
- id: version
- attributes:
- label: Version
- description: What version of our software are you running?
- render: shell
- value: |
- database 2.0
- PHP 8.1
- validations:
- required: true
-
-...
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 6b50a696..f000399a 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -3,8 +3,16 @@
blank_issues_enabled: false
contact_links:
- - name: ❓ Start a discussion or ask a question.
+ - name: Start a discussion or ask a question.
url: https://github.com/cycle/orm/discussions
about: Please ask and answer questions here.
+ - name: Join our Discord Community
+ url: https://discord.gg/spiralphp
+ about: Join our Discord community to get help, share your ideas, and chat with other developers.
+
+ - name: Send an e-mail to the developer
+ url: mailto:team@spiralscout.com
+ about: Please do NOT use this email to post issues or feature requests (only important business/personal contact).
+
...
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
deleted file mode 100644
index af3e88c1..00000000
--- a/.github/ISSUE_TEMPLATE/feature-request.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-
-name: Feature request
-description: 💡 Suggest an idea for this project
-title: "💡 "
-labels: ["type:feature"]
-assignees:
- - roxblnfk
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to share your idea!
-
- - type: textarea
- id: idea
- attributes:
- label: I have an idea!
- description: Clear and concise description of your idea. Please write only in English.
- placeholder: Tell us what you see!
- value: "I have an idea, listen to me!!"
- validations:
- required: true
-
-...
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
new file mode 100644
index 00000000..e56505a8
--- /dev/null
+++ b/.github/SECURITY.md
@@ -0,0 +1,49 @@
+# Security Policy
+
+Thank you for helping keep `cycle/database` and its users safe. We greatly appreciate your efforts to disclose security vulnerabilities responsibly.
+
+
+
+## 🙋♂️ Supported Versions
+
+Only certain versions of `cycle/database` are currently being maintained with security updates. Please use or upgrade to one of these supported versions:
+
+| Version | Supported |
+|---------|--------------------|
+| 2.x | :white_check_mark: |
+
+Please ensure that you are using one of these supported versions before reporting a security issue.
+
+
+
+## 🗜️ Unsupported Versions
+
+Versions listed below are no longer supported with security updates. We recommend upgrading to a supported version as soon as possible:
+
+| Version | Supported |
+|---------|-----------|
+| 1.x | :x: |
+
+
+
+## 🚨 Reporting a Vulnerability
+
+We take all security bugs in `cycle/database` seriously. Please follow the instructions below to report security vulnerabilities.
+
+### → How to Report
+
+1. **GitHub Security Advisories**: Please report security issues directly through our GitHub Security Advisories page: [https://github.com/cycle/database/security/advisories/new](https://github.com/cycle/database/security/advisories/new). This ensures that sensitive information is handled confidentially.
+
+2. **Empty Security Issue**: After submitting through GitHub Security Advisories, please also create an empty security issue to alert us, as GitHub Advisories do not send automatic notifications. This can be done [here](https://github.com/cycle/database/issues/new?assignees=&labels=type%3A+bug%2Cpriority%3A+high%2Ctype%3A+security&projects=&template=5-security-report.yml&title=%5BSecurity%5D%3A+).
+
+3. **Direct Contact**: For highly sensitive information, in addition to the GitHub Security Advisories, please email us directly at `team@spiralscout.com` with the subject line "SECURITY - Vulnerability Report". This will be treated with the highest priority.
+
+Please do not discuss potential security issues in public forums or through our public GitHub issues tracker.
+
+
+
+## ❌ Third-Party Bug Bounty Platforms
+
+At this moment, we DO NOT accept reports from third-party bug bounty platforms to minimize risk. All vulnerability reports should come through the specified channels above.
+
+
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 38047e13..bdefee58 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -8,7 +8,8 @@ on: # yamllint disable-line rule:truthy
name: 🔍 Integration
jobs:
- lint-commits:
+ commit-linting:
+ timeout-minutes: 4
runs-on: ubuntu-latest
permissions:
contents: read
@@ -17,13 +18,12 @@ jobs:
- name: 📦 Check out the codebase
uses: actions/checkout@v4.1.1
- # See: https://github.com/wagoid/commitlint-github-action
- name: 🧐 Lint commits using "commitlint"
- uses: wagoid/commitlint-github-action@v6.0.0
+ uses: wagoid/commitlint-github-action@v6.0.1
with:
- configFile: ${{ github.workspace }}/.github/commitlint.config.mjs
+ configFile: ${{ github.workspace }}/.github/.commitlint.config.mjs
failOnWarnings: false
- failOnErrors: true
+ failOnErrors: false
helpURL: 'https://github.com/conventional-changelog/commitlint/#what-is-commitlint'
...