96 karma · joined January 30, 2021
The runtime is mostly self-written, focusing most of my efforts. The editor on the other hand is built on `rete.js` (https://retejs.org/) and Angular. ReteJS is a really amazing node editor framework. While I customized almost everything that was possible, a lot of credit goes to them.
In hindsight, Angular might have been a little bit of overkill, but it's the framework I'm comfortable with, given my very limited web development experience.
The editor is available here on GitHub and should work out of the box with the default VS Debug Configuration https://github.com/actionforge/graph-editor
I have always been a fan of GitHub Actions workflows but for some reason never liked YAML files as being the assigned file format for non-linear workflows. While YAMLs are great as configuration files, they can be quite tedious when it comes to creating, reviewing, and maintaining workflows.
To solve this, I created a visual node system that makes the workflow creation and maintenance process more efficient and intuitive. It's a straightforward node engine with an UI editor.
Examples for such a node graph are here: https://www.actionforge.dev/github/actionforge/graph-runner/...
and here: https://www.actionforge.dev/github/actionforge/graph-editor/....
For clarification, they are directly executed on GitHub runners. These graphs took me minutes to build in order to focus on my actual project.
The next time you create a new repo, give it a try. Love to hear your thoughts!
Thanks!
Let me explain where the 100 MB window comes from as its not only related to the upcoming compression implementation. Some graphic applications touch the timestamps of their files for no reason, making it harder to detect if a file changed. But some file formats always change their 'header' or 'footer'. Means, comparing the hash of the first or last 100 MB of a file that is 8GB in size gives a great performance boost to detect if a file got modified.
About merge operations: The majority of solo artists and designers don't work in many branches. Most projects just go forward and branches are only useful if a rollback is needed. That being said, Snowtrack does offer a simplified "cherry-pick". But merge operations as you might know them from Git/Perforce are not implemented yet as it takes time to see how users adapt the software.
Keep in mind, most artists and designers are new to VCS or have never heard of it before and therefore it is crucial to find the right balance between too little and too many features. Any second that keeps the artist away from creating their artwork is wasted and therefore and the goal is to not interfere with their workflow or to add additional "management tasks"
But for your statement about licenses, there is actually not much I can say to counter your arguments. I've followed the fight between Amazon and Elastic so you have very valid points. For the moment I don't think SnowFS will face the same issues given its current scope and target audience/market
I just cloned one of the repos, seems I really should look more into annex. Feel free to join the Discord channel, that would be the easiest to go from there
I learned a lot during the development of SnowFS and the open-source-community is the best place to share my experiences, that's why I put it on GitHub. At the end, I would be super happy if these insights can make it over to Git and Git-LFS.
We have a Discord channel, you are very welcome to swing by anytime for a virtual beer :-)
The ones I was referring to for performance are:
- Support for instant snapshots
- Support for instant rollback
About alternatives, Perforce and PlasticSCM are currently commonly used. But I understand your objections, and will check if I can handle certain things differently in the README. Thanks again for your input!