Could you make this a pull-request?
Sounds like the Napoleon method of doing things, and should work fine here.
Yes, the sandbox would be useful in two cases.
- The integrator can’t figure out where to put the files; maybe the schema can’t be generated based on the current environment.
- One of the extractors fails for whatever reasons, and we would rather only publish complete sets of content.
In either case, the extracted content could be put into a temporary spot where it can later be integrated without needing an additional extraction. For example, extracting a cache can take a number of minutes and it would be a shame for the relatively quick process of moving/renaming files to fail afterwards.
The way I’m doing it with Napoleon is to have it close to the workfile, relative to it. In the same directory in fact.
├── scenes
│ └── published
│ └── 2015-06-29.0747
│ ├── ben.mov
│ └── ben.abc
├── ben_model_v001.ma
└── ben_model_v002.ma
In the case of Napoleon, these temporary directories are persistent and represents all publishes made from a particular asset/user combination. The idea is to have an external process then crawl the hierarchy looking for publishes older than a certain date and remove those automatically. For example, after a day, week or after project completion.
That’s a good point, yes, I’d also expect the integrator to be the only plug-in to know about the naming convention of files. In this case, I would consider the directory of instances as just a placeholder and not actually move that along during integration. Instead, take each file independently, name it appropriately and copy/move it into the target location.
I would copy, always copy, until a publish is finished and double-checked for consistency. Otherwise we might end up with one of the file writes throwing an exception mid-way, which will become difficult to redo. Once done, the original can safely be removed.
I’m wondering how to set up the versioning for the Integrator. I was thinking something like this:
Yeah, that’s about the gist of how I’d do it too.
I’d be interested to hear how the ftrack guys are handling this. It’s my impression that they ask ftrack for a version number and use that. @mkolar, @tokejepsen, any word on this?
I like it, you?