[wip] Add carton task #27

memo: carton 1.0 use cpanfile.snapshot instead of carton.lock