Skip to content

Share one payjoin concept description across READMEs - #1864

Open
chavic wants to merge 2 commits into
payjoin:masterfrom
chavic:chavic/shared-readme-concept
Open

Share one payjoin concept description across READMEs#1864
chavic wants to merge 2 commits into
payjoin:masterfrom
chavic:chavic/shared-readme-concept

Conversation

@chavic

@chavic chavic commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Closes #1772.

Keeps the conceptual description of payjoin in one file, payjoin-ffi/CONCEPT.md, and copies it into a marked block of each package README (python, dart, javascript, C#) plus the top-level payjoin-ffi/README.md, replacing the per-package variants that had already drifted (only the C# README carried the full paragraph; the others had none, and the top-level README had a third wording).

Since every registry (PyPI readme=, NuGet PackageReadmeFile, npm, pub.dev) publishes the checked-in README.md as-is, the text is materialized rather than referenced: payjoin-ffi/contrib/sync-concept.sh rewrites the block between <!-- concept:begin … --> / <!-- concept:end --> markers, and its --check mode reports drift from CONCEPT.md for anyone who wants to verify (not wired into CI, per review). The sync output is a fixpoint with nix fmt (prettier's blank-line padding around HTML comments is emitted by the script).

Wording follows the issue's three parts and the framing pinned in the #1764 review: it opens with the BIP 77 abstract sentence ("Payjoin lets Bitcoin senders and receivers interact to make batched transactions"), states the privacy consequence as preserving privacy by poisoning the common-input-ownership heuristic, and points to BIP 78, BIP 77, and payjoindevkit.org. The C# README keeps its native-libraries note as language-specific text outside the block. The draft C++ bindings (#1827) can adopt the same block when they land.

Disclosure: co-authored by Claude Fable

@coveralls

coveralls commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 34614336532

Coverage remained the same at 86.646%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 16549
Covered Lines: 14339
Line Coverage: 86.65%
Coverage Strength: 341.44 hits per line

💛 - Coveralls

@chavic
chavic force-pushed the chavic/shared-readme-concept branch from 9726804 to ee3e3ac Compare September 9, 2026 19:53

@benalleng benalleng left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CACK Make sure to take out Claude co-authorship from your commits please

@caarloshenriq caarloshenriq left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK

+1 on @benalleng's point to drop Co-Authored-By from the commits. Also worth dropping the Claude-Session: trailer on both commits while rebasing

@spacebear21 spacebear21 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a lot of plumbing for READMEs, couldn't we just link to the payjoin.org site or the BIPs directly in each README file?

@chavic

chavic commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator Author

This seems like a lot of plumbing for READMEs, couldn't we just link to the payjoin.org site or the BIPs directly in each README file?

Yeah, initially made me think if there's a better way to manage all package descriptions 🤔

We could just copy paste once and remember to synchronize the descriptions with the bip content too

@chavic
chavic force-pushed the chavic/shared-readme-concept branch from ee3e3ac to 7ede940 Compare September 11, 2026 08:02
Comment thread payjoin-ffi/csharp/README.md Outdated
Comment on lines +14 to +19
These bindings implement both
[BIP 78](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki)
(synchronous payjoin) and
[BIP 77](https://github.com/bitcoin/bips/blob/master/bip-0077.md)
(asynchronous payjoin, where sender and receiver exchange the transaction
through an untrusted directory and never need to be online at the same

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefer to use the titles of the BIPs "Simple Payjoin" and "Async Payjoin"

Package READMEs each describe payjoin in their own words and the
descriptions drift apart; a correction to one does not correct the
others (payjoin#1772). Keep the conceptual text in one file,
payjoin-ffi/CONCEPT.md, with a script that copies it into a marked
block of each README and a --check mode that reports drift.

The text follows the BIP 77 abstract's framing preferred in the
review of payjoin#1764: senders and receivers interact to make batched
transactions, with the privacy consequence stated as preserving
privacy by poisoning the common-input-ownership heuristic, and it
links the BIPs by their titles, Simple Payjoin and Async Payjoin.
Insert the synced concept block into the python, dart, javascript
and C# package READMEs and the top-level payjoin-ffi README, all
generated by payjoin-ffi/contrib/sync-concept.sh. The C# README's
paragraph is replaced by the shared block, keeping its
native-libraries note as C#-specific text, and the top-level
mission paragraph is replaced likewise.
@chavic

chavic commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator Author

This seems like a lot of plumbing for READMEs, couldn't we just link to the payjoin.org site or the BIPs directly in each README file?

I dropped the heavier CI drift checks, the light script is what's left

@chavic
chavic force-pushed the chavic/shared-readme-concept branch from 7ede940 to b35c0a7 Compare September 11, 2026 15:08
@chavic
chavic requested a review from spacebear21 September 11, 2026 15:32
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.

Share one conceptual description of payjoin across the package READMEs

6 participants