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

rbx-dom should have a GitHub Actions workflow that opens PRs for reflection database updates #298

Open
kennethloeffler opened this issue Jun 26, 2023 · 4 comments

Comments

@kennethloeffler
Copy link
Member

kennethloeffler commented Jun 26, 2023

Updates to the databases in rbx_reflection_database and rbx_dom_lua is a manual affair. A human must run the gen-reflection script, open a pull request, and then the PR must be reviewed and merged. I recognize that #265 is on the table, but I think rbx-dom would regardless benefit from a scheduled github actions workflow that:

  • Installs rust, installs Roblox Studio, checks out the rbx-dom repository, and runs the gen_reflection script
  • Opens a PR containing the changes
  • Runs... every Monday? Tuesday? Not sure about the day, but I think a weekly period should work well

I think this would be useful because it seems like rbx-dom will support rbx_reflection_database for a while longer (maybe even indefinitely - we could discuss this particular point further), and besides, it would probably be pretty nice for maintainers to have automatic notifications about changes to the databases!

The PRs would still have to be further reviewed and merged, but also... it's only weekly, and it would usually just be "Approve" and "Merge" (there's no pressing need to create new releases for every auto-PR, for example). It looks entirely within reach with current resources, doesn't require any changes to the rbx-dom libraries or the surrounding tools, and would likely allow rbx-dom to know about and/or respond to new Roblox stuff more reliably and faster.

It needs the ability to create PRs in the workflow permissions. I'm not sure if PR creation is already allowed in rbx-dom's settings, or if anyone is able to change it if not.

And of course, someone will actually have to write the thing... I'll confess I don't love working with github actions, and would prefer not to be the one to do it😄

@Dekkonot and @nezuo, what do you two think about this, with the plans in #265 in mind?

@Dekkonot
Copy link
Member

The good news is that this is compatible with our plans with #265 anyway, since ideally consumers like Lune and Rojo would have a place to pull a database from. The main goal is to just decouple database updates from version releases for us and all downstream projects, but we can very much still provide a place to pull databases from.

I actually tried to write an action for this a while back and I believe the hurdle I ran into was that Studio doesn't like it when you're not logged in. I would have to double check though, so I'm willing to give it a shot. It's not a priority though since it's already just 1 PR a week. Worst case, I set an alarm on my phone and do it weekly.

@nezuo
Copy link
Contributor

nezuo commented Jun 27, 2023

I'm all for this change but like @Dekkonot said, tools used in CI like run-in-roblox broke because of authentication changes Roblox made. If I remember correctly, cookies are invalidated based on either region or IP. There is probably a workaround but I would still be worried about it breaking again.

@kennethloeffler
Copy link
Member Author

If I remember correctly, cookies are invalidated based on either region or IP.

Damn, this really throws a wrench into things. It means we use a GitHub-hosted runner, we'd have to use a VPN just to authenticate Studio, and that's too complicated for my tastes. We could opt for a self-hosted runner - then the runner doesn't have to start from clean every time, it could have Roblox Studio already installed + logged in, and there's probably less opportunity for breakage this way? I have some spare computers lying around, but then I suppose I'd be responsible for writing the damn thing 😂

@Dekkonot
Copy link
Member

Dekkonot commented Jun 27, 2023

I have some spare computers lying around, but then I suppose I'd be responsible for writing the damn thing

Conveniently, GitHub has a CLI that can open PRs and whatnot so worst case it should be possible to just write a script that will switch to a new branch, generate an updated reflection, and then open a PR with it. Writing timers for these things is also pretty easy in almost any language.

I'd hate to make any one person host it though, since that's placing undue burden on them.

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

No branches or pull requests

3 participants