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

Draft: Final python2 version #861

Merged
merged 165 commits into from
Mar 1, 2022

Conversation

vahidm1993
Copy link
Contributor

@vahidm1993 vahidm1993 commented Feb 18, 2022

Summary of pull request to merge in new features developed at Agile Robots AG.

Diff to the old pull request:

  • Making printings in 'LoggingView' asynchronous to avoid GUI freezing
  • Defining a new GUI config called 'MAX_LOGGING_BUFFER_LINES' that determines the maximum lines of the logging buffer

Open TODOs before the pr can be merged:

  • ...

Open TODOs after the pr:

  • release missing versions on pypi

vahidm1993 and others added 30 commits February 15, 2022 17:01
as the docker build host is still too slow
* transitions and data-flows are now deleted automatically if
"LIBRARY_RECOVERY_MODE" is set to true
* if "LIBRARY_RECOVERY_MODE" is set to false you won't be able load
broken state machines (DAU-securing-mechanism)
* the default value of "LOAD_SM_WITH_CHECKS" is set to true; this means
that consistency checks are now enabled per default; only set it to true
if you are sure that no library interfaces changes were performed
to avoid segfault when setting the "gtk-theme-name"
@franzlst
Copy link
Member

There is no pressure from my side, I just want to ensure that I don't review a pull request that still receives commits :-)

@franzlst
Copy link
Member

Ah, there is one question which I already had for the previews pull request: You mention "Support for custom designs", but I cannot find any code related to this. Is that really part of this PR?

@sebastian-brunner sebastian-brunner changed the title Final python2 version Draft: Final python2 version Feb 21, 2022
@vahidm1993
Copy link
Contributor Author

vahidm1993 commented Feb 21, 2022

Ah, there is one question which I already had for the previews pull request: You mention "Support for custom designs", but I cannot find any code related to this. Is that really part of this PR?

No, we will add it in the next pull request. I just deleted it.

@vahidm1993
Copy link
Contributor Author

vahidm1993 commented Feb 23, 2022

@franzlst Point 1, 2, and 4 of the #858 comment got resolved in this branch.

However, I could not reproduce the 3rd point.

I moved '99_bottles_of_beer' somewhere else and tried to open '99_bottles_of_beer_in_library'. After the replacement of the missing library with a dummy state, I moved '99_bottles_of_beer' back to its place and tried to substitute the dummy state with '99_bottles_of_beer', and everything looks fine.

I guess the bug that you could somehow reproduce is related to 'substitute state' functionality and is not relevant to the better support of the missing libraries' feature.

@franzlst
Copy link
Member

Thank you for the fixes!

I now get a lot of AssertionErrors, which prevent logs from being shown in the LoggingView, caused by:
logging_console.py, line 150, in split_text assert isinstance(text_to_split, str)
This only happens for Python 2, for Python 3 it works fine.

However, I could not reproduce the 3rd point.

Steps to reproduce:

  • create new state machine, add input data port with type float
  • add generic/wait state, connect income, success outcome and input data port to root state
  • save state machine and close
  • rename wait folder on filesystem to wait_renamed
  • open state machine again, abort search for library => dummy state will be used
  • right click on dummy state => Substitute state => Choose generic/wait_renamed => click "As library"
  • The data flow will get lost, the transitions sometimes remain, sometimes not (haven't found out in which cases)

I guess the bug that you could somehow reproduce is related to 'substitute state' functionality and is not relevant to the better support of the missing libraries' feature.

Not sure. If I try the same with a library (not a dummy state), substitution works:

  • create new state machine, add input data port with type float
  • add generic/wait state, connect income, success outcome and input data port to root state
  • save state machine and close
  • copy wait folder on filesystem, name it wait_copy
  • open state machine again
  • right click wait state => Substitute state with library => Choose generic/wait_copy => click "As library"
  • All connections remain

Copy link
Member

@franzlst franzlst left a comment

Choose a reason for hiding this comment

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

Thank you again for your fixes. In the code I added a hopefully last comment which you should consider fixing :-)

source/rafcon/core/storage/storage.py Show resolved Hide resolved
@franzlst franzlst self-requested a review February 28, 2022 10:49
franzlst
franzlst previously approved these changes Feb 28, 2022
Copy link
Member

@franzlst franzlst left a comment

Choose a reason for hiding this comment

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

Awesome, so the pull request is ready from my side. Shell I merge it? Actually the honor is in your side @sebastian-brunner :-)
After merging, we also need a PyPI release, right?

@vahidm1993
Copy link
Contributor Author

@franzlst Our pipeline for python 2 was failing, so I went through the errors and fixed the issues. We had to back to 'imp' instead of 'importlib' which is python 2 friendly. Now, our pipeline is passing for python 2 & 3.

@franzlst
Copy link
Member

Perfect!

@vahidm1993 vahidm1993 force-pushed the final_python2_version branch 2 times, most recently from 8452906 to 6e690c0 Compare March 1, 2022 09:58
Copy link
Member

@sebastian-brunner sebastian-brunner left a comment

Choose a reason for hiding this comment

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

This looks good from my side. We discussed the changes internally already.

@sebastian-brunner sebastian-brunner merged commit be41b60 into DLR-RM:develop Mar 1, 2022
@sebastian-brunner
Copy link
Member

sebastian-brunner commented Mar 1, 2022

Ok thx for all the work @vahidm1993 and for your precious comments @franzlst . I merged the pr.

Now the real show starts with releasing the first major. xD

@sebastian-brunner
Copy link
Member

sebastian-brunner commented Mar 1, 2022

Could you create a release on pypi @franzlst ?

The version would be 0.15.4., see the develop branch in which I updated the changelog again.

@franzlst
Copy link
Member

franzlst commented Mar 4, 2022

Could you create a release on pypi @franzlst ?

Done so! I created the release on PyPI, as well as [here on GitHub]8https://github.com/DLR-RM/RAFCON/releases/tag/0.15.4). The master and develop branches should now both point to the latest commit. Also the rebuilt of the GitHub pages has been triggered.

Thank you again for your contributions. I hope that I will find time next week for the next round of pull requests :-D

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.

4 participants