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

Open source rewrite of rqt_topic #47

Open
wants to merge 6 commits into
base: rolling
Choose a base branch
from

Conversation

flynneva
Copy link

@flynneva flynneva commented Jan 21, 2024

  • open sourced from Apex.AI

Closes #46

@flynneva
Copy link
Author

fyi @methylDragon @wjwwood for some reason the tests are failing after migrating to rolling, so give me a few days to fix that and then we should be good to get this reviewed / merged in.

@flynneva flynneva changed the title Open source rewrite of rqt_topic from Apex.AI Open source rewrite of rqt_topic Jan 22, 2024
@wjwwood
Copy link
Member

wjwwood commented Jan 23, 2024

I'll have to defer to @methylDragon on this one, but feel free to ping me if you need my opinion on anything @methylDragon.

@flynneva
Copy link
Author

@methylDragon @clalancette feel free to have a review of this PR. It's just a start on the rewrite for sure, but I think it gets this GUI in a much more usable state than before 👍🏼

Interested to hear your thoughts!

Also - happy to help maintain this repo if this PR is accepted.



def test_message_detail_model(message_detail, qtmodeltester):
# qtmodeltester.check(message_detail)
Copy link
Author

@flynneva flynneva Jan 29, 2024

Choose a reason for hiding this comment

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

I'll make a follow-up issue to tackle re-enabling these checks if this PR is merged in. I'm not quite sure why its failing all of a sudden once we open sourced this tool and dont have the time right now to dig into it.

@clalancette
Copy link

@methylDragon @clalancette feel free to have a review of this PR. It's just a start on the rewrite for sure, but I think it gets this GUI in a much more usable state than before 👍🏼

I have a few high-level comments here:

  1. This is great! rqt_topic definitely needs some love.
  2. There's a lot of changing of ' to " in this PR, which doesn't conform to our current style. This means this will almost certainly fail our flake8 tests, which need to pass for this to get in.
  3. If we are going to heavily refactor this package, I think we should also refactor it to use more of our best practices. In particular, the layout of the code should conform much more closely to our recommended best practice. You can see that in any of the packages in e.g. https://github.com/ros2/ros2cli .
  4. Finally, I'm not a huge fan of complete rewrites. They are difficult to review and hard to explain to users. I'd much rather see this as a series of improvements to the current code, with the goal of getting towards something like this PR. That will make it much more likely for us to get this in. If I were going to do this, then what I'd do is to first refactor the code as I mentioned in 3, then do a series of PRs where you introduce/refactor one part at a time.

Let me know if this makes sense to you.

@flynneva
Copy link
Author

flynneva commented Jan 29, 2024

There's a lot of changing of ' to " in this PR, which doesn't conform to our current style. This means this will almost certainly fail our flake8 tests, which need to pass for this to get in.

@clalancette sure, this is an easy search and replace 👍🏼

If we are going to heavily refactor this package, I think we should also refactor it to use more of our best practices. In particular, the layout of the code should conform much more closely to our recommended best practice. You can see that in any of the packages in e.g. https://github.com/ros2/ros2cli .

@clalancette what "layout" in particular are you referring to in the linked repo? The linked repo contains many packages...but this repo only contains one. Are you suggesting to split up rqt_topic into many smaller packages? Or do you just mean removing the src directory and having rqt_topic at the top level?

Finally, I'm not a huge fan of complete rewrites. They are difficult to review and hard to explain to users. I'd much rather see this as a series of improvements to the current code, with the goal of getting towards something like this PR. That will make it much more likely for us to get this in. If I were going to do this, then what I'd do is to first refactor the code as I mentioned in 3, then do a series of PRs where you introduce/refactor one part at a time.

@clalancette sure, I agree as well. I just did it this way because internally the rewrite was already complete. If you'd like me to break this up into smaller chunks I can...just it will take much longer probably (months) to get this complete.

@clalancette
Copy link

@clalancette what "layout" in particular are you referring to in the linked repo? The linked repo contains many packages...but this repo only contains one. Are you suggesting to split up rqt_topic into many smaller packages? Or do you just mean removing the src directory and having rqt_topic at the top level?

The latter; removing src and having rqt_topic at the top level.

@clalancette sure, I agree as well. I just did it this way because internally the rewrite was already complete. If you'd like me to break this up into smaller chunks I can...just it will take much longer probably (months) to get this complete.

I think it is going to take months either way. But with smaller chunks we can actually see forward progress, which I think is a good thing.

@flynneva flynneva force-pushed the rolling branch 2 times, most recently from e617adb to 279dc1f Compare February 2, 2024 04:53
@flynneva
Copy link
Author

flynneva commented Feb 2, 2024

@clalancette took care of the src dir thing and migrating to use single quotes '. How would you like this PR split up? There is no real good way to "slowly" migrate without breaking things. Just let me know how you'd like to get this split up and I can do it 👍🏼

- open sourced from Apex.AI

Signed-off-by: Evan Flynn <[email protected]>
- meant to be ran in background threads instead of main GUI thread

Signed-off-by: Evan Flynn <[email protected]>
- Views are split up into three main widgets
- Topic list view that lists all available topics and their info
- Message list view that lists messages from all selected topics
- Message detail view that shows a detailed tree view of a single
  message

Signed-off-by: Evan Flynn <[email protected]>
@evan-flynn-apexai
Copy link

evan-flynn-apexai commented Mar 25, 2024

But with smaller chunks we can actually see forward progress,

@clalancette I've broken up the single big commit into smaller more manageable ones for you to review. Let me know if you'd like me to split these out into their own MRs, though I dont think we can do this without breaking things.

P.s. sorry about my github accounts - I always forget which one I'm signed into. 😓

@flynneva flynneva force-pushed the rolling branch 3 times, most recently from 2e58b38 to 6d67d10 Compare March 25, 2024 19:35
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