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 |