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

Reviving this project #63

Open
tonerdo opened this issue Jul 19, 2020 · 16 comments · May be fixed by Miista/pose#29
Open

Reviving this project #63

tonerdo opened this issue Jul 19, 2020 · 16 comments · May be fixed by Miista/pose#29

Comments

@tonerdo
Copy link
Owner

tonerdo commented Jul 19, 2020

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 InvalidProgramExceptions). 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

@jonkeda
Copy link

jonkeda commented Jul 21, 2020

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.

@zamaleev
Copy link

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?

@CrazyOrange
Copy link

@tonerdo Any news about v2?

@tonerdo
Copy link
Owner Author

tonerdo commented Nov 18, 2020

@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

@mikernet
Copy link

mikernet commented Dec 3, 2020

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.

@astallor
Copy link

astallor commented Feb 4, 2021

Hi @tonerdo,
Can I ask for an update on the status of rewrite?
Is this project dead after all? That would be a shame since there is such potential.

@tonerdo
Copy link
Owner Author

tonerdo commented Feb 27, 2021

@astallor Still working on a rewrite. Covid's kinda been getting in the way

@MelbourneDeveloper
Copy link

@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.

@jeffmdemers
Copy link

@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!

@tonerdo
Copy link
Owner Author

tonerdo commented Nov 21, 2021

It's official. I need help.

@MelbourneDeveloper
Copy link

@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.

@tonerdo
Copy link
Owner Author

tonerdo commented Nov 21, 2021

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.

@duaneking
Copy link

May I ask when we can get an update?

@Miista
Copy link

Miista commented Jan 13, 2024

@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

cc: @duaneking @jeffmdemers @astallor

@Miista
Copy link

Miista commented Jan 24, 2024

@Miista
Copy link

Miista commented Jan 27, 2024

@Miista Miista linked a pull request Jan 28, 2024 that will close this issue
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 a pull request may close this issue.

10 participants