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' ...