rojo-rbx / rojo

Rojo enables Roblox developers to use professional-grade software engineering tools
https://rojo.space
Mozilla Public License 2.0
935 stars 175 forks source link

Add a place ID blacklist to project config #961

Open michaeldougal opened 4 weeks ago

michaeldougal commented 4 weeks ago

Currently, Rojo has a nice configuration option called servePlaceIds that allows us to whitelist a set of places where a project can sync. I would also love the opposite (or a toggle) so that we can have a blacklist that prevents Rojo from syncing to specific place IDs.

This is because my team typically works with a production branch place and a set of development branch places, and I'd like to make sure that the production is restricted. At the same time, I want to leave them open to syncing in any of the other development places without having to add each one to the config manually.

Dekkonot commented 3 weeks ago

Are you adding new development places often enough that this is a real concern? I'd be interested in learning more about your workflow that it's a burden to add each one to the config file.

I'm not opposed to this suggestion on merit or anything, I'm just curious why you're adding so many places.

michaeldougal commented 3 weeks ago

Yeah so to give you a little more context, I am the Technical Director at Sawhorse Interactive. We do a lot of brand work, and we're pretty much pumping out a new experience every 2-3 months.

The teams for those projects typically consist of 2-4 engineers, plus our art team. Each engineer has their own development branch place or two, the art team has two dedicated art branches (an asset drop and level making), there's a staging branch, and then the production branch. Overall this results in at least seven development branches per project, often more for random things that come up.

We have a policy of not directly doing any work in the production branch, everything should just get pushed to staging, verified, and then staging overwrites production. However, occasionally you'll get a deviation from that because a dev gets lazy, and I'd like to enforce not working in production to mitigate that behavior and teach better habits.

So it's not an extreme problem to have to add each place ID to the project configs, we just make these new places often enough that it would be nice to be able to just blacklist the production branch once and be good to go.

Dekkonot commented 3 weeks ago

Right, that makes sense. I can see how it'd get tedious if you're doing a bunch of projects. It's not something I think about doing that often since most teams are working on a fixed few games. I will definitely keep this in mind!

I make no promises on a timeline though. It's a busy part of the year to be a Roblox dev and Rojo has some larger code changes coming as-is, so it might not get done for a little bit.