Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation request: maturity and guarantees #5

Open
pagrus7 opened this issue Sep 15, 2024 · 2 comments
Open

Documentation request: maturity and guarantees #5

pagrus7 opened this issue Sep 15, 2024 · 2 comments

Comments

@pagrus7
Copy link

pagrus7 commented Sep 15, 2024

Context
Mockio looks quite promising in the landscape of golang mocking tools. Mockio builds on go-dyno.
For someone considering adoption of these beyond pet projects, there is an important question: how mature, future-proof and supported go-dyno is.

Two challenges are on the path to answering this question:

  • Current docs describe go-dyno as "An attempt to bring java-like dynamic proxy to golang".
    • This language is not perfect for building confidence.
  • Proxy impl uses mixture of reflection/unsafe/assembly with no docs or external references.
    • It's not immediately obvious whether/where the impl is based on specs & guarantees vs non-guaranteed impl details.

Doc request
This issue asks for docs to address or clarify the points above. E.g.:

  1. Document the proxy impl, esp. guarantees and non-guarantees it relies on.
    • For guarantees, provide supporting references
  2. Update project description to reflect the most-recent level of confidence by maintainers.
    • Depends on outcome of (1)
    • IMO ideally (1) would allow the description along the lines of "Fully guaranteed go implementation of dynamic proxies. No code generation required. Up to 249 args per function. Validated with [list of architectures]. Powers Mockio [and more references if available]."
@ovechkin-dm
Copy link
Owner

Hi @pagrus7,
Thanks for pointing that out.

I agree that the "attempt" word is not very reassuring. The library itself was written as a proof of concept at first, and unfortunately the description haven't changed since the start.
But now I am confident that I can support this library in a long run.
Since mockio is in a decent state for now (no major bugs, and all necessary features are present), I think I will focus on go-dyno for the next months.

Here is what I aim to do:

  • Add github workflows
  • More test coverage
  • Documentation page similar to mockio docs (including full description of what language/ABI features have been used, and the possibility of breaking changes for them)

Right now there is only a brief description about supporting new go versions here:
https://ovechkin-dm.github.io/mockio/latest/limitations/

@ovechkin-dm
Copy link
Owner

#6
#7
#8

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

No branches or pull requests

2 participants