| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 /* | |
| 6 Package cipd implements client side of Chrome Infra Package Deployer. | |
| 7 | |
| 8 TODO: write more. | |
| 9 | |
| 10 Binary package file format (in free form representation): | |
| 11 <binary package> := <zipped data> | |
| 12 <zipped data> := DeterministicZip(<all input files> + <manifest json>) | |
| 13 <manifest json> := File{ | |
| 14 name: ".cipdpkg/manifest.json", | |
| 15 data: JSON({ | |
| 16 "FormatVersion": "1", | |
| 17 "PackageName": <name of the package> | |
| 18 }), | |
| 19 } | |
| 20 DeterministicZip = zip archive with deterministic ordering of files and stripp
ed timestamps | |
| 21 | |
| 22 Main package data (<zipped data> above) is deterministic, meaning its content | |
| 23 depends only on inputs used to built it (byte to byte): contents and names of | |
| 24 all files added to the package (plus 'executable' file mode bit) and a package | |
| 25 name (and all other data in the manifest). | |
| 26 | |
| 27 Binary package data MUST NOT depend on a timestamp, hostname of machine that | |
| 28 built it, revision of the source code it was built from, etc. All that | |
| 29 information will be distributed as a separate metadata packet associated with | |
| 30 the package when it gets uploaded to the server. | |
| 31 | |
| 32 TODO: expand more when there's server-side package data model (labels | |
| 33 and stuff). | |
| 34 */ | |
| 35 package cipd | |
| 36 | |
| 37 import "github.com/Sirupsen/logrus" | |
| 38 | |
| 39 // Default package level logger. | |
| 40 var log = logrus.New() | |
| OLD | NEW |