Greg Grossmeier has submitted this change and it was merged.

Change subject: Dev and deploy flowchart using blockdiag
......................................................................


Dev and deploy flowchart using blockdiag

Change-Id: Ib0ea554a270259f7cd0e595341aa15868b8a122c
---
M .gitignore
A source/devdeployflow/devdeployflow.diag
A source/devdeployflow/index.rst
M source/index.rst
4 files changed, 193 insertions(+), 1 deletion(-)

Approvals:
  Greg Grossmeier: Verified; Looks good to me, approved
  Hashar: Looks good to me, but someone else must approve



diff --git a/.gitignore b/.gitignore
index 4bbc617..0f828b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
 /.tox
 /html
+*.png
+*.svg
+*.pdf
 *.swp
+*.*~
diff --git a/source/devdeployflow/devdeployflow.diag 
b/source/devdeployflow/devdeployflow.diag
new file mode 100644
index 0000000..2d32cff
--- /dev/null
+++ b/source/devdeployflow/devdeployflow.diag
@@ -0,0 +1,170 @@
+blockdiag {
+    // Set node metrix
+    // node_width = 200;  // default value is 128
+    node_height = 70;  // default value is 40
+
+    // set default shape
+    default_shape = roundedbox;  // default value is 'box'
+
+
+    // Product stages
+    strategic_planning [label = "Strategic planning"];
+    sprint_prio [label = "Sprint prioritization"];
+    design_mockup [label = "Design mockup"];
+    build [label = "Build"];
+    goto_dev [label = "Go to dev cycle"];
+
+    // Product flow
+    strategic_planning -> sprint_prio
+    sprint_prio -> design_mockup
+    design_mockup -> build
+    build -> goto_dev
+
+    group product_group {
+        fontsize = 16
+        label = "WMF Product";
+        strategic_planning; sprint_prio; design_mockup; build; goto_dev;
+    }
+
+    // Security stages
+    sec_bug_aware [label = "Made aware of\nsecurity issue\n(via email 
security@\nor otherwise)"];
+    sec_bug_report [label = "Report Security\n(private) bug in BZ"];
+    sec_dev [label = "Local development/\ntesting only"];
+    sec_patch_in_BZ [label = "Attach patch to\nsecurity bug in BZ\n(one per 
live wmfXX\nand supported release)"];
+    sec_patch_review [label = "Security team reviews\nand tests the patch"];
+    sec_coord_deploy [label = "Coordinate\nsecurity deploy"];
+    sec_deploy [label = "Deploy security patches\n(all live wmfXX versions)"];
+    sec_get_cve [label = "Request CVEs"];
+    sec_coord_release [label = "Coordinate\nsecurity release"];
+    sec_release [label = "Do security release"];
+    sec_merge_master [label = "Merge security patches into master"];
+
+    // Security flow
+    sec_bug_aware -> sec_bug_report
+    sec_bug_report -> sec_dev
+    sec_dev -> sec_patch_in_BZ
+    sec_patch_in_BZ -> sec_patch_review
+    sec_patch_review -> sec_coord_deploy
+    sec_coord_deploy -> sec_deploy
+    sec_deploy -> sec_get_cve
+    sec_get_cve -> sec_coord_release
+    sec_coord_release -> sec_release
+    sec_release -> sec_merge_master
+
+    group security_group {
+        fontsize = 16
+        label = "Security Bug and Dev"
+        color = "pink"
+        sec_bug_aware; sec_bug_report; sec_dev; sec_patch_in_BZ; 
sec_patch_review; sec_coord_deploy; sec_deploy; sec_get_cve; sec_coord_release; 
sec_release; sec_merge_master;
+    }
+
+    // Bug stages
+    report_bug [label = "Report bug"];
+    bug_reported [label = "Bug reported"];
+    bug_languish [label = "Languish", color = "red"];
+    bug_reviewed [label = "Reviewed/\nprioritized"];
+    bug_assigned [label = "BZ Status:\nAssigned\n(Optional)"];
+    bug_patch [label = "BZ Status:\nPatch in Gerrit"];
+//    bug_resolved [label = "BZ Status:\nResolved/Fixed"];
+
+
+    // Development stages
+    dev [label = "Local development"];
+    dev_labs_instance [label = "Code on developers'\nlab instance"];
+    patch_submission [label = "Patchset in Gerrit"];
+    code_reviews [label = "Code reviews in Gerrit\n(+/-1s, comments)"];
+    unit_tests_precommit [label = "Pre-commit\nunit tests"];
+    manual_testing_presubmit [label = "Manual testing\n(Pre Submit)"];
+    master [label = "Code committed\n in master\n(+2)"];
+    unit_tests_postcommit [label = "Post-commit\nunit tests"];
+
+    beta_cluster [label = "Code on Beta Cluster"];
+    manual_testing_beta [label = "Manual testing\n(Beta Cluster)"];
+    browser_tests_beta [label = "Beta Cluster\nbrowser tests"];
+    review_browsertest_beta [label = "Manual review of \nBeta Cluster\nbrowser 
tests"];
+    verified_beta_breakage_cond [label = "Verified\nbreakage\nin 
Beta\nCluster?", shape = flowchart.condition, height = "100"];
+    revert_beta [label = "Revert offending commit"];
+
+    group beta_group {
+        fontsize = "16"
+        label = "Beta Cluster"
+        color = "lightgreen"
+        beta_cluster; manual_testing_beta; browser_tests_beta; 
review_browsertest_beta; verified_beta_breakage_cond; revert_beta;
+    }
+
+    // Deployment stages
+    create_wmf_branch [label = "WMF deployment branch\n(wmfXX) created"];
+    wmf_deploy_p0 [label = "WMF deployment\nPhase0"];
+    wmf_deploy_p1 [label = "WMF deployment\nPhase1"];
+    wmf_deploy_p2 [label = "WMF deployment\nPhase2"];
+
+    manual_testing_p0 [label = "Manual testing\n(Production Phase0)"];
+    manual_testing_p1 [label = "Manual testing\n(Production Phase1)"];
+    manual_testing_p2 [label = "Manual testing\n(Production Phase2)"];
+    browser_tests_production [label = "Production\nbrowser tests"];
+
+    review_browsertest_prod [label = "Manual review of\nproduction browser 
tests"];
+    verified_prod_breakage_cond [label = "Verified\nbreakage?", shape = 
flowchart.condition];
+
+    prod_fix_quick_cond [label = "Fix production quickly?"];
+    fix_prod [label = "Fix production!"];
+    backport_master [label = "Backport fix\nto master"];
+    prod_revert [label = "Revert broken code"];
+
+    success [label = "Success!", color = "green"];
+
+    //
+    // Connections / edges
+    // (Labels use short text only)
+    //
+
+
+    // bug flow
+    bug_reported -> bug_reviewed, bug_languish
+    bug_reviewed -> bug_assigned
+    bug_assigned -> dev
+
+    // dev flow
+    dev -> dev_labs_instance
+    dev_labs_instance -> manual_testing_presubmit
+    manual_testing_presubmit -> patch_submission
+    patch_submission -> bug_patch
+    patch_submission -> unit_tests_precommit [folded]
+    unit_tests_precommit -> code_reviews
+    code_reviews -> master
+    master -> beta_cluster, unit_tests_postcommit
+
+    beta_cluster -> manual_testing_beta, browser_tests_beta
+    browser_tests_beta -> review_browsertest_beta
+    manual_testing_beta, review_browsertest_beta -> verified_beta_breakage_cond
+    verified_beta_breakage_cond -> revert_beta [label = "Yes", textcolor="red"]
+    verified_beta_breakage_cond -> create_wmf_branch [label = "No", textcolor 
= "green", folded];
+    revert_beta -> report_bug
+
+    create_wmf_branch -> wmf_deploy_p0
+    wmf_deploy_p0 -> manual_testing_p0, wmf_deploy_p1
+    wmf_deploy_p1 -> manual_testing_p1, wmf_deploy_p2
+    wmf_deploy_p2 -> manual_testing_p2
+
+    manual_testing_p0, manual_testing_p1, manual_testing_p2 -> 
browser_tests_production
+
+    group prod_group {
+        label = "Production"
+        fontsize = "16"
+        color = "lightblue"
+        wmf_deploy_p0; wmf_deploy_p1; wmf_deploy_p2; manual_testing_p0; 
manual_testing_p1; manual_testing_p2;
+    }
+
+    browser_tests_production -> review_browsertest_prod
+    review_browsertest_prod -> verified_prod_breakage_cond
+
+    verified_prod_breakage_cond -> success [label = "No", textcolor="green", 
folded]
+    verified_prod_breakage_cond -> prod_fix_quick_cond [label = "Yes", 
textcolor = "red"];
+    prod_fix_quick_cond -> fix_prod [label = "Yes"]
+    prod_fix_quick_cond -> prod_revert [label = "No"];
+    fix_prod -> backport_master
+    backport_master -> success
+
+    prod_revert -> report_bug
+
+}
diff --git a/source/devdeployflow/index.rst b/source/devdeployflow/index.rst
new file mode 100644
index 0000000..a88e814
--- /dev/null
+++ b/source/devdeployflow/index.rst
@@ -0,0 +1,18 @@
+:title: Dev deploy workflow
+
+Flowchart for deployment
+========================
+
+To generate the flowchart you need to have 'blockdiag' installed.
+    <http://blockdiag.com/en/blockdiag/introduction.html#setup>
+
+Then, for a png, simply run:
+    blockdiag filename.diag
+
+For a pdf:
+    blockdiag -Tpdf filename.diag
+
+For a svg:
+    blockdiag -Tsvg filename.diag
+
+.. blockdiag:: devdeployflow.diag
diff --git a/source/index.rst b/source/index.rst
index 682eee2..59ea7a8 100644
--- a/source/index.rst
+++ b/source/index.rst
@@ -11,7 +11,7 @@
 .. toctree::
    :maxdepth: 2
 
-
+   devdeployflow/index.rst
 
 Indices and tables
 ==================

-- 
To view, visit https://gerrit.wikimedia.org/r/115425
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib0ea554a270259f7cd0e595341aa15868b8a122c
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/tools/releng
Gerrit-Branch: master
Gerrit-Owner: Greg Grossmeier <[email protected]>
Gerrit-Reviewer: Greg Grossmeier <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to