Add Git features

This would definitely take a long time to add, and there’d definitely be issues, but it would be really awesome.

People could make public “projects” that are read only, and other people could fork them and use them. They could submit a pull request and the author could accept/deny it. They could also merge two projects together, for example merging their own bot with a fork of a public one.

For private “projects,” it would also let people have multiple branches, such as “Master,” “Testing” and “Add Moderation” and other stuff like that. The author could merge the forks back into Master at any point. This would be really helpful for developing large features and having a separate test server.

In order to actually choose what servers have what branches, people could use one of their Ultimate slots (I figure this would be Ultimate only) to create a “bot” that would contain one or more different forks of the same “project.” For example, I could have this “project”:

  • SuperBot (“Project”)
    • Branches
      • Master
      • Beta
      • Add moderation
      • Add chatbot
      • Add leveling
    • Bots
      • Public
        • None
      • For Testing Server
        • Beta
        • Add moderation
        • Add chatbot
        • Add leveling
      • For Staff Server
        • Add Moderation
        • Add Leveling

Each “Bot” would be it’s own unique bot as far as Discord is concerned. For bots with multiple branches, Inventor would apply “Master,” and then apply the delta from each branch in order. There could be issues with overlap, but that could be fixed with an incrementing number for duplicates, rejecting the creation/updating of the “Bot”, or warning the user of the issue.

While this would certainly be a lot of work to implement and there’s many more nuances than I covered here, I think that it would be amazing to have for people who are making more complex bots on Inventor. Perhaps it would be locked behind a toggle in the settings though, as it’s definitely not suited for less-advanced users.

Thanks!

This isn’t planned. Most people in general have a lot of trouble learning/fully understanding Git due to its complexity, and it seems like we would end up spending a lot of time helping people through restoring data and solving problems with the system if it mirrored Git too closely. And if it didn’t, we’d be confusing power users.

What is planned, however, is the new plugin system for library (which will support versioning/updates and non-public modules for your internal use) and a bot transfer/migration tool for Premium Ultimate, which will allow you to see two bots side by side (in terms of flows, DBs, etc.) and transfer/replace across them with a few clicks. The idea here is that you can easily make changes in a beta/test bot, and with a few clicks, be running that new flow on your primary bot.

Flow versioning/restore history has also been considered in the past. There’s some technical restrictions around how flows are stored right now that makes it a bit tricky to version flows, but it’s something I’d like to implement in the future (either as an explicit “backup” option or as automatic saves after a certain number of changes or time).

1 Like