Skip to content

Relicense to MIT OR Apache-2.0, following upstream; release 1.0.0 - #10

Merged
Rick-Wilson merged 2 commits into
mainfrom
relicense-and-1.0.0
Aug 24, 2026
Merged

Relicense to MIT OR Apache-2.0, following upstream; release 1.0.0#10
Rick-Wilson merged 2 commits into
mainfrom
relicense-and-1.0.0

Conversation

@Rick-Wilson

Copy link
Copy Markdown
Collaborator

Relicense

Upstream relicensed in dc2d4df (2026-08-14), GPL-2.0 → MIT OR Apache-2.0, at the owner's own hand. The GPL obligation this project inherited in 3e9a802 came solely from that upstream licence, so it falls away with it.

Matching upstream's pairing rather than picking our own: it passes the grant through undiminished instead of narrowing what downstream users get, and MIT OR Apache-2.0 is what crates.io consumers expect.

  • LICENSE (GPL-2.0) removed; LICENSE-MIT and LICENSE-APACHE added
  • LICENSE-APACHE's licence body is byte-identical to upstream's for all 176 lines; only the appendix differs
  • Both files carry Hanhong Xue's copyright notice alongside this project's — his own name and the years he asserts (2013-2026), not his GitHub handle, since MIT and Apache-2.0 §4(a)–(c) require the notice be retained as given
  • Upstream ships no NOTICE file, so Apache-2.0 §4(d) carries nothing forward
  • No per-file headers, still matching upstream's practice

Provenance comments are untouched and now read as attribution rather than evidence: the Port of macroxue/bridge-solver lines, the 64 C++ correspondence comments, and the note on the deliberately replicated upstream Have(Cards) defect.

1.0.0

The manifests had drifted — crate at 0.5.0 after #8, wasm bindings and web app still at 0.4.0. All four are now 1.0.0, with both Cargo.locks and package-lock.json regenerated. The committed Cargo.lock still pins internal crates to git+https sources, no local-path entries.

Checks

cargo fmt clean · clippy clean at -D warnings · 69 Rust tests · 183 web tests

🤖 Generated with Claude Code

Rick-Wilson and others added 2 commits August 24, 2026 11:57
Upstream relicensed in macroxue/bridge-solver dc2d4df (2026-08-14), from
GPL-2.0 to MIT OR Apache-2.0, at the owner's own hand. The GPL obligation this
project inherited in 3e9a802 came solely from that upstream licence, so it
falls away with it.

Matching upstream's pairing rather than picking our own: it passes his grant
through undiminished instead of narrowing what downstream users get, and
MIT OR Apache-2.0 is what crates.io consumers expect.

  LICENSE           removed (GPL-2.0 text)
  LICENSE-MIT       new
  LICENSE-APACHE    new; stock Apache-2.0, body byte-identical to upstream's
  Cargo.toml        license = "MIT OR Apache-2.0"
  wasm/Cargo.toml   likewise
  README.md         licence section rewritten
  web/src/App.vue   footer

Both licence files carry Hanhong Xue's copyright notice as well as this
project's. MIT requires the notice be retained and Apache-2.0 s4(a)-(c) the
same, so his is reproduced with the years he asserts (2013-2026) and his own
name, not his GitHub handle. Upstream ships no NOTICE file, so Apache-2.0
s4(d) carries nothing forward. No per-file headers, still matching upstream.

The provenance comments are untouched and now read as attribution rather than
evidence: the "Port of macroxue/bridge-solver" lines in src/lib.rs and
Cargo.toml, the 64 comments recording correspondence with specific C++
functions, and the note in src/search.rs on the deliberately replicated
upstream Have(Cards) defect.

Not addressed here: the v0.4.0 release archives bundle the GPL-2.0 text and
are now stale in the other direction.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The three manifests had drifted apart — the crate was at 0.5.0 after #8 while
the wasm bindings and the web app were still on 0.4.0, having last moved
together at 0.4.0. Bringing all of them to 1.0.0 puts the whole project back on
a single number and makes the release tag mean the same thing everywhere.

1.0.0 rather than another 0.x: the licence is now settled and permissive, the
PBN annotation pass in #8 completed the CLI, and the public surface is one
worth committing to.

Both Cargo.lock files and web/package-lock.json are regenerated to match. The
committed Cargo.lock still pins the internal crates to git+https sources, with
no local-path entries.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Rick-Wilson
Rick-Wilson merged commit e6c0a5d into main Aug 24, 2026
7 checks passed
@Rick-Wilson
Rick-Wilson deleted the relicense-and-1.0.0 branch August 24, 2026 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant