TOX versioning workflow

please what would be a recommended way of versioning tox components? I really like the way toe files increment their number each time they get saved and was thinking whether something like this could be done also with toxes? I feel like maintaining many tox components could become quite messy in certain situations. How do you guys keep track of changes done to your tox files and their history? Whit toe file it is quite easy to just dive into Backup folder and examine older project versions. Git is definitely and option for tox version control, but navigating trough its history is not as nice as with generic code since it is not possible to instantly see node network for each commit :slightly_smiling_face:

1 Like

I wrote a custom TOX saver that I use for most projects. There’s an overview of the idea here:

There’s a lot to say here - and plenty of room to change this approach. I’ve avoided making this too custom or too complicated after coming from a saving schema that was much more heavy handed in approach.

I usually like to keep all of my python extensions and modules out of my toxes - making them easier to diff.

Thank you very much, I will take a look at it :slightly_smiling_face:

Thanks for videos, I have watched them but it seems to me that using git for tox management is somehow limiting in terms of the version history browsing… I mean it is great for huge projects that couldn’t be managed without using git, but I miss ability to see exact changes in commits just like with generic code. I have seen some plans on making toe (maybe also tox) files compatible with git so I guess it might be possible to examine actual differences for each commit in the future.

Nevertheless I feel like it is sometimes quite hard to describe every important change done in tox within a short commit message. I kind of like opening multiple old toe files from Backup folder just to visually examine what was changed between versions. This is what I am missing when I work with toxes - ability to quickly look back at node graph from certain point it time. Toxes compatible with git might help with this, but I guess looking at their ascii interpretation wouldn’t be as good looking at node graph. But maybe I am wrong. :slightly_smiling_face:

You mentioned custom tox saver. May I ask what is its biggest advantage? Is it automatically doing some kind of increment + backup?

All valid points - these days I typically use an issue tracker create tickets then attach my tickets to a commit. That way even if I can’t visually debug the project I know what I changed inside of it. That comes from lots of blind tox working though - so I can’t say it’s for everyone.

You might look at this repo by Jacob Martinez:

It’s breaks your whole toe or tox into a JSON blob for commit, then reconstructs on start. That’s a different style approach, but might be worth looking into.

My tox saver just uses a hot-key style approach to externalizing a tox - that way I don’t have to go through the manual process of going to the tox in question, saving it, and then tracking what’s been externalized and what hasn’t been.

Thank you very much for these recommendations.
That idea with hotkey style approach sound very good to me. Maybe this could be submitted as RFE?

Maybe something line Ctrl+T could be a default hotkey used for selected tox saving with an option in preferences to also configure automatic increment & backup for this action. It would greatly accelerate tox saving while keeping its version history. In case such hotkey would be used on COMP that isn’t loading external tox, it could bring up the usual save tox file dialog. However once it was saved, this would perform backup, increment and save automatically (just like Ctrl+S does with toe files). What do you think?