diff --git a/Cargo.toml b/Cargo.toml index f1142a6..89b0164 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,8 +6,8 @@ edition = "2021" readme = "README.md" license = "MIT" authors = ["spencerwooo "] -homepage = "https://github.com/spencerwooo/mihoro" -repository = "https://github.com/spencerwooo/mihoro" +homepage = "https://github.com/Pectics/mihoto" +repository = "https://github.com/Pectics/mihoto" keywords = ["cli", "clash", "network", "linux", "mihomo"] categories = ["command-line-utilities"] diff --git a/NOTICE.md b/NOTICE.md new file mode 100644 index 0000000..eab818b --- /dev/null +++ b/NOTICE.md @@ -0,0 +1,32 @@ +# Mihoto Fork Notice + +Mihoto is a fork of [spencerwooo/mihoro](https://github.com/spencerwooo/mihoro), +the Rust-based Mihomo CLI client for Linux. + +The fork keeps the upstream Git history and the original MIT license text in +`LICENSE`. The original copyright notice remains: + +```text +Copyright (c) 2023 Spencer (Shangbo Wu) +``` + +## Fork Baseline + +- Upstream repository: `spencerwooo/mihoro` +- Fork repository: `Pectics/mihoto` +- Upstream baseline tag: `mihoro-v0.14.0-base` +- Baseline commit: `e31827ed257e7ce97217cd0a2dbcd1ef96dbac7f` +- Baseline upstream release: `v0.14.0` + +The `mihoro-v0.14.0-base` tag marks the upstream release baseline used to start +Mihoto governance work. It is intended to be immutable. + +## Attribution Policy + +- Preserve upstream Git history whenever possible. +- Preserve upstream authorship when porting commits. +- Prefer `git cherry-pick -x` when taking code from upstream commits. +- Reference upstream issues or pull requests in Mihoto issues and PRs when they + motivate a change. +- Keep mechanical rename work separate from behavior changes and architecture + changes. diff --git a/README.md b/README.md index 6c7a3a1..f6bb765 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@
mihoro banner
- - CI + + CI - - Release + + Release - - GitHub release (latest by date) + + GitHub release (latest by date)
@@ -16,6 +16,12 @@ **mihoro** - The đŸ¦€ Rustâ„¢-based [Mihomo](https://github.com/MetaCubeX/mihomo) CLI client on Linux. +Mihoto is a safety-focused fork of [spencerwooo/mihoro](https://github.com/spencerwooo/mihoro). +The inherited CLI, binary, package, and config names remain `mihoro` until +dedicated rename PRs change them. See [NOTICE.md](NOTICE.md) and +[docs/fork-baseline.md](docs/fork-baseline.md) for fork attribution, the +`mihoro-v0.14.0-base` baseline tag, and CI expectations. + - Setup, update, apply overrides, and manage with systemd. **No more, no less.** - No root privilege required. Maintains per-user instance. - First-class support for config subscription. @@ -24,6 +30,9 @@ ## Install +Until Mihoto publishes its own release artifacts, the install commands below +continue to install upstream `mihoro` release builds. + ```shell curl -fsSL https://raw.githubusercontent.com/spencerwooo/mihoro/main/install.sh | sh ``` @@ -252,4 +261,5 @@ Web-based dashboards require enabling `external_controller` under `[mihomo_confi ## License -[MIT](LICENSE) +[MIT](LICENSE). Mihoto preserves the upstream Mihoro license and author +attribution; see [NOTICE.md](NOTICE.md). diff --git a/docs/fork-baseline.md b/docs/fork-baseline.md new file mode 100644 index 0000000..da32a4d --- /dev/null +++ b/docs/fork-baseline.md @@ -0,0 +1,61 @@ +# Fork Baseline and CI Policy + +Mihoto starts as a safety-focused fork of +[spencerwooo/mihoro](https://github.com/spencerwooo/mihoro). This document fixes +the fork provenance, naming boundary, and CI expectations for early Mihoto work. + +## Provenance + +- `origin` is `Pectics/mihoto`. +- `upstream` is `spencerwooo/mihoro`. +- `mihoro-v0.14.0-base` marks upstream `v0.14.0` at commit + `e31827ed257e7ce97217cd0a2dbcd1ef96dbac7f`. +- The baseline tag is intended to be immutable. Do not move or force-update it. +- Ported upstream code should preserve authorship and include upstream references + in issues, commits, or PR descriptions. + +## Rename Matrix + +Mihoto is the fork and roadmap name. The inherited CLI remains `mihoro` until a +dedicated rename PR changes each surface deliberately. + +| Surface | Current value | Baseline decision | +| --- | --- | --- | +| GitHub repository | `Pectics/mihoto` | Fork identity | +| Upstream repository | `spencerwooo/mihoro` | Attribution and sync source | +| Cargo package | `mihoro` | Keep until mechanical rename | +| Binary | `mihoro` | Keep until mechanical rename | +| Config file | `~/.config/mihoro.toml` | Keep until migration plan exists | +| User agent | `mihoro` | Keep until compatibility impact is reviewed | +| systemd service | `mihomo.service` | Keep; it manages Mihomo core | +| Release assets | `mihoro--.tar.gz` | Keep until release rename plan | + +Rename work must be split from behavior changes so that user-visible migrations +can be reviewed, tested, and rolled back independently. + +## CI and Branch Protection Expectations + +All Mihoto implementation work should use issue-linked pull requests against +`main`. The protected CI baseline is the `CI` workflow with these checks: + +- `cargo fmt --all -- --check` +- `cargo clippy` +- `cargo check --all-targets` +- `cargo test --all-targets` + +Branch protection is a repository setting, not a source-controlled file. The +expected GitHub setting for `main` is to require PRs and the `CI` status before +merge. If branch protection is changed, record that change in the linked issue or +PR. + +## Safety Baseline + +Early Mihoto work follows these rules: + +- Updates, service changes, TUN/DNS changes, and migrations must be explicit, + validated, auditable, and recoverable. +- Subscription URLs, secrets, and authentication material must not appear in + logs, issues, or PR artifacts. +- Documentation-only PRs should say why no runtime tests were added. +- Rollback for documentation-only changes is a normal revert. The baseline tag + should not be deleted or moved as part of rollback.