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
Reviving this project #63
Comments
Great to hear this. Is there any way I could help you? I few years back I tried to fix some issues. But it was above my skills. But I might be able to help with testing. Looking forward to your great work. |
Great to hear this. I also want to help you with this project. I have relevant experience. I could take some tickets at work if you don't might? |
@tonerdo Any news about v2? |
@CrazyOrange, taking slightly longer than expected but I'm very much on top of it. Currently focused on improving method rewriting so we don't keep running into invalid program exceptions. I've also done some work to ensure I'm able to better diagnose that error if/when it occurs. What I'm currently trying to do now, is make the rewriting JIT intrinsic aware so it doesn't attempt to rewrite methods that are specially handled by the JIT |
I don't know if this is helpful at all, but have you heard of Harmony? I wonder if this could be used as a way of implementing the sealed method swap functionality. Concurrent tests obviously wouldn't work with this approach but using a mature project could make this lib considerably easier to maintain. |
Hi @tonerdo, |
@astallor Still working on a rewrite. Covid's kinda been getting in the way |
@tonerdo I don't know how to put this but this is probably the most necessary piece of infrastructure that .net is lacking. I spend half my career refactoring old code just so I can make it testable. Every day I'm confronted with a choice: refactor and risk breaking code that nobody cares about to make it testable, or not test it. I'm happy put some time in to this and I'm also happy write about it and make more people in the C#/.net community aware of this. I bet I can get people excited about this. A lot of people read my blog posts. Let me know if there's anything I can do to help you get to the next step. |
@tonerdo thank you so much for this amazing package. Are you still actively working on it? I would love support for async methods so I can use Pose across all my tests. Let me know if I can help in any way! |
It's official. I need help. |
@tonerdo what would be really helpful is if we had a few more examples of the basics. For example, I logged this one. If I could get this working, I might be able to make sense of the rest. If it's not working, perhaps you could make some guesses about what might be going wrong so we can investigate. |
I've been working on improving the code rewriting logic but the truth is, code patching is not a very sustainable way of achieving what this project aims to do. I need to rethink the overall implementation. |
May I ask when we can get an update? |
@tonerdo I have a working copy over at Miista/pose#2 (PR: Miista/pose#5). This includes all the latest changes from your master branch. I am also looking into adding more thorough tests in Miista/pose#4 |
Please refer to #80 cc: @duaneking @MelbourneDeveloper @jeffmdemers @astallor @mikernet @CrazyOrange @zamaleev @jonkeda @tonerdo |
For support for async/await please see Miista/pose#12 cc: @duaneking @MelbourneDeveloper @jeffmdemers @astallor @mikernet @CrazyOrange @zamaleev @jonkeda @tonerdo |
Hi. Apologies for the radio silence on this project. I had a bunch of other things that I had to deal with. I understand that this project is important to a lot of people and I've been actively trying to get myself back to a point where I can continue work on it.
The current implementation of this library is brittle and error prone (hence all the
InvalidProgramException
s). It also limites how much control I have over the developer experience. It is also (unintentionally) tied to a specific version of the .NET Core runtime (the one it was built and tested on). I'm currently in the process of rewriting the core of the library and improving how it handles method disassembly and rewriting.The new version will be a v2 and probably incompatible with the current version. I'll be taking into consideration each issue in this repo to ensure that they're all fixed at the time of release. I'm giving myself about ~1month to complete this rewrite of the new version and I'll drop new updates (or setbacks) on this issue thread
My apologies once again and thanks for your patience
cc @eduardocp @kristof12345 @pankaushik @jwdonahue @InsonusK @kostenray @aeslinger0 @AdamYoblick @mikernet @WillRock19 @dm-conti @mcintyre321 @Guy--L @binick @asherber @LucaGabi @radevop @rmanoher @StummeJ @Tarig0
The text was updated successfully, but these errors were encountered: