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

New driver for the push up method refactoring (P13) #16637

Open
wants to merge 14 commits into
base: Pharo13
Choose a base branch
from

Conversation

carolahp
Copy link
Contributor

@carolahp carolahp commented May 14, 2024

Summary

Implements driver for handling the user interaction logic when applying the push up method refactoring.
Tests are created for the new ReConditions
Replaces PR#16438
Depends on Spec PR#1548

About the architecture

  • In this Video I explain two proposed concepts to be considered in the architecture of refactorings in general.

@Ducasse
Copy link
Member

Ducasse commented May 14, 2024

Hi caro this is nice to have you back on that.
@balsa-sarenac will certainly have a look. let us when you need feedback

@Ducasse
Copy link
Member

Ducasse commented May 31, 2024

Hi @carolahp let us know when you want a review.

@carolahp carolahp marked this pull request as ready for review June 6, 2024 10:44
@carolahp
Copy link
Contributor Author

carolahp commented Jun 6, 2024

Hi @Ducasse and @balsa-sarenac , I would appreciate your review on this PR.
In particular I would like to discuss the 'fixable' and 'unfixable' breaking conditions that I explain in the video referred in the PR description

@MarcusDenker
Copy link
Member

There are lots of failing tests:

[osx-64 / Tests-osx-64 / MacOSX64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.PharoDocComment.Tests/CommentTestCase/osx_64___Tests_osx_64___nil/)
[osx-64 / Tests-osx-64 / MacOSX64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.PharoDocComment.Tests/CommentTestCase/osx_64___Tests_osx_64___nil_2/)
[osx-64 / Tests-osx-64 / MacOSX64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.PharoDocComment.Tests/CommentTestCase/osx_64___Tests_osx_64___nil_3/)
[osx-64 / Tests-osx-64 / MacOSX64.UnifiedFFI.Tests.FFIAutoReleaseOptionCalloutTest.testExternalStructure](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.UnifiedFFI.Tests/FFIAutoReleaseOptionCalloutTest/osx_64___Tests_osx_64___testExternalStructure/)
[osx-64 / Tests-osx-64 / MacOSX64.UnifiedFFI.Tests.FFIAutoReleaseOptionCalloutTest.testVoidPointer](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.UnifiedFFI.Tests/FFIAutoReleaseOptionCalloutTest/osx_64___Tests_osx_64___testVoidPointer/)
[unix-64 / Tests-unix-64 / Unix64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/Unix64.PharoDocComment.Tests/CommentTestCase/unix_64___Tests_unix_64___nil/)
[unix-64 / Tests-unix-64 / Unix64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/Unix64.PharoDocComment.Tests/CommentTestCase/unix_64___Tests_unix_64___nil_2/)
[unix-64 / Tests-unix-64 / Unix64.PharoDocComment.Tests.CommentTestCase.nil](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/Unix64.PharoDocComment.Tests/CommentTestCase/unix_64___Tests_unix_64___nil_3/)
[osx-64 / Tests-osx-64 / MacOSX64.Collections.Sequenceable.Tests.ArrayTest.testShuffleBy](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Collections.Sequenceable.Tests/ArrayTest/osx_64___Tests_osx_64___testShuffleBy/)
[osx-64 / Tests-osx-64 / MacOSX64.Collections.Support.Tests.CollectionTest.testAtRandomWeighting](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Collections.Support.Tests/CollectionTest/osx_64___Tests_osx_64___testAtRandomWeighting/)
[osx-64 / Tests-osx-64 / MacOSX64.Collections.Support.Tests.CollectionTest.testAtRandomWeightingMultiple](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Collections.Support.Tests/CollectionTest/osx_64___Tests_osx_64___testAtRandomWeightingMultiple/)
[osx-64 / Tests-osx-64 / MacOSX64.Kernel.Extended.Tests.UnicodeTest.testRNG](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Kernel.Extended.Tests/UnicodeTest/osx_64___Tests_osx_64___testRNG/)
[osx-64 / Tests-osx-64 / MacOSX64.Network.Tests.UUIDPrimitivesTest.testCreationNodeBased](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Network.Tests/UUIDPrimitivesTest/osx_64___Tests_osx_64___testCreationNodeBased/)
[osx-64 / Tests-osx-64 / MacOSX64.RTree.Tests.RTreeTest.testRemoveLeaf1](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.RTree.Tests/RTreeTest/osx_64___Tests_osx_64___testRemoveLeaf1/)
[osx-64 / Tests-osx-64 / MacOSX64.Random.Tests.RandomTest.testDistribution](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Random.Tests/RandomTest/osx_64___Tests_osx_64___testDistribution/)
[osx-64 / Tests-osx-64 / MacOSX64.Random.Tests.RandomTest.testPrimitiveRandomGeneration1](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Random.Tests/RandomTest/osx_64___Tests_osx_64___testPrimitiveRandomGeneration1/)
[osx-64 / Tests-osx-64 / MacOSX64.Random.Tests.RandomTest.testPrimitiveRandomGeneration2](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Random.Tests/RandomTest/osx_64___Tests_osx_64___testPrimitiveRandomGeneration2/)
[osx-64 / Tests-osx-64 / MacOSX64.Random.Tests.RandomTest.testPrimitiveRandomGeneration3](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Random.Tests/RandomTest/osx_64___Tests_osx_64___testPrimitiveRandomGeneration3/)
[osx-64 / Tests-osx-64 / MacOSX64.Roassal.Global.Tests.RSForceBasedLayoutTest.testAddNodesAndEdges](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Roassal.Global.Tests/RSForceBasedLayoutTest/osx_64___Tests_osx_64___testAddNodesAndEdges/)
[osx-64 / Tests-osx-64 / MacOSX64.Roassal.Global.Tests.RSRTreeTest.testRemoveLeaf1](https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/PR-16637/6/testReport/junit/MacOSX64.Roassal.Global.Tests/RSRTreeTest/osx_64___Tests_osx_64___testRemoveLeaf1/)

@carolahp
Copy link
Contributor Author

carolahp commented Jun 6, 2024

Related breaking tests are due to modifications to RBPullUpMethodRefactoring preconditions and breaking changes. I am checking the best way to solve the issues without modifying tests

@Ducasse
Copy link
Member

Ducasse commented Jun 8, 2024

@carolahp I would like to understand the difference between an unfixable case and a precondition that is violated.
To me if the case is unfixable then it means that we should not apply the refactoring.

@carolahp
Copy link
Contributor Author

@carolahp I would like to understand the difference between an unfixable case and a precondition that is violated. To me if the case is unfixable then it means that we should not apply the refactoring.

@Ducasse the only difference is that an unfixable case is associated with a choice, for example "browse overriden method". However, I didn't think before that it may be simpler to just make these "unfixable cases" into preconditions.

I will update the PR to do this

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.

None yet

3 participants