-
Notifications
You must be signed in to change notification settings - Fork 49
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
Create polished version of generate_reflection
named rbx_reflector
#249
Conversation
I've added the
|
Is there a rule on comment wrapping? |
I added the |
I'm not using the latest version of |
I'm going to open this up for review because I would like some feedback on a few things.
|
Elaborate on how it's not working? You could be running into one of innerput's failure cases. It fails when:
Since I wrote it, it has worked reliably for me as long as I avoid these cases, so either I messed up in the unsafe, or one of these things is happening. These problems must be fixed when we expose rbx_reflector to end users (can't wait 😔), but I think it can work for CI. Please leave as much information as possible and feel free to get in touch with me over Discord or email if you want to have a chat about it - it's important that this works as expected
I think rbx_xml, rbx_binary, rbx_util can stay as-is and we'll just use rbx_reflector to generate the static databases in rbx_dom_lua and rbx_reflection_database, same as we've been doing with generate_reflection. I think changing everything over to support dynamic databases is out of scope for this PR and it would be better to tackle in a future PR
I'm not totally sure on best practice for Cargo.lock in workspaces that include both libraries and binaries either. We can take a look at other large projects that need to think about this (ripgrep for example, which provides a binary as well as libraries, sets a binary target in Cargo.toml, and checks Cargo.lock into vc).
I think we should, the configurable logs in generate_reflection have come in handy many times for me
generate_reflection puts these in a temp directory that gets deleted when we're done with it - I think we can do the same here
I'm not sure! Maybe it was supposed to apply patches to a given database in isolation? I can see this being useful, sometimes you want to separately run and inspect the results of each step of the generation process |
It's failing to find the window for the studio process. I should have been more specific about the lock file. I was referencing my earlier comment here:
|
@kennethloeffler It feels like maybe we should track down what's causing that issue because it'd make for an interesting bug report but... That's irrelevant to this PR, I guess. Shame it causes a crash. :( @nezuo As per the discussion on Discord, I think we should just focus on generating a database cleanly. The |
That CI failure isn't your fault, don't worry. Since this replaces Because this fundamentally changes how we write patch files, would it be possible for you to update |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I cannot believe I almost forgot this but we need a README
for this tool. Just a simple description of what it does and how to use it will do since it's internal. If you need an idea, you can look at the README for generate_reflection
.
generate_reflection
named rbx_reflector
This is a continuation of the #221 PR. I thought I would start a draft so I could get feedback.