Commit 2864f6f7 authored by Mark Pundsack's avatar Mark Pundsack 💬

Fix display logic for marketing stages, clean up definitions, italic hidden categories

parent 77de1a42
Pipeline #45528023 passed with stages
in 13 minutes and 17 seconds
......@@ -4,6 +4,7 @@ stages:
manage:
display_name: "Manage"
marketing: true
image: "/images/solutions/solutions-manage.png"
description: "Gain visibility and insight into how your business is performing."
body: |
......@@ -44,8 +45,10 @@ stages:
- code_analytics
framework:
name: Framework
plan:
display_name: "Plan"
marketing: true
image: "/images/solutions/solutions-plan.png"
description: "Regardless of your process, GitLab provides powerful planning
tools to keep everyone synchronized."
......@@ -86,6 +89,7 @@ stages:
create:
display_name: "Create"
marketing: true
image: "/images/solutions/solutions-create.png"
description: "Create, view, and manage code and project data through powerful branching tools."
body: |
......@@ -134,6 +138,7 @@ stages:
verify:
display_name: "Verify"
marketing: true
image: "/images/solutions/solutions-verify.png"
description: "Keep strict quality standards for production code with automatic testing and reporting."
body: |
......@@ -171,6 +176,7 @@ stages:
package:
display_name: "Package"
marketing: true
image: "/images/solutions/solutions-package.png"
description: "Deploy quickly at massive scale with integrated Docker Container Registry"
body: |
......@@ -204,6 +210,7 @@ stages:
secure:
display_name: "Secure"
marketing: true
image: "/images/solutions/solutions-secure.png"
description: "Security capabilities, integrated into your development lifecycle."
body: |
......@@ -252,6 +259,7 @@ stages:
release:
display_name: "Release"
marketing: true
image: "/images/solutions/solutions-release.png"
description: "GitLab's integrated CD solution allows you to ship code with zero-touch, be it on one or one thousand servers."
body: |
......@@ -290,6 +298,7 @@ stages:
configure:
display_name: "Configure"
marketing: true
image: "/images/solutions/solutions-configure.png"
description: "Configure your applications and infrastructure."
body: "GitLab helps teams to configure and manage their application environments. Strong integrations to Kubernetes simplifies the effort to define and configure the infrastructure needed to support your application. Protect access to key infrastructure configuration details such as passwords and login information by using ‘secret variables’ to limit access to only authorized users and processes."
......@@ -331,6 +340,7 @@ stages:
monitor:
display_name: "Monitor"
marketing: true
image: "/images/solutions/solutions-monitor.png"
description: "Automatically monitor metrics so you know how any change in code
impacts your production environment."
......@@ -377,6 +387,7 @@ stages:
defend:
display_name: "Defend"
marketing: true
description: "Defend your apps and infrastructure from security intrusions."
body: |
GitLab provides Network Security and SIEM to help you react to security incidents.
......@@ -435,7 +446,6 @@ stages:
- secure
- defend
established: 2019
internal_only: true
groups:
acquisition:
name: "Acquisition and Activation"
......
......@@ -68,7 +68,7 @@ To create a new stage:
taken from [`data/stages.yml`](/data/stages.yml), and any stage with
`internal_only` set to true is ignored so if that changes, make sure to also
update the code in `source/features/index.html.haml`
(`data.stages.stages.select{|stageKey,stage| !stage.internal_only}.each`).
(`data.stages.stages.select{|stageKey,stage| stage.marketing}.each`).
1. Create `source/stages/<stage-name>/index.html.haml`. You can copy the
format of an existing stage to get started.
......
......@@ -9,7 +9,7 @@ extra_js:
---
.animation-icon-container
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
.animation-icon
= partial "/includes/icons/sdlc-icons/#{stage.key}.svg"
.gitlab-content-container
......
......@@ -28,11 +28,11 @@ extra_js:
%h2
Stages of the DevOps lifecycle
%ul
- data.stages.stages.select{|stageKey,stage| !stage.internal_only}.each do |key, stage|
- data.stages.stages.select{|stageKey,stage| stage.marketing}.each do |key, stage|
= link_to stage.display_name, "##{key}"
&nbsp;&nbsp;
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
.page-container.feature-gallery.text-center.animated{ id: stage.key }
.container
%a.title-link{ href: "/stages-devops-lifecycle/#{stage.key}" }
......
......@@ -37,12 +37,20 @@ product categories defined on this page:
The categories form a hierarchy:
1. **Sub-departments**: Maps to departments in our [organization structure](https://about.gitlab.com/company/team/structure/#table).
1. **Stages**: Stages start with the 7 **loop stages**, then add Manage and Secure to get the 9 (DevOps) **value stages**, and then add the (Enablement) **team stage**. Values stages are what we all talk about in our marketing.
1. **Stages**: Stages start with the 7 **loop stages**, then add Manage, Secure,
and Defend to get the 10 (DevOps) **value stages**, and then add the Growth
and Enablement **team stages**. Values stages are what we all talk about in
our marketing.
1. **Group**: A stage has one or more [groups](/company/team/structure/#groups). Each of the groups has a dedicated backend engineering team. Within shared functions, like quality and product management, individuals are paired to one or more stages so that there are stable counterparts.
1. **Categories**: A group has one or more categories. Categories are high-level capabilities that may be a standalone product at another company. e.g. Portfolio Management. To the extent possible we should map categories to vendor categories defined by [analysts](/handbook/marketing/product-marketing/analyst-relations/). There are a maximum of 8 high-level capabilities per stage to ensure we can display this on our website and pitch deck. There may need to be fewer categories, or shorter category names, if the aggregate number of lines when rendered would exceed 13 lines, when accounting for category names to word-wrap, which occurs at approximately 15 characters.
1. **Features**: Small, discrete functionalities. e.g. Issue weights. Some common features are listed within parentheses to facilitate finding responsible PMs by keyword. Features are maintained in [features.yml](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/features.yml).
A group might have the same scope as a stage but containing all the categories in them, might contain only a single category, but most will form part of a stage and have a few categories in them. Only in case their scope is the same as a stage or category can they have the same name. Group names can be a summation of the categories they cover.
Groups may have scope as large as all categories in a stage, or as small as a
single category within a stage, but most will form part of a stage and have a
few categories in them. Only in the case where the group's scope is the same as
a stage or category can they share the same name. For groups that have two or
more categories, but not *all* categories in a stage, the group name can be a
completely unique word or a summation of the categories they cover.
Every category listed on this page must have a link, determined by what exists
in the following hierarchy:
......@@ -55,7 +63,7 @@ the Epic. etc.
[Solutions](#solutions) can consist of multiple categories as defined on this
page, but there are also other ones, for example industry verticals. Solutions typically represent a customer challenge, how GitLab capabilities come together to meet that challenge, and business benefits of using our solution.
Capabilities can refer to stages, categories, features, but not solutions.
Capabilities can refer to stages, categories, or features, but not solutions.
Adding more layers to the hierarchy would give it more fidelity but would hurt
usability in the following ways:
......@@ -78,8 +86,9 @@ of concern for available capacity.
## Changes
The impact of changes to stages and groups is felt [across the company](/company/team/structure/#stage-groups).
Merge requests with [changes to stages and significant changes to categories](/handbook/marketing/website/#adding-categories-to-the-website) need
to be approved by:
Merge requests with
[changes to stages and groups and significant changes to categories](/handbook/marketing/website/#adding-categories-to-the-website)
need to be approved by:
1. Head of Product
1. VP of Engineering
......
......@@ -23,7 +23,7 @@ when they will reach higher maturity levels (today, May 2019 Contribute in New O
<% milestones = [{:date => Date.today, :label => "Today"},
{:date => Date.new(2019,05,30), :label => "May 2019"},
{:date => Date.new(2019,12,31), :label => "End of 2019"}] %>
<% data.stages.stages.select{|stageKey,stage| !stage.internal_only}.each do |stageKey, stage| %>
<% data.stages.stages.select{|stageKey,stage| stage.marketing}.each do |stageKey, stage| %>
<%= "| **#{stage.display_name}<a name=\"#{stageKey}\"></a>** | | | |" %>
| *Category* | *Minimal* | *Viable* | *Complete* | *Lovable* |
<% data.categories.each do |categoryKey, category| %>
......
......@@ -2,7 +2,7 @@
.table-container
%table.sdlc-table
%tr
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
%td.stage-container
%a{href: "/stages-devops-lifecycle/#{stage.key}/"}
= partial "/includes/icons/sdlc-icons/#{stage.key}.svg"
......@@ -10,7 +10,7 @@
%p #{stage.display_name}
%tr.single-application-row
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
%td.solutions-container
%a.gitlab-logo-container{href: "/stages-devops-lifecycle/#{stage.key}/"}
.devops-tool-tooltip
......@@ -20,7 +20,7 @@
%img.gitlab-logo{ src: "/images/devops-tools/gitlab-logo.svg" }
%tr.separate-application-row
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
%td.devops-tools-container{ id: "#{stage.key}-devops-tools-container" }
- stage.devops_tools.each do |devops_tool|
%a.devops-tool-logo-container{ href: "/devops-tools/#{devops_tool.key.dup.tr('_', '-')}-vs-gitlab.html" }
......
......@@ -12,7 +12,7 @@
%p.table-label.separate-application-label GitLab can replace
.sdlc-table
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
.sdlc-column
.stage-container
%a{href: "/stages-devops-lifecycle/#{stage.key}/"}
......
......@@ -35,6 +35,7 @@
<% group.categories.each do |categoryKey| %>
<% category = data.categories[categoryKey] %>
<% puts categoryKey if !category%>
<% name = if category.available then category.name else "*#{category.name}*" end %>
<% kbdElement = "" %>
<% if category.available && (category.available.year == Date.today.year) %>
<% kbdElement = (category.available <= Date.today) ? "<kbd>New in #{Date.today.year}</kbd>" : "<kbd>Planned #{Date.today.year}</kbd>" %>
......@@ -45,7 +46,7 @@
<% categoryLinks << "[Marketing Page](#{category.marketing_page})" if category.marketing_page %>
<% categoryLinks << "[Documentation](#{category.documentation})" if category.documentation %>
<% categoryLinks << "[Vision](#{category.vision})" if category.vision %>
<%= " * #{category.name}#{kbdElement ? " #{kbdElement} ":''}\\| #{categoryLinks.join(' • ')}" unless categoryLinks.empty? %>
<%= " * #{name}#{kbdElement ? " #{kbdElement} ":''}\\| #{categoryLinks.join(' • ')}" unless categoryLinks.empty? %>
<% end %>
<% end %>
......
......@@ -16,13 +16,13 @@ extra_css:
GitLab is the first single application for the [entire DevOps lifecycle](/stages-devops-lifecycle/). Only GitLab enables [Concurrent DevOps](/concurrent-devops/), unlocking organizations from the constraints of the toolchain. GitLab provides unmatched visibility, higher levels of efficiency, and comprehensive governance. This makes the software lifecycle 200% faster, radically improving the speed of business.
.toc-links
- data.stages.stages.select{|stageKey,stage| !stage.internal_only}.each do |key, stage|
- data.stages.stages.select{|stageKey,stage| stage.marketing}.each do |key, stage|
%a.capitalize{ href: "##{key.gsub('_', '-').downcase}" }
= key.gsub('_', '-').downcase
.gitlab-content-container.padding-top20
.content
- data.stages.stages.select{|stageKey,stage| !stage.internal_only}.each do |key, stage|
- data.stages.stages.select{|stageKey,stage| stage.marketing}.each do |key, stage|
%h2.stage-name{ id: "#{key.gsub('_', '-').downcase}" }
= stage.display_name
.tile
......
......@@ -25,13 +25,13 @@ extra_js:
.table-container
%table.sdlc-table
%tr
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
%td.stage-container
= partial "/includes/icons/sdlc-icons/#{stage.key}.svg"
%p #{stage.display_name}
%tr.separate-application-row
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
%td.devops-tools-container{ id: "#{stage.key}-devops-tools-container" }
- stage.devops_tools.each do |devops_tool|
%span.devops-tool-logo-container.js-roi-choose-tool{ data: { stage: stage.key, devops_tool: devops_tool.key } }
......
......@@ -9,7 +9,7 @@ extra_js:
---
.animation-icon-container
- Gitlab::Homepage::Stage.all!.select{|stage| !stage.internal_only}.each do |stage|
- Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage|
.animation-icon
= partial "/includes/icons/sdlc-icons/#{stage.key}.svg"
.gitlab-content-container
......
......@@ -28,7 +28,7 @@ extra_js:
GitLab is the first single application for the entire DevOps lifecycle. From planning to monitoring GitLab covers every stage and additionally lets you manage and secure across stages. Only GitLab enables Concurrent DevOps, unlocking organizations from the constraints of the toolchain. GitLab provides unmatched visibility, higher levels of efficiency, and comprehensive governance. This makes the software lifecycle 200% faster, radically improving the speed of business.
.solution-image-container.flex-container.align-center.full-width
%img.solution-image.flex-shrink{:src => "/images/stages-devops-lifecycle/devops-loop-and-spans-small.png"}/
- data.stages.stages.select{|stageKey,stage| !stage.internal_only}.keys.each do |solution|
- data.stages.stages.select{|stageKey,stage| stage.marketing}.keys.each do |solution|
- link_url = "/stages-devops-lifecycle/#{solution.to_s.gsub(/_/, '-')}"
- if (data.stages.stages.public_send(solution).image)
.solution-container.flex-container.justify-center.align-center.full-width
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment