From 960d77cfaa60ac980d8cccd54afa090bfd2d213c Mon Sep 17 00:00:00 2001 From: ozh Date: Wed, 29 Apr 2026 23:15:36 +0200 Subject: [PATCH 01/14] Proposal for an IA policy Very inspired by https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md which I found quite resonating with my opinions of the topic, after dealing with recent AI generated PRs. Thoughts? Next steps: - fine tuning / rewording - linking from CONTRIBUTING.md - while we are at it, maybe shortening that CONTRIBUTING.md page which is very wordy and covering stuff that are included in issues/PR templates. --- IA_POLICY.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 IA_POLICY.md diff --git a/IA_POLICY.md b/IA_POLICY.md new file mode 100644 index 0000000..1be14d8 --- /dev/null +++ b/IA_POLICY.md @@ -0,0 +1,33 @@ +# AI Usage Policy + +The YOURLS project and organization have strict rules regarding AI usage. + +- **All AI usage in any form must be disclosed.** You must state + the tool you used (e.g. Claude Code) along with the extent that the work + was AI-assisted. + +- **The human-in-the-loop must fully understand all code.** If you can't explain + without AI what your changes do and how they interact with code, please do not + contribute to this project. + +- **Any content generated with AI must have been reviewed _and edited_ + by a human before submission**. AI is very good at being overly verbose and + including noise that distracts from the main point. + +- **Pull Requests must be focused.** If you want to submit a PR that fixes a + problem, enhances or introduce a new feature, make sure your code does just + that. PR containing also white space changes, rewording comments, or + tackling several matters will be rejected. + +## There are Humans Here + +Please remember that YOURLS is maintained by humans. + +Every discussion, issue, and pull request is read and reviewed by +humans. It is a boundary point at which people interact with each other +and the work done. It is rude and disrespectful to approach this boundary +with low-effort, unqualified work, since it puts the burden of validation +on the maintainer. + +**This AI Policy is not an anti AI stance.** It's our way to preserve our +limited time and resources devoted to this community project. \ No newline at end of file From 219005fb8977a5e4aa68f307e0db7988903f0e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Thu, 30 Apr 2026 10:24:29 +0200 Subject: [PATCH 02/14] Apply suggestions from code review Co-authored-by: dgw --- IA_POLICY.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/IA_POLICY.md b/IA_POLICY.md index 1be14d8..c1e8d65 100644 --- a/IA_POLICY.md +++ b/IA_POLICY.md @@ -3,7 +3,7 @@ The YOURLS project and organization have strict rules regarding AI usage. - **All AI usage in any form must be disclosed.** You must state - the tool you used (e.g. Claude Code) along with the extent that the work + the tool you used (e.g. Claude Code) along with the extent to which the work was AI-assisted. - **The human-in-the-loop must fully understand all code.** If you can't explain @@ -11,23 +11,27 @@ The YOURLS project and organization have strict rules regarding AI usage. contribute to this project. - **Any content generated with AI must have been reviewed _and edited_ - by a human before submission**. AI is very good at being overly verbose and + by a human before submission.** AI is very good at being overly verbose and including noise that distracts from the main point. - + +- **The human-in-the-loop must communicate with maintainers.** This follows from + the preceding points: AI models are verbose and unfocused. Don't have your AI + tool describe to us what you've found or changed; say it in your own words. + - **Pull Requests must be focused.** If you want to submit a PR that fixes a problem, enhances or introduce a new feature, make sure your code does just - that. PR containing also white space changes, rewording comments, or - tackling several matters will be rejected. + that. PRs that change whitespace, reword comments, or contain multiple + unrelated sets of changes will be rejected. ## There are Humans Here Please remember that YOURLS is maintained by humans. -Every discussion, issue, and pull request is read and reviewed by -humans. It is a boundary point at which people interact with each other -and the work done. It is rude and disrespectful to approach this boundary -with low-effort, unqualified work, since it puts the burden of validation -on the maintainer. +Every discussion, issue, and pull request is read and reviewed by humans. +It is a boundary point at which people interact with each other and guide +the work. It is rude and disrespectful to approach this boundary with +low-effort, unqualified contributions that put the burden of validation +on the maintainers. **This AI Policy is not an anti AI stance.** It's our way to preserve our limited time and resources devoted to this community project. \ No newline at end of file From 97541d24b0df57e280c12f484e45ac847f7969f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Thu, 30 Apr 2026 10:26:23 +0200 Subject: [PATCH 03/14] Rename IA_POLICY.md to AI_POLICY.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit s/ 🇫🇷 / 🇺🇸 /g --- IA_POLICY.md => AI_POLICY.md | 46 ++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 23 deletions(-) rename IA_POLICY.md => AI_POLICY.md (94%) diff --git a/IA_POLICY.md b/AI_POLICY.md similarity index 94% rename from IA_POLICY.md rename to AI_POLICY.md index c1e8d65..7d9e215 100644 --- a/IA_POLICY.md +++ b/AI_POLICY.md @@ -1,37 +1,37 @@ -# AI Usage Policy - -The YOURLS project and organization have strict rules regarding AI usage. - -- **All AI usage in any form must be disclosed.** You must state +# AI Usage Policy + +The YOURLS project and organization have strict rules regarding AI usage. + +- **All AI usage in any form must be disclosed.** You must state the tool you used (e.g. Claude Code) along with the extent to which the work - was AI-assisted. - -- **The human-in-the-loop must fully understand all code.** If you can't explain - without AI what your changes do and how they interact with code, please do not - contribute to this project. - -- **Any content generated with AI must have been reviewed _and edited_ + was AI-assisted. + +- **The human-in-the-loop must fully understand all code.** If you can't explain + without AI what your changes do and how they interact with code, please do not + contribute to this project. + +- **Any content generated with AI must have been reviewed _and edited_ by a human before submission.** AI is very good at being overly verbose and - including noise that distracts from the main point. + including noise that distracts from the main point. - **The human-in-the-loop must communicate with maintainers.** This follows from the preceding points: AI models are verbose and unfocused. Don't have your AI tool describe to us what you've found or changed; say it in your own words. -- **Pull Requests must be focused.** If you want to submit a PR that fixes a - problem, enhances or introduce a new feature, make sure your code does just +- **Pull Requests must be focused.** If you want to submit a PR that fixes a + problem, enhances or introduce a new feature, make sure your code does just that. PRs that change whitespace, reword comments, or contain multiple unrelated sets of changes will be rejected. - -## There are Humans Here - -Please remember that YOURLS is maintained by humans. - + +## There are Humans Here + +Please remember that YOURLS is maintained by humans. + Every discussion, issue, and pull request is read and reviewed by humans. It is a boundary point at which people interact with each other and guide the work. It is rude and disrespectful to approach this boundary with low-effort, unqualified contributions that put the burden of validation on the maintainers. - -**This AI Policy is not an anti AI stance.** It's our way to preserve our -limited time and resources devoted to this community project. \ No newline at end of file + +**This AI Policy is not an anti AI stance.** It's our way to preserve our +limited time and resources devoted to this community project. From 95cdb882ada87bf510aeef0d4279e67bfbc0a27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Thu, 30 Apr 2026 10:38:48 +0200 Subject: [PATCH 04/14] New section: human need or die Added a section on the necessity for Pull Requests to originate from real human needs. --- AI_POLICY.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AI_POLICY.md b/AI_POLICY.md index 7d9e215..546ce77 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -23,6 +23,13 @@ The YOURLS project and organization have strict rules regarding AI usage. that. PRs that change whitespace, reword comments, or contain multiple unrelated sets of changes will be rejected. +- **Pull Requests must originate from a real human need.** A valid PR addresses + a bug you actually encountered, or a feature you genuinely need. We do not + accept PRs where the origin is an AI agent that scanned the codebase and + decided something could be "improved" - refactored, renamed, reworded, or + otherwise touched. If you cannot point to a concrete problem you faced as a user, + there is no PR to submit. + ## There are Humans Here Please remember that YOURLS is maintained by humans. From 843a5822826ccf6b975db3006d2764ef668e7e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Thu, 30 Apr 2026 23:31:30 +0200 Subject: [PATCH 05/14] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Léo Colombaro --- AI_POLICY.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/AI_POLICY.md b/AI_POLICY.md index 546ce77..8e25b86 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -3,7 +3,7 @@ The YOURLS project and organization have strict rules regarding AI usage. - **All AI usage in any form must be disclosed.** You must state - the tool you used (e.g. Claude Code) along with the extent to which the work + the AI model you used along with the extent to which the work was AI-assisted. - **The human-in-the-loop must fully understand all code.** If you can't explain @@ -18,17 +18,17 @@ The YOURLS project and organization have strict rules regarding AI usage. the preceding points: AI models are verbose and unfocused. Don't have your AI tool describe to us what you've found or changed; say it in your own words. -- **Pull Requests must be focused.** If you want to submit a PR that fixes a +- **Pull Requests must be focused.** If you want to submit a pull request that fixes a problem, enhances or introduce a new feature, make sure your code does just - that. PRs that change whitespace, reword comments, or contain multiple + that. Pull requests that change whitespace, reword comments, or contain multiple unrelated sets of changes will be rejected. -- **Pull Requests must originate from a real human need.** A valid PR addresses +- **Pull Requests must originate from a real human need.** A valid pull request addresses a bug you actually encountered, or a feature you genuinely need. We do not - accept PRs where the origin is an AI agent that scanned the codebase and - decided something could be "improved" - refactored, renamed, reworded, or + accept pull requests where the origin is an AI agent that scanned the codebase and + decided something could be "improved" -- refactored, renamed, reworded, or otherwise touched. If you cannot point to a concrete problem you faced as a user, - there is no PR to submit. + there is no pull request to submit. ## There are Humans Here From 90d637823d435653803509fd8df8ad897729680e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Thu, 30 Apr 2026 23:35:40 +0200 Subject: [PATCH 06/14] Note about security scanning --- AI_POLICY.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AI_POLICY.md b/AI_POLICY.md index 8e25b86..d0202e8 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -3,8 +3,7 @@ The YOURLS project and organization have strict rules regarding AI usage. - **All AI usage in any form must be disclosed.** You must state - the AI model you used along with the extent to which the work - was AI-assisted. + the AI model you used along with the extent to which the work was AI-assisted. - **The human-in-the-loop must fully understand all code.** If you can't explain without AI what your changes do and how they interact with code, please do not @@ -28,7 +27,8 @@ The YOURLS project and organization have strict rules regarding AI usage. accept pull requests where the origin is an AI agent that scanned the codebase and decided something could be "improved" -- refactored, renamed, reworded, or otherwise touched. If you cannot point to a concrete problem you faced as a user, - there is no pull request to submit. + there is no pull request to submit. Exception: security-related findings from a code + scanner are welcome, provided the submission still follows all other rules above. ## There are Humans Here From e3573d9407238a3f1436ca705640c749c41887af Mon Sep 17 00:00:00 2001 From: ozh Date: Thu, 30 Apr 2026 23:53:51 +0200 Subject: [PATCH 07/14] bunx prettier . --write hmmmkey --- AI_POLICY.md | 88 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/AI_POLICY.md b/AI_POLICY.md index d0202e8..7089832 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -1,44 +1,44 @@ -# AI Usage Policy - -The YOURLS project and organization have strict rules regarding AI usage. - -- **All AI usage in any form must be disclosed.** You must state - the AI model you used along with the extent to which the work was AI-assisted. - -- **The human-in-the-loop must fully understand all code.** If you can't explain - without AI what your changes do and how they interact with code, please do not - contribute to this project. - -- **Any content generated with AI must have been reviewed _and edited_ - by a human before submission.** AI is very good at being overly verbose and - including noise that distracts from the main point. - -- **The human-in-the-loop must communicate with maintainers.** This follows from - the preceding points: AI models are verbose and unfocused. Don't have your AI - tool describe to us what you've found or changed; say it in your own words. - -- **Pull Requests must be focused.** If you want to submit a pull request that fixes a - problem, enhances or introduce a new feature, make sure your code does just - that. Pull requests that change whitespace, reword comments, or contain multiple - unrelated sets of changes will be rejected. - -- **Pull Requests must originate from a real human need.** A valid pull request addresses - a bug you actually encountered, or a feature you genuinely need. We do not - accept pull requests where the origin is an AI agent that scanned the codebase and - decided something could be "improved" -- refactored, renamed, reworded, or - otherwise touched. If you cannot point to a concrete problem you faced as a user, - there is no pull request to submit. Exception: security-related findings from a code - scanner are welcome, provided the submission still follows all other rules above. - -## There are Humans Here - -Please remember that YOURLS is maintained by humans. - -Every discussion, issue, and pull request is read and reviewed by humans. -It is a boundary point at which people interact with each other and guide -the work. It is rude and disrespectful to approach this boundary with -low-effort, unqualified contributions that put the burden of validation -on the maintainers. - -**This AI Policy is not an anti AI stance.** It's our way to preserve our -limited time and resources devoted to this community project. +# AI Usage Policy + +The YOURLS project and organization have strict rules regarding AI usage. + +- **All AI usage in any form must be disclosed.** You must state + the AI model you used along with the extent to which the work was AI-assisted. + +- **The human-in-the-loop must fully understand all code.** If you can't explain + without AI what your changes do and how they interact with code, please do not + contribute to this project. + +- **Any content generated with AI must have been reviewed _and edited_ + by a human before submission.** AI is very good at being overly verbose and + including noise that distracts from the main point. + +- **The human-in-the-loop must communicate with maintainers.** This follows from + the preceding points: AI models are verbose and unfocused. Don't have your AI + tool describe to us what you've found or changed; say it in your own words. + +- **Pull Requests must be focused.** If you want to submit a pull request that fixes a + problem, enhances or introduce a new feature, make sure your code does just + that. Pull requests that change whitespace, reword comments, or contain multiple + unrelated sets of changes will be rejected. + +- **Pull Requests must originate from a real human need.** A valid pull request addresses + a bug you actually encountered, or a feature you genuinely need. We do not + accept pull requests where the origin is an AI agent that scanned the codebase and + decided something could be "improved" -- refactored, renamed, reworded, or + otherwise touched. If you cannot point to a concrete problem you faced as a user, + there is no pull request to submit. Exception: security-related findings from a code + scanner are welcome, provided the submission still follows all other rules above. + +## There are Humans Here + +Please remember that YOURLS is maintained by humans. + +Every discussion, issue, and pull request is read and reviewed by humans. +It is a boundary point at which people interact with each other and guide +the work. It is rude and disrespectful to approach this boundary with +low-effort, unqualified contributions that put the burden of validation +on the maintainers. + +**This AI Policy is not an anti AI stance.** It's our way to preserve our +limited time and resources devoted to this community project. From 29ef6d5302e28e6ac51eac885a404d9db350e882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Colombaro?= Date: Fri, 1 May 2026 00:00:21 +0200 Subject: [PATCH 08/14] Disable BIOME format validation in lint workflow --- .github/workflows/lint.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6c382da..e49a813 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -40,3 +40,4 @@ jobs: GITHUB_TOKEN: ${{ github.token }} FILTER_REGEX_EXCLUDE: ${{ inputs.exclude }} VALIDATE_JSCPD: false + VALIDATE_BIOME_FORMAT: false From a7593edfe82a57a11281cba69dc4dc70696e96be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Colombaro?= Date: Fri, 1 May 2026 00:04:02 +0200 Subject: [PATCH 09/14] Disable validation for GITHUB_ACTIONS_ZIZMOR --- .github/workflows/lint.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e49a813..ea98fa8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -41,3 +41,4 @@ jobs: FILTER_REGEX_EXCLUDE: ${{ inputs.exclude }} VALIDATE_JSCPD: false VALIDATE_BIOME_FORMAT: false + VALIDATE_GITHUB_ACTIONS_ZIZMOR: false From d4e8b8a75e5bfc789fb63c477e4ff38aa0a185cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Fri, 1 May 2026 09:34:47 +0200 Subject: [PATCH 10/14] Apply suggestions from code review Co-authored-by: dgw --- AI_POLICY.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/AI_POLICY.md b/AI_POLICY.md index 7089832..cc75b54 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -6,8 +6,8 @@ The YOURLS project and organization have strict rules regarding AI usage. the AI model you used along with the extent to which the work was AI-assisted. - **The human-in-the-loop must fully understand all code.** If you can't explain - without AI what your changes do and how they interact with code, please do not - contribute to this project. + without AI what your changes do and how they interact with existing code, please + do not contribute to this project. - **Any content generated with AI must have been reviewed _and edited_ by a human before submission.** AI is very good at being overly verbose and @@ -18,17 +18,18 @@ The YOURLS project and organization have strict rules regarding AI usage. tool describe to us what you've found or changed; say it in your own words. - **Pull Requests must be focused.** If you want to submit a pull request that fixes a - problem, enhances or introduce a new feature, make sure your code does just + problem, enhances or introduces a new feature, make sure your patch does only that. Pull requests that change whitespace, reword comments, or contain multiple unrelated sets of changes will be rejected. - **Pull Requests must originate from a real human need.** A valid pull request addresses a bug you actually encountered, or a feature you genuinely need. We do not accept pull requests where the origin is an AI agent that scanned the codebase and - decided something could be "improved" -- refactored, renamed, reworded, or + decided something could be "improved" — refactored, renamed, reworded, or otherwise touched. If you cannot point to a concrete problem you faced as a user, - there is no pull request to submit. Exception: security-related findings from a code - scanner are welcome, provided the submission still follows all other rules above. + there is no pull request to submit.\ + **Exception:** Security-related findings from a code scanner are welcome, + provided the submission still follows all other rules above. ## There are Humans Here From 93188f61377dfb3d365c24ed63998678f2f46ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Fri, 1 May 2026 14:04:09 +0200 Subject: [PATCH 11/14] Proposal for CONTRIBUTING and PR template --- .../ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md | 9 ++ CONTRIBUTING.md | 129 ++---------------- 2 files changed, 24 insertions(+), 114 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md b/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b061ac6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +Pre-requisites : +- [ ] I have read CONTRIBUTING.md +- [ ] I am using AI and have read AI_POLICY.md + + +## Description of your PR + + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 50246dc..cc26268 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,127 +1,28 @@ -# Contributing to YOURLS Projects +# Contributing to YOURLS -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +## Issue tracker -Submitting an issue that is improperly or incompletely written is a waste of time for everybody. - -Following these guidelines helps to communicate that you respect the time of -the developers managing and developing this open source project. In return, -they should reciprocate that respect in addressing your issue or assessing -patches and features. - -## Using the issue tracker - -The issue tracker is the preferred channel for [bug reports](#bug-reports), -[feature requests](#feature-requests) and [submitting pull -requests](#pull-requests), but please respect the following restrictions: - -- Please **do not** use the issue tracker for personal support requests. - Use [discussions](https://github.com/YOURLS/YOURLS/discussions) instead to ask the community for help. - -- Please **do not** derail or troll issues. - Keep the discussion on topic and respect the opinions of others. +Use it for bug reports, feature requests, and pull requests - but **not** for personal support (use [Discussions](https://github.com/YOURLS/YOURLS/discussions) instead). ## Bug reports -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! - -Guidelines for bug reports: - -1. **Use the GitHub issue search** - Check if the issue has already been reported. Reporting duplicates is a waste of - time for everyone. Search in **all issues**, open and closed. -2. **Check if the issue has been fixed** - Try to reproduce it using the latest `master` or development branch in the repository. - Maybe it has been fixed since the last stable release. -3. **Give details** - A good bug report shouldn't leave others needing to chase you up for more - information. Please try to be as detailed as possible in your report. - Give any information that is relevant to the bug: - - - YOURLS & MySQL & PHP versions - - Server Software - - Browser name & version - - What is the expected output? What do you see instead? See the report example below. - -4. **Isolate the problem** - Isolate the problem as much as you can, reduce to the bare minimum required to reproduce the issue. - Don't describe a general situation that doesn't work as expected and just count on us to pin - point the problem. +Before reporting: search existing issues (open and closed) and test against the latest `master`. A good report includes YOURLS/MySQL/PHP versions, expected vs actual output, and steps to reproduce the problem. ## Feature requests -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the YOURLS developers of the merits of this feature. Please -provide as much detail and context as possible. - -## Pull requests +YOURLS aims to stay lean and cover the needs of the vast majority of users - if a feature wouldn't be useful to nearly everyone, it probably belongs in a plugin rather than core. The plugin architecture is specifically designed for that. -Good pull requests - patches, improvements, new features - are a fantastic -help. They should remain focused in scope and avoid containing unrelated -commits. +Make sure your idea fits the project's scope, and provide context to make a strong case. -1. **Please ask first** - Before embarking on any significant pull request (e.g. implementing features, - refactoring code), otherwise you risk spending a lot of time working on - something that the developers might not want to merge into the project. -2. **Licensing** - By submitting a patch, you agree that your code will be licensed under the - [MIT License](https://github.com/YOURLS/YOURLS/blob/master/LICENSE) terms. -3. **Coding Standards** - Please adhere to the coding conventions used throughout the project (indentation, - comments, etc.). Make sure you've tested your patch under - different scenarios (various browsers, non default installation path, etc.). - -Adhering to the following this process is the best way to get your work -merged: - -1. [Fork the repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo), clone your fork, - and configure the remotes. - - ```bash - # Clone your fork of the repo into the current directory - git clone https://github.com// - # Navigate to the newly cloned directory - cd - # Assign the original repo to a remote called "upstream" - git remote add upstream https://github.com// - ``` - -2. If you cloned a while ago, get the latest changes from upstream. - - ```bash - git checkout - git pull upstream - ``` - -3. Create a new topic branch (off the main project development branch) to - contain your feature, change, or fix. - - ```bash - git checkout -b - ``` - -4. Commit your changes in logical chunks. Please adhere to these [git commit - message guidelines](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) - or your code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://docs.github.com/en/github/using-git/about-git-rebase) - feature to tidy up your commits before making them public. - -5. Locally merge (or rebase) the upstream development branch into your topic branch: - - ```bash - git pull [--rebase] upstream - ``` +## Pull requests -6. Push your topic branch up to your fork: +- It's better to ask before starting any significant work. +- Using AI ? Read our [AI_POLICY.md](AI_POLICY.md) +- Keep PRs focused - one concern per PR, and avoid unrelated changes such as whitespace fixes or rewording comments elsewhere in the codebase. +- Follow existing coding conventions. +- Unit tests are very welcome. +- Your code will be licensed under the [MIT License](https://github.com/YOURLS/YOURLS/blob/master/LICENSE). - ```bash - git push origin - ``` +Standard flow: fork → branch off `master` → commit in logical chunks → push → open PR and fill the template. -7. [Open a Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) - with a clear title and description. +## ❤️ Thank you ! \ No newline at end of file From bb0d0a3f43d7d904ae786b497d65e23a2cd29ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Mon, 11 May 2026 22:30:23 +0200 Subject: [PATCH 12/14] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Léo Colombaro --- .../ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md | 9 +++++---- CONTRIBUTING.md | 20 ++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md b/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md index b061ac6..95ea177 100644 --- a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md @@ -1,9 +1,10 @@ -Pre-requisites : -- [ ] I have read CONTRIBUTING.md -- [ ] I am using AI and have read AI_POLICY.md +## Pre-requisites +- [ ] I have read the [Contributing Guidelines](https://github.com/YOURLS/.github/blob/main/CONTRIBUTING.md) +- [ ] I am using AI and have read the [AI Policy](https://github.com/YOURLS/.github/blob/main/AI_POLICY.md) -## Description of your PR + +## Change Description diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cc26268..83a32c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,27 +2,33 @@ ## Issue tracker -Use it for bug reports, feature requests, and pull requests - but **not** for personal support (use [Discussions](https://github.com/YOURLS/YOURLS/discussions) instead). +Use the issue tracker for bug reports, feature requests, and pull requests. +Personal support must be discussed using [discussions space](https://github.com/orgs/YOURLS/discussions). ## Bug reports -Before reporting: search existing issues (open and closed) and test against the latest `master`. A good report includes YOURLS/MySQL/PHP versions, expected vs actual output, and steps to reproduce the problem. +Search existing issues (open and closed) before reporting. +Ensure the alleged behavior is observed on the latest version. +A good report includes YOURLS/MySQL/PHP versions, expected and actual behavior, and steps to reproduce the problem. ## Feature requests -YOURLS aims to stay lean and cover the needs of the vast majority of users - if a feature wouldn't be useful to nearly everyone, it probably belongs in a plugin rather than core. The plugin architecture is specifically designed for that. +YOURLS aims to stay lean and cover the needs of the vast majority of users. +If a feature wouldn't be useful to nearly everyone, it probably belongs in a plugin rather than core. +The [plugin architecture](https://yourls.org/docs/development/plugins) is designed to extend core behavior for the custom use cases. Make sure your idea fits the project's scope, and provide context to make a strong case. ## Pull requests - It's better to ask before starting any significant work. -- Using AI ? Read our [AI_POLICY.md](AI_POLICY.md) -- Keep PRs focused - one concern per PR, and avoid unrelated changes such as whitespace fixes or rewording comments elsewhere in the codebase. +- AI use must follow our [AI Policy](AI_POLICY.md). +- Keep pull requests focused. +- Limit pull requests to a single concern. +- Avoid unrelated changes such as whitespace fixes or rewording comments elsewhere in the codebase. - Follow existing coding conventions. - Unit tests are very welcome. - Your code will be licensed under the [MIT License](https://github.com/YOURLS/YOURLS/blob/master/LICENSE). -Standard flow: fork → branch off `master` → commit in logical chunks → push → open PR and fill the template. -## ❤️ Thank you ! \ No newline at end of file +❤️ Thank you ! \ No newline at end of file From 34b6aaba29032c276a21e9c891c4bb75d2f61a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Mon, 11 May 2026 22:55:34 +0200 Subject: [PATCH 13/14] Move PR template --- .../PULL_REQUEST_TEMPLATE.md => pull_request_template.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md => pull_request_template.md} (100%) diff --git a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md b/.github/pull_request_template.md similarity index 100% rename from .github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md rename to .github/pull_request_template.md From 2aafa015724cc040621f612f8af45253a1d20901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=BE=85=E0=BC=BB=20=C7=AC=C9=80=C4=A7=20=E0=BC=84?= =?UTF-8?q?=E0=BC=86=E0=BD=89?= Date: Tue, 12 May 2026 18:26:43 +0200 Subject: [PATCH 14/14] Update CONTRIBUTING.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Léo Colombaro --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83a32c1..ddfffb5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,4 +31,4 @@ Make sure your idea fits the project's scope, and provide context to make a stro - Your code will be licensed under the [MIT License](https://github.com/YOURLS/YOURLS/blob/master/LICENSE). -❤️ Thank you ! \ No newline at end of file +❤️ Thank you! \ No newline at end of file