Merge lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager into lp:ubuntu-ci-services-itself

Proposed by Francis Ginther
Status: Merged
Approved by: Joe Talbott
Approved revision: 8
Merged at revision: 8
Proposed branch: lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager
Merge into: lp:ubuntu-ci-services-itself
Diff against target: 231 lines (+100/-29)
8 files modified
docs/components/landing-manager.rst (+13/-7)
docs/components/planned.rst (+1/-3)
docs/components/project-manager.rst (+24/-7)
docs/components/ticket-environment-setup.rst (+2/-2)
docs/components/ticket-manager.rst (+55/-0)
docs/components/ticket-system.rst (+0/-7)
docs/components/web-server.rst (+3/-3)
docs/index.rst (+2/-0)
To merge this branch: bzr merge lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager
Reviewer Review Type Date Requested Status
Joe Talbott (community) Approve
Review via email: mp+196638@code.launchpad.net

Commit message

Revise component specification for the Project Manager, Ticket Manager and Landing Manager and re-factor content to show relationship of sub-functions (components that were 1st class at one time). Fixed some missing links and resolved associated warnings.

Description of the change

Revise component specification for the Project Manager, Ticket Manager and Landing Manager and re-factor content to show relationship of sub-functions (components that were 1st class at one time). Fixed some missing links and resolved associated warnings.

To post a comment you must log in.
Revision history for this message
Joe Talbott (joetalbott) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/components/landing-manager.rst'
2--- docs/components/landing-manager.rst 2013-11-16 10:12:08 +0000
3+++ docs/components/landing-manager.rst 2013-11-25 23:34:15 +0000
4@@ -17,23 +17,29 @@
5 * Project Manager - Provides meta information regarding the project owning a branch (i.e. what trunks to process, which tests to run, etc.). Status updates are sent to the project manager.
6 * LP Merge Proposal - MPs are the unit of work managed by the trunk delivering system, if the necessary criteria is in place, the MP will be merged to trunk.
7 * Branch/Source Builder - MP branches are dispatched to the builder.
8-* PPA - Location where the build will take place
9-* Integration Test Runner - Runs the specified test (if any) on the MP packages from the PPA
10-* Archive - The packages are copied to the archive from the PPA on successful completion of testing
11+* PPA - Location where the package build will take place.
12+* PPA Assigneer - Provides a single PPA to perform package builds.
13+* Integration Test Runner - Runs the specified test (if any) on the MP packages from the PPA.
14+* Archive - The packages are copied to the archive from the PPA on successful completion of testing.
15
16 *Development Plan:*
17
18 * Define APIs.
19 * Deploy an instance.
20-* Spawn a build (interact with Branch/Source Builder).
21-* Report status (interact with Project Manager and Ticket System).
22+* Spawn an MP build (interact with Branch/Source Builder).
23+* Allocate a PPA (interact with PPA Assigner).
24+* Monitor a PPA for build status.
25+* Report status (interact with Project Manager).
26 * Initiate integration tests (interact with Integration Test Service).
27-* Block trunk.
28+* Ensure that trunk has not changed during execution.
29+* Merge an MP to trunk.
30 * Binary copy a package from PPA to the archive.
31 * Monitor archive for status of package.
32 * Full end-to-end “Direct merge proposal to trunk” success case.
33 * Handle source build failures.
34 * Handle binary build failures.
35 * Handle integration test failures.
36+* Handle trunk changing during execution failures.
37+* Handle failure to merge.
38 * Handle push to archive failures.
39-
40+* Handle component failure recovery/restart.
41
42=== modified file 'docs/components/planned.rst'
43--- docs/components/planned.rst 2013-11-16 10:12:08 +0000
44+++ docs/components/planned.rst 2013-11-25 23:34:15 +0000
45@@ -5,9 +5,7 @@
46 :maxdepth: 2
47
48 project-manager
49- ticket-system
50- ticket-environment-setup
51- test-database
52+ ticket-manager
53 web-server
54 branch-listener
55 ppa-assigner
56
57=== modified file 'docs/components/project-manager.rst'
58--- docs/components/project-manager.rst 2013-11-16 10:12:08 +0000
59+++ docs/components/project-manager.rst 2013-11-25 23:34:15 +0000
60@@ -1,24 +1,41 @@
61 Project Manager
62 ===============
63
64+.. toctree::
65+ :maxdepth: 2
66+
67+ ticket-system
68+ test-database
69+
70 *Purpose:*
71
72-* Contains project centric knowledge such as location of trunk names of integration tests, point of contact, etc. Also knows status of current MPs being built and a queue of MPs to process.
73+* Brains of the CI system. Contains project centric knowledge such as location of trunk names of integration tests, point of contact, etc. Also knows status of current MPs being built and a queue of MPs to process.
74+* The project manager maintains the following sets of data:
75+ * The history and status of tickets.
76+ * The definition and configuration of individual projects.
77+ * The test database.
78
79 *Deployment:*
80
81 * Can run as a juju service.
82+* Runs as a persistent service, when it goes down, the engine halts.
83 * State needs to serialized whenever it is updated, so that status can be regenerated on a restart.
84-* Public facing UI to provide status (or should this export all status to the Web Server)?
85-* Most likely a part of the ticket system database
86+* Public facing UI is provided by the Web Server.
87
88 *Interactions:*
89
90+* Ticket Manager - Requests project metadata and provides status updates on tickets active in the CI system.
91 * Landing Manager - Requests project metadata and provides updates on status of a branch through the CI system.
92+* Web Server - Provides the UI.
93
94 *Development Plan:*
95
96-* Define backend storage
97-* Define API
98-* Integrate with Landing Manager
99-
100+* Define API.
101+* Define backend ticket storage.
102+* Define backend project specification storage.
103+* Define backend test database storage.
104+* Integrate with the Web Server.
105+* Integrate with the Landing Manager, supply metadata to build and test a single project and generate an automatic low-cost ticket.
106+* Handle status updates from the Landing Manager.
107+* Integrate with the Ticket Manager to supply metadata to establish a ticket workflow with multiple projects and tests.
108+* Handle status updates from the Ticket Manager.
109
110=== modified file 'docs/components/ticket-environment-setup.rst'
111--- docs/components/ticket-environment-setup.rst 2013-11-16 10:12:08 +0000
112+++ docs/components/ticket-environment-setup.rst 2013-11-25 23:34:15 +0000
113@@ -1,5 +1,5 @@
114-Ticket Environment Setup (now just a function of the ticket system)
115-===================================================================
116+Ticket Environment Setup (sub-function of Ticket Manager)
117+=========================================================
118
119 *Purpose:*
120
121
122=== added file 'docs/components/ticket-manager.rst'
123--- docs/components/ticket-manager.rst 1970-01-01 00:00:00 +0000
124+++ docs/components/ticket-manager.rst 2013-11-25 23:34:15 +0000
125@@ -0,0 +1,55 @@
126+Ticket Manager
127+==============
128+
129+.. toctree::
130+ :maxdepth: 2
131+
132+ ticket-environment-setup
133+
134+*Purpose:*
135+
136+* Coordinates building, testing and ultimately landing of project feature branches that make up a ticket.
137+* Coordinates the landing of multiple components:
138+
139+ * Ensures that a feature landing is an atomic event
140+ * Communicates status as this is done
141+ * Provides feedback when something goes wrong and a course of action
142+ * Back-out the landing on failure
143+
144+*Deployment:*
145+
146+* Can run as a juju service.
147+* Needs relationship to Project Manager, Branch Listener, Branch/Source Builder, Image Builder, Integration Test Runner and the Landing Manager.
148+* Shouldn’t need to save state, should be able to recreate state upon restart.
149+* No public access needed.
150+
151+*Interactions:*
152+
153+* Project Manager - Provides meta data regarding the projects and tests to execute for a specific ticket.
154+* Branch Listener - Assigned the task of monitoring the feature branches assigened to an MP. New content results in a new build/test cycle.
155+* PPA Assigner - Provides two PPAs to perform package builds, one for MPs themselves, another for MPs + trunk.
156+* Branch/Source Builder - MP branches are dispatched to the builder.
157+* PPAs - Two PPAs are used for performing package builds.
158+* Image Builder - Generates up to 3 images to be used for testing: feature branches + base image, feature branches + latest image, feature branches + trunk + latest image.
159+* Integration Test Runner - Runs the specified tests on up to 3 images.
160+
161+*Development Plan:*
162+
163+* Define APIs.
164+* Deploy an instance.
165+* Spawn an MP build (interact with Branch/Source Builder).
166+* Allocate PPAs (interact with PPA Assigner).
167+* Generate feature branches.
168+* Submit feature branches to watch (interact with Branch Listener).
169+* Report status (interact with Project Manager).
170+* Return PPAs.
171+* Build an image (interact with Image Builder).
172+* Initiate integration tests (interact with Integration Test Service).
173+* Implement the "Land Now" button. Dispatch individual trunk merge requests (interact with Landing Manager).
174+* Full end-to-end “Workflow II A: feature branch/transitions/fix involving multiple components” success case.
175+* Handle source build failures.
176+* Handle binary build failures.
177+* Handle image build failures.
178+* Handle integration test failures.
179+* Handle landing failures.
180+* Handle component failure recovery/restart.
181
182=== modified file 'docs/components/ticket-system.rst'
183--- docs/components/ticket-system.rst 2013-11-16 10:12:08 +0000
184+++ docs/components/ticket-system.rst 2013-11-25 23:34:15 +0000
185@@ -21,13 +21,6 @@
186 * Clear indication of merge/build/test failures and where the failure occurred, make it obvious to developers what a corrective course of action should be
187 * Provide a means to execute a landing when all criteria have passed
188
189-* Coordinates the landing of multiple components:
190-
191- * Ensures that a feature landing is an atomic event
192- * Communicates status as this is done
193- * Provides feedback when something goes wrong and a course of action
194- * Back-out the landing on failure
195-
196 * Provides ticket management:
197
198 * list and status of all tickets
199
200=== modified file 'docs/components/web-server.rst'
201--- docs/components/web-server.rst 2013-11-16 10:12:08 +0000
202+++ docs/components/web-server.rst 2013-11-25 23:34:15 +0000
203@@ -11,11 +11,11 @@
204 *Deployment:*
205
206 * Can run as a juju service.
207-* Needs a relationship to the Ticket System and/or Project Manager.
208-* Has no internal state, just provides a view to the data in the Ticket System.
209+* Needs a relationship to the Project Manager.
210+* Has no internal state, just provides a view to the data in the Project Manager.
211 * Provides public access with authorization to view private data.
212
213 *Interactions:*
214
215-* Ticket System - provides an interface for working with tickets and providing latest status.
216+* Project Manager - provides an interface for working with tickets and providing latest status.
217
218
219=== modified file 'docs/index.rst'
220--- docs/index.rst 2013-11-18 21:21:22 +0000
221+++ docs/index.rst 2013-11-25 23:34:15 +0000
222@@ -11,7 +11,9 @@
223 .. toctree::
224 :maxdepth: 2
225
226+ ticket
227 components
228+ api
229 sequence
230 risks
231 timeline

Subscribers

People subscribed via source and target branches