diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index befdbbcb..95ed216c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,4 +16,12 @@ If you use generative AI tools as an aid in developing code, ensure that you ful Make sure you have added value based on your personal competency to your contributions. Just taking some input, feeding it to an AI and posting the result is not of value to the project. We reserve the right to rigorously reject seemingly AI generated low-value contributions. -Maintainers may close issues and PRs that are not useful or productive, including those that are fully generated by AI. If a contributor repeatedly opens unproductive issues or PRs, they may be blocked. \ No newline at end of file +Maintainers may close issues and PRs that are not useful or productive, including those that are fully generated by AI. If a contributor repeatedly opens unproductive issues or PRs, they may be blocked. + +## Cross-references & upstream links + +This repository shares history with upstream `commetchat/commet` but is not a registered fork. Writing the upstream slug glued to an issue number (`commetchat/commet#123`), or an upstream issue/PR URL (`github.com/commetchat/commet/issues/123`), into **any GitHub issue body, pull-request description, commit message, or comment** creates cross-reference notifications in the upstream repo. Upstream has asked us to stop, because this is unnecessary spam for them. + +- When you must cite an upstream ticket, write it as plain backticked text like `` `#123 (upstream)` `` — **never** `owner/repo#N` and **never** a URL. +- Reference **this** repo's own issues normally with `#N`. +- The roadmap automation (`scripts/create_issues.py`) follows the same rule. \ No newline at end of file diff --git a/ROADMAP.md b/ROADMAP.md index 3b63c717..b85b697d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -5,7 +5,24 @@ > domains) against the **86 open issues** in the upstream tracker > (`commetchat/commet`) and against feature parity with mature Matrix clients > (Element / Element X, FluffyChat, SchildiChat, Cinny) and modern chat apps. -> Issue numbers below (`#NNN`) reference the upstream GitHub tracker. +> +> ### ⚠️ Cross-reference policy — never link upstream +> The `#NNN` numbers in this document are **upstream commetchat/commet tracker +> numbers, recorded only as private context for this fork.** Keep them in backticks. +> They must **never** leave this file as a GitHub link: +> +> - **Do NOT** write the upstream repo slug glued directly to an issue number +> (the `commetchat/commet` + `#123` form), and do **NOT** write any +> `github.com/commetchat/commet/issues/N` or `/pull/N` URL, into a GitHub +> **issue body, pull-request description, commit message, or comment.** GitHub +> turns those into cross-reference notifications that spam the upstream repo +> (upstream asked us to stop — see their tracker, issue #248). +> - **Safe convention instead:** when an issue/PR/commit/comment needs to cite an +> upstream ticket, write it as plain backticked text `` `#NNN (upstream)` `` — +> never as `owner/repo#N`, never as a URL. A backticked `` `#NNN` `` renders as +> inert text and never notifies upstream, so it is safe. +> - **Automation** (`scripts/create_issues.py`) must emit refs the same way: +> backticked, no `commetchat/commet` prefix, no upstream URLs. Commet already has a remarkably **broad** feature surface — E2EE, threads, spaces, polls, Element Call, custom emoji/stickers, GIF search, read receipts, typing @@ -440,6 +457,8 @@ viewer · offline key export · low-priority tag · mark-all-as-read. --- -*Generated from a multi-agent audit of the codebase + open-issue tracker. Issue -numbers reference `github.com/commetchat/commet`. Re-run the analysis as the tracker -and code evolve.* +*Generated from a multi-agent audit of the codebase + open-issue tracker. The +backticked `#NNN` are upstream tracker numbers kept as context only — never write +them as the `commetchat/commet`+`#N` form or as an upstream URL into any +issue/PR/commit/comment (see the Cross-reference policy at the top of this file). +Re-run the analysis as the tracker and code evolve.* diff --git a/commet/lib/config/preferences.dart b/commet/lib/config/preferences.dart index ff481339..099ad7e0 100644 --- a/commet/lib/config/preferences.dart +++ b/commet/lib/config/preferences.dart @@ -364,7 +364,7 @@ class Preferences { BoolPreference tenorGifSearchEnabled = BoolPreference("enable_tenor_gif_search", defaultValue: false); - //Workaround for: https://github.com/commetchat/commet/issues/202 + //Workaround for upstream commetchat/commet tracker issue 202 BoolPreference stickerCompatibilityMode = BoolPreference("sticker_compatibility_mode", defaultValue: true); diff --git a/commet/lib/ui/organisms/home_screen/non_space_rooms_list.dart b/commet/lib/ui/organisms/home_screen/non_space_rooms_list.dart index 9f81eb3f..4ff51a25 100644 --- a/commet/lib/ui/organisms/home_screen/non_space_rooms_list.dart +++ b/commet/lib/ui/organisms/home_screen/non_space_rooms_list.dart @@ -10,8 +10,8 @@ import 'package:intl/intl.dart'; import 'package:tiamat/tiamat.dart' as tiamat; /// Lists the rooms that aren't part of any space (and aren't direct messages), -/// for the "Rooms" view reached from the navigation rail (#13 / -/// commetchat/commet#836). It mirrors how [ImportantRoomsList] shows favourites +/// for the "Rooms" view reached from the navigation rail (see `#13`; upstream +/// tracker `#836`). It mirrors how [ImportantRoomsList] shows favourites /// and DMs in the same picker column. /// /// Rooms come from `ClientManager.singleRooms`, which honours the account diff --git a/commet/lib/ui/pages/fatal_error/fatal_error_page.dart b/commet/lib/ui/pages/fatal_error/fatal_error_page.dart index a96fbabb..5e3eebd9 100644 --- a/commet/lib/ui/pages/fatal_error/fatal_error_page.dart +++ b/commet/lib/ui/pages/fatal_error/fatal_error_page.dart @@ -80,7 +80,7 @@ ${trace.toString()} void onReportButtonPressed() async { var data = await getErrorData(); - var uri = Uri.https("github.com", "/commetchat/commet/issues/new", { + var uri = Uri.https("github.com", "/Deniel9204/MyCommet/issues/new", { "title": "Fatal error occurred on app startup", "body": data, "labels": "bug", diff --git a/commet/lib/ui/pages/settings/categories/about/settings_category_about.dart b/commet/lib/ui/pages/settings/categories/about/settings_category_about.dart index f184f3a6..c6c91906 100644 --- a/commet/lib/ui/pages/settings/categories/about/settings_category_about.dart +++ b/commet/lib/ui/pages/settings/categories/about/settings_category_about.dart @@ -65,7 +65,7 @@ class SettingsCategoryAbout implements SettingsCategory { text: "Source Code", recognizer: TapGestureRecognizer() ..onTap = () => LinkUtils.open( - Uri.parse("https://github.com/commetchat/commet"), + Uri.parse("https://github.com/Deniel9204/MyCommet"), context: context)), ), const tiamat.Text.label(" · "), @@ -76,7 +76,7 @@ class SettingsCategoryAbout implements SettingsCategory { recognizer: TapGestureRecognizer() ..onTap = () => LinkUtils.open( Uri.parse( - "https://github.com/commetchat/commet/blob/main/LICENSE"), + "https://github.com/Deniel9204/MyCommet/blob/main/LICENSE"), context: context)), ), const tiamat.Text.label(" · "), diff --git a/commet/lib/ui/pages/settings/categories/developer/log_page.dart b/commet/lib/ui/pages/settings/categories/developer/log_page.dart index 7da89897..7ae8eab1 100644 --- a/commet/lib/ui/pages/settings/categories/developer/log_page.dart +++ b/commet/lib/ui/pages/settings/categories/developer/log_page.dart @@ -205,7 +205,7 @@ class _LogPageState extends State { Future reportIssue(LogEntryException entry) async { var data = await getErrorData(entry); - var uri = Uri.https("github.com", "/commetchat/commet/issues/new", { + var uri = Uri.https("github.com", "/Deniel9204/MyCommet/issues/new", { "title": entry.content.split("\n").first, "body": data, "labels": "bug", diff --git a/docs/development.md b/docs/development.md index 79cceba1..7c2f6fa6 100644 --- a/docs/development.md +++ b/docs/development.md @@ -117,7 +117,7 @@ These are handled by the repo — listed so you know what's going on: `macos/Runner/{Release,DebugProfile}.entitlements`. - **WebRTC-SDK pod conflict** — `flutter_webrtc` and `livekit_client` pin different `WebRTC-SDK` patch versions; `macos/Podfile` re-aligns them at - pod-install time. Tracked in issue #196 (remove the workaround once upstream + pod-install time. Tracked in issue `#196` (remove the workaround once upstream aligns). - **E2EE** — vodozemac is initialized via the native `flutter_vodozemac` framework on macOS (not the wasm path). diff --git a/scripts/create_issues.py b/scripts/create_issues.py index b1bf71d6..caa16b2e 100644 --- a/scripts/create_issues.py +++ b/scripts/create_issues.py @@ -12,7 +12,12 @@ DRY_RUN If set (and no GH_TOKEN), only prints what would be created. START_AT 1-based index to resume from (skips already-created issues on re-run). -Upstream issue refs (#NNN) point at github.com/commetchat/commet. +The `#NNN` refs below are upstream commetchat/commet tracker numbers, kept ONLY as +private context for this fork. They must never be written into a posted issue body +as `commetchat/commet#NNN` or as a github.com/commetchat/commet/... URL: GitHub turns +those into cross-reference notifications that spam the upstream repo. This script +therefore emits them as inert backticked text (`#NNN`) that never links anywhere. +See the cross-reference policy in ROADMAP.md / CONTRIBUTING.md. """ import json import os @@ -26,7 +31,6 @@ DRY_RUN = bool(os.environ.get("DRY_RUN")) or not TOKEN START_AT = int(os.environ.get("START_AT", "1")) API = "https://api.github.com" -UPSTREAM = "commetchat/commet" # --------------------------------------------------------------------------- # Labels (name -> color). Pre-created so issue creation never fails on a label. @@ -263,11 +267,15 @@ def req(method, path, body=None): def body_for(issue): title, kind, prio, area, refs, desc = issue - ref_txt = ", ".join(f"{UPSTREAM}#{n}" for n in refs) if refs else "_none (parity/architecture gap)_" + # Emit upstream tracker numbers as inert backticked text only. Never glue the + # `commetchat/commet` slug onto `#N` and never use an upstream URL here: that + # creates cross-reference notifications that spam the upstream repo. + ref_txt = ", ".join(f"`#{n}`" for n in refs) if refs else "_none (parity/architecture gap)_" return (f"{desc}\n\n" f"**Type:** {kind} · **Priority:** {prio} · **Area:** {area}\n\n" - f"**Related upstream issues:** {ref_txt}\n\n" - f"Auto-generated from `ROADMAP.md`.") + f"**Upstream tracker refs (context only — not links):** {ref_txt}\n\n" + f"Auto-generated from `ROADMAP.md`. Refs are upstream commetchat/commet " + f"tracker numbers kept as context; they are intentionally not linked.") def labels_for(issue):