From d478c7e8de51a5a690ee434db508db8d0e0c72ec Mon Sep 17 00:00:00 2001
From: ph0zzy <arthur-fayzullin@yandex.ru>
Date: Mar 01 2019 07:09:21 +0000
Subject: [PATCH 1/2] add page with ci manifest


---

diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc
index 8b43fe8..304fc85 100644
--- a/modules/ROOT/nav.adoc
+++ b/modules/ROOT/nav.adoc
@@ -1,4 +1,5 @@
 * xref:quick-start-guide.adoc[Quick Start Guide]
+* xref:manifesto.adoc[Manifesto]
 * xref:standard-test-interface.adoc[Standard Test Interface]
 * xref:standard-test-roles.adoc[Standard Test Roles]
 * xref:examples.adoc[Examples]
diff --git a/modules/ROOT/pages/manifesto.adoc b/modules/ROOT/pages/manifesto.adoc
new file mode 100644
index 0000000..f647ea1
--- /dev/null
+++ b/modules/ROOT/pages/manifesto.adoc
@@ -0,0 +1,88 @@
+:toc:
+
+== CI Manifesto ==
+
+Continuous integration is a developer/packager process and workflow.
+Continuous delivery is a release process and workflow.
+ 
+Continuous integration aims to ensure broken changes do not affect other developers, packagers, maintainers or users.
+Continuous delivery aims to ensure broken changes do not get delivered or released.
+ 
+Continuous integration allows us to rapidly course correct while building software toward a moving target.
+ The feedback that continuous integration provides is vital for fast paced agile delivery of software.
+Late testing, long after a change occurs, does not scale to the pace of Fedora.
+ 
+Because there are several Continuous Integration efforts, we need to set the basic rules to make sure we’re all playing the same game.
+When we call a game “football” we need to agree on what that means.
+We may have different frameworks, implementations or tests, but need to play the same game.
+
+=== The Definition ===
+
+*You don’t get to call it “Continuous Integration” unless you ...*
+
+. Assemble it together like in production, then test drive it like a user.
+This is *Integration*.
+. Do those integration tests for every single "change".
+This is *Continuous*.
+ 
+Without these, it may be “unit testing”, “acceptance testing”, “regression testing”, “quality assurance”, or other steps in the pipeline … but it’s not “continuous integration”.
+You might even run the same tests again later as part of one of these other testing processes.
+ 
+Building a component, composing it with others, assembling it into a production-like system, is all part of integration.
+A “change stream” is how we refer to the changes that integration continuously acts upon.
+A developer is someone who instigated and/or implemented the change and is our target for feedback from the tests.
+In Fedora this is a packager or maintainer.
+Usually we apply that integration to a stream of software changes, but at other times it is hardware changes, or other changes.
+ 
+*Continuous delivery* is taking some of those successful integrations and delivering them.
+ 
+=== The Manifesto ===
+
+. A test has zero value until its result affects the behavior of an observer.
+. The best observer for a test result is the developer or packager who instigated and/or initiated the change being integrated.
+. The benefit of continuous integration is inversely proportional to the size of the change.
+Many iterative small changes far outweigh a massive bundled change.
+. Rapid feedback to the developer or packager of the change will cause them to pay attention.
+Aim for hours not days to provide test results.
+. Packagers only take responsibility for tests that they can contribute to.
+. Packagers respect tests and testing systems that produce reliable results.
+Conversely they ignore and shun tests and systems that are flakey.
+. Packagers should not have to search for test results outside of their workflow.
+. Packagers should be able to run individual tests on their own machines.
+. The ideal test can be updated in lockstep with the changes it is testing.
+Aim to store a test along with the software that the test is most related to.
+. The best place to test a change is before that change affects anyone else.
+. A small suite of tests that follows these principles is more valuable to continuous integration than large suite of tests that does not.
+
+=== The Rules ===
+
+*Continuous Integration becomes self-sustaining by following two basic rules ...*
+ 
+In order to scale our CI effort, it must be made self-sustaining.
+This is not that hard.
+These basic rules are the requirements to build a self-sustaining cycle where the tests grow rather than rot.
+
+==== 1. Tests must be changeable by people making the software change ====
+
+Developers and packagers must be able to contribute changes to the tests and run them.
+The tests become the responsibility of packagers, and the packaging cycle.
+It is possible to start of with a small corpus of tests that meet this requirement.
+This small corpus will eventually outpace any “non-Open Source” tests.
+
+*Reason:* Open source, reproducible tests allow developers and packagers to contribute to, fix out of date tests, and grow the test suites.
+They then pay attention to the tests and maintain them.
+
+==== 2. Rapid Feedback to the Person who makes a Change ====
+
+The developer or packager who makes change to a package or container needs rapid feedback from the continuous integration.
+The change should not proceed until that person reacts to integration failure results.
+ 
+*Reason:* Rapid feedback causes developers and packagers to 
+
+. pay attention to the tests 
+. fix problems while the change is fresh in their mind and 
+. gate the change on the tests.
+
+
+[[Category:FedoraAtomicCi]]
+

From 8a98fec2c9f9fb05cd825be19a278562260f6465 Mon Sep 17 00:00:00 2001
From: ph0zzy <arthur-fayzullin@yandex.ru>
Date: Mar 01 2019 08:08:32 +0000
Subject: [PATCH 2/2] change paragraphs level


---

diff --git a/modules/ROOT/pages/manifesto.adoc b/modules/ROOT/pages/manifesto.adoc
index f647ea1..12598bb 100644
--- a/modules/ROOT/pages/manifesto.adoc
+++ b/modules/ROOT/pages/manifesto.adoc
@@ -1,6 +1,6 @@
 :toc:
 
-== CI Manifesto ==
+= CI Manifesto =
 
 Continuous integration is a developer/packager process and workflow.
 Continuous delivery is a release process and workflow.
@@ -16,7 +16,7 @@ Because there are several Continuous Integration efforts, we need to set the bas
 When we call a game “football” we need to agree on what that means.
 We may have different frameworks, implementations or tests, but need to play the same game.
 
-=== The Definition ===
+== The Definition ==
 
 *You don’t get to call it “Continuous Integration” unless you ...*
 
@@ -36,7 +36,7 @@ Usually we apply that integration to a stream of software changes, but at other 
  
 *Continuous delivery* is taking some of those successful integrations and delivering them.
  
-=== The Manifesto ===
+== The Manifesto ==
 
 . A test has zero value until its result affects the behavior of an observer.
 . The best observer for a test result is the developer or packager who instigated and/or initiated the change being integrated.
@@ -54,7 +54,7 @@ Aim to store a test along with the software that the test is most related to.
 . The best place to test a change is before that change affects anyone else.
 . A small suite of tests that follows these principles is more valuable to continuous integration than large suite of tests that does not.
 
-=== The Rules ===
+== The Rules ==
 
 *Continuous Integration becomes self-sustaining by following two basic rules ...*
  
@@ -62,7 +62,7 @@ In order to scale our CI effort, it must be made self-sustaining.
 This is not that hard.
 These basic rules are the requirements to build a self-sustaining cycle where the tests grow rather than rot.
 
-==== 1. Tests must be changeable by people making the software change ====
+=== 1. Tests must be changeable by people making the software change ===
 
 Developers and packagers must be able to contribute changes to the tests and run them.
 The tests become the responsibility of packagers, and the packaging cycle.
@@ -72,7 +72,7 @@ This small corpus will eventually outpace any “non-Open Source” tests.
 *Reason:* Open source, reproducible tests allow developers and packagers to contribute to, fix out of date tests, and grow the test suites.
 They then pay attention to the tests and maintain them.
 
-==== 2. Rapid Feedback to the Person who makes a Change ====
+=== 2. Rapid Feedback to the Person who makes a Change ===
 
 The developer or packager who makes change to a package or container needs rapid feedback from the continuous integration.
 The change should not proceed until that person reacts to integration failure results.

