2 Userland Gate Mechanics
4 The userland consolidation operates a set of Mercurial repositories that work
5 together to manage the tools, source code, and build recipies. These
6 repositories are the integration repository, gate, and external mirror. This is
7 similiar to how the Solaris ON, SFW, and other gates operates, however there
8 are a few subtle differences. In ON and other consolidations, the integration
9 repository is that gate and contains the canonical source. Once a changeset
10 is committed, it becomes a part of the canonical source. In the case of ON,
11 the changeset is immediately pushed to the clone repository. SFW and other
12 consolidations push changes from their canonical gate to a clone repository
13 nightly. In the userland consolidation, developers will commit changes to the
14 integration gate. These changes will not be accepted until some basic
15 validation is performed. Once the validation completes successfully, the
16 changes are accepted and pushed into the canonical source gate.
18 Integration repository (ssh://ulhg@userland//nevada/incoming)
19 The integration gate is the Mercurial repository that all tools, source
20 code, and build recipies are committed to. Unlike ON, SFW, and other
21 Solaris gates this source code repository does not contains the canonical
22 source for the product. This repository is a staging area for change
23 integration and acceptance.
25 hg push to integration gate
31 validate changeset(s) -> failed --> rollback changeset(s)
37 push to clone -------------------> unlock gate
45 So, the basic flow works something like this: A user pushes a changeset
46 to the integration gate. Mercurial locks the gate to block any other
47 attempts to operate on the gate while it is validating the changeset.
48 At this point, validation is started in the background, a message is
49 displayed, and control is returned to the user. Validation continues
50 in the background. If validation completes successfully, the changeset(s)
51 are pushed to the clone, the gate is unlocked, the bug database is updated,
52 and the user is notified of the changeset acceptance. If the validation
53 fails, the changeset(s) are rolled back, the gate is unlocked, and the
54 user is notified of the failure.
56 Changeset validation will include the following:
57 multi-delta update check
58 commit comment validation
61 source archive download
62 incremental build on all architectures
63 unit test on all architectures
64 package publication for all architectures
67 Canonical source repository (ssh://anon@userland//nevada/gate)
68 The clone gate is actually the mercurial repository that contains the
69 canonical tools, source code, and build recipies for the product. It
70 should always be in a stable, buildable state. When changes are pushed
71 to this gate, they are mirrored on the external mirror repository from
77 push to external mirror
83 External mirror repository (ssh://anon@hg.opensolaris.org//hg/userland/gate)
84 The external mirror is the mercurial repository that contains an externally
85 accessible copy of the canonical tools, source code, and build recipies for
86 the product. It should always be in a stable, buildable state.
88 external mirror update
93 # vi:set fdm=marker expandtab ts=4: