diff --git a/data/features.yml b/data/features.yml index 14733c4d94f3e1a8aca53206503570d93c40bbbe..feb1904ad338da85b264ca3c70367ee9b664894a 100644 --- a/data/features.yml +++ b/data/features.yml @@ -13,6 +13,20 @@ # gitlab_eep: # competitors: + # gitlab_ce, gitlab_ees, gitlab_eep are needed for the feature comparison + # table under /products. + gitlab_ce: + name: 'GitLab CE' + short_name: 'Community Edition' + logo: '/images/comparison/ce-gitlab-logo.svg' + gitlab_ees: + name: 'GitLab EE Starter' + short_name: 'Enterprise Edition Starter' + logo: '/images/comparison/ees-gitlab-logo.svg' + gitlab_eep: + name: 'GitLab EE Premium' + short_name: 'Enterprise Edition Premium' + logo: '/images/comparison/eep-gitlab-logo.svg' gitlab_com: name: 'GitLab.com Silver' logo: '/images/comparison/gitlab-logo.svg' @@ -28,21 +42,6 @@ competitors: bitbucket_server: name: 'Bitbucket Server' logo: '/images/comparison/bitbucket-logo.svg' - gitlab_self_hosted: - name: 'GitLab Self-hosted' - logo: '/images/comparison/gitlab-logo.svg' - gitlab_ce: - name: 'GitLab CE' - short_name: 'Community Edition' - logo: '/images/comparison/ce-gitlab-logo.svg' - gitlab_ees: - name: 'GitLab EE Starter' - short_name: 'Enterprise Edition Starter' - logo: '/images/comparison/ees-gitlab-logo.svg' - gitlab_eep: - name: 'GitLab EE Premium' - short_name: 'Enterprise Edition Premium' - logo: '/images/comparison/eep-gitlab-logo.svg' gitlab_ci: name: 'GitLab CI' logo: '/images/comparison/gitlab-logo.svg' @@ -55,9 +54,6 @@ competitors: circle_ci: name: 'Circle CI' logo: '/images/comparison/circle-ci-logo.svg' - jira: - name: 'JIRA' - logo: 'null' svn: name: 'SVN' logo: 'null' @@ -213,7 +209,6 @@ features: link: https://docs.gitlab.com/ee/user/permissions.html solution: efficiency gitlab_com: true - gitlab_self_hosted: true gitlab_ce: true gitlab_ees: true gitlab_eep: true @@ -255,7 +250,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false github_enterprise: false bitbucket_org: false @@ -265,7 +259,7 @@ features: link_description: "Read more" link: https://gitlab.com/gitlab-com/infrastructure/issues/2373 solution: efficiency - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: true gitlab_ees: true gitlab_eep: true @@ -287,7 +281,6 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - gitlab_self_hosted: true github_com: false bitbucket_org: false - title: "Export projects" @@ -299,7 +292,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false - title: "Powerful Issue Tracker" description: "Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects." @@ -346,7 +338,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false bitbucket_server: false @@ -359,8 +350,6 @@ features: gitlab_ees: false gitlab_eep: false gitlab_com: false - gitlab_self_hosted: false - not_on_gitlab_com: true github_com: true bitbucket_org: false - title: "Application performance monitoring" @@ -372,7 +361,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false gitlab_ci: true @@ -390,7 +378,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false bitbucket_server: false @@ -409,7 +396,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false bitbucket_server: false @@ -424,7 +410,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: 'partially' bitbucket_org: false bitbucket_server: false @@ -511,8 +496,6 @@ features: gitlab_ees: false gitlab_eep: false gitlab_com: false - not_on_gitlab_com: true - gitlab_self_hosted: false github_com: true - title: "First time contributor badge" description: "Highlight first-time contributors in open source projects" @@ -523,8 +506,6 @@ features: gitlab_ees: false gitlab_eep: false gitlab_com: false - not_on_gitlab_com: true - gitlab_self_hosted: false github_com: true - title: "SUPPORT file link" description: "Link from new issues to a SUPPORT file, pointing to support resources" @@ -535,8 +516,6 @@ features: gitlab_ees: false gitlab_eep: false gitlab_com: false - not_on_gitlab_com: true - gitlab_self_hosted: false github_com: true - title: "Built-in Container Registry" description: "GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management." @@ -548,7 +527,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false bitbucket_server: false @@ -568,7 +546,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false bitbucket_org: false bitbucket_server: false @@ -590,7 +567,6 @@ features: gitlab_eep: true gitlab_com: true github_com: false - gitlab_self_hosted: true bitbucket_org: false bitbucket_server: false gitlab_ci: true @@ -614,7 +590,6 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - gitlab_self_hosted: true github_com: false github_enterprise: false bitbucket_server: false @@ -643,7 +618,7 @@ features: description: "You have complete control of the server/instance, so you can install additional software (intrusion detection, performance monitoring, etc.) and view log files on the server itself. GitLab's advanced log system means everything gets logged and provides you with easy access to a wealth of log file information." link_description: "Learn more about logging" link: https://docs.gitlab.com/ee/administration/logs.html - not_on_gitlab_com: true + gitlab_com: false solution: open_core gitlab_ce: true gitlab_ees: true @@ -657,7 +632,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false - title: "Highly Available setups" description: "For mission critical releases, you cannot afford downtime. Split your app servers, database, etc., into multiple instances and work in read-only mode during backups." @@ -677,7 +652,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false - title: "Use your configuration management software" description: "You can use your choice of configuration management software, from Puppet, Chef, Ansible for quick and straightforward implementation." @@ -687,7 +662,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false - title: "Use standard Unix tools for maintenance and monitoring" description: "Use the tools you know for monitoring and maintenance, whether they're standard or your own. GitLab doesn't restrict you." @@ -697,7 +672,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false - title: "Single package installation" description: "Use GitLab's official repositories or manually download the package to install GitLab in a few steps. All major Linux distributions are supported." @@ -707,7 +682,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false - title: "Single configuration file" description: "All configuration options for administering a GitLab instance are in a single file. Say no to complex setups, your admin will thank you." @@ -717,7 +692,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Basic backup and restore mechanism without additional software" description: "GitLab provides a simple command line interface to backup or restore your whole installation, and is flexible enough to fit your needs." link_description: "Learn more about backing up and restoring GitLab" @@ -726,7 +701,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "IPv6 ready" description: "GitLab supports IPv6 out of the box. The only requirement is for IPv6 to be supported by your server provider." link_description: "Read about the different ways to install GitLab" @@ -735,7 +710,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_com: true github_enterprise: true bitbucket_org: true @@ -745,7 +720,7 @@ features: link_description: "More information about AD / LDAP integration" link: https://docs.gitlab.com/ee/administration/auth/ldap.html solution: integration - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: true gitlab_eep: true @@ -782,7 +757,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false github_enterprise: false bitbucket_org: false @@ -797,7 +771,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true github_com: false github_enterprise: false bitbucket_org: false @@ -806,7 +779,7 @@ features: description: "GitLab Enterprise Edition is publicly readable, meaning you can scan or modify the code to meet your security and development needs. The code used by most other providers is proprietary, meaning you cannot edit or view the source code." link_description: "Read the GitLab Enterprise Edition license." link: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/LICENSE - not_on_gitlab_com: true + gitlab_com: false solution: open_core gitlab_ce: true gitlab_ees: true @@ -897,7 +870,7 @@ features: link_description: "Learn more about Advanced Global Search" link: https://docs.gitlab.com/ee/user/search/advanced_global_search.html solution: innersourcing - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: true gitlab_eep: true @@ -911,7 +884,7 @@ features: link_description: "Learn more about Advanced Syntax Search" link: https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html solution: innersourcing - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: true gitlab_eep: true @@ -931,7 +904,7 @@ features: gitlab_ce: false gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Kerberos user authentication" description: "Authenticate users with Kerberos." link_description: "Learn more about our Kerberos integration" @@ -940,12 +913,12 @@ features: gitlab_ce: false gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Integrate with Atlassian Crowd" description: "Authenticate users with Atlassian Crowd." link_description: "Learn more about our Atlassian Crowd integration" link: https://docs.gitlab.com/ee/administration/auth/crowd.html - not_on_gitlab_com: true + gitlab_com: false solution: integration gitlab_ce: true gitlab_ees: true @@ -958,7 +931,7 @@ features: gitlab_ce: false gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Group webhooks" description: "Add webhooks by default to all projects in a group so you can ensure they are present everywhere." link_description: "Learn more about Group webhooks" @@ -1063,7 +1036,7 @@ features: description: "Run PostgreSQL in a highly available manner, allowing for manual failover (Beta)" link_description: "Learn more about PostgreSQL HA" link: https://docs.gitlab.com/ee/administration/high_availability/alpha_database.html - not_on_gitlab_com: true + gitlab_com: false solution: availability gitlab_ce: false gitlab_ees: false @@ -1072,7 +1045,7 @@ features: description: "Import projects from GitLab.com to a private GitLab instance." link_description: "Learn more about importing projects from GitLab.com" link: https://docs.gitlab.com/ee/workflow/importing/import_projects_from_gitlab_com.html - not_on_gitlab_com: true + gitlab_com: false solution: import gitlab_ce: true gitlab_ees: true @@ -1081,7 +1054,7 @@ features: description: "An admin can email groups of users based on project or group membership, or email everyone using the GitLab instance. This is great for scheduled maintenance or upgrades." link_description: "Learn more about emailing users from within GitLab" link: https://docs.gitlab.com/ee/tools/email.html - not_on_gitlab_com: true + gitlab_com: false solution: compliance gitlab_ce: false gitlab_ees: true @@ -1090,7 +1063,7 @@ features: description: "Ensure that disk space usage is under control." link_description: "Learn more about project size limiting" link: https://docs.gitlab.com/ee/user/admin_area/settings/account_and_limit_settings.html#repository-size-limit - not_on_gitlab_com: true + gitlab_com: false solution: compliance gitlab_ce: false gitlab_ees: true @@ -1098,7 +1071,7 @@ features: - title: "Omnibus package supports log forwarding" description: "Forward your logs to a central system." link_description: "Learn more about log forwarding" - not_on_gitlab_com: true + gitlab_com: false link: https://docs.gitlab.com/omnibus/settings/logs.html#udp-log-forwarding solution: compliance gitlab_ce: false @@ -1138,7 +1111,7 @@ features: link_description: "View the administration documentation" link: 'https://docs.gitlab.com/ee/README.html#administrator-documentation' solution: efficiency - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: true gitlab_eep: true @@ -1162,7 +1135,7 @@ features: description: "GitLab Enterprise Edition gives your Admin’s the ability to automatically sync groups and manage SSH-keys, permissions, and authentication, so you can focus on building your product, not configuring your tools." link_description: "Learn more about LDAP group synchronization" link: https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync - not_on_gitlab_com: true + gitlab_com: false solution: compliance gitlab_ce: false gitlab_ees: true @@ -1192,7 +1165,7 @@ features: description: "Schedule an upgrade time with GitLab. We’ll join a live screen share to help you through the process to ensure there aren't any surprises." link_description: "Learn more about our Premium Support" link: /features/premium-support/ - not_on_gitlab_com: true + gitlab_com: false solution: services gitlab_ce: false gitlab_ees: false @@ -1214,7 +1187,7 @@ features: description: "Auditor users are users who are given read-only access to all projects, groups, and other resources on the GitLab instance." link_description: "Auditor users" link: https://docs.gitlab.com/ee/administration/auditor_users.html - not_on_gitlab_com: true + gitlab_com: false solution: compliance gitlab_ce: false gitlab_ees: false @@ -1229,7 +1202,7 @@ features: link_description: "Learn more about Disaster Recovery" solution: availability link: https://docs.gitlab.com/ee/gitlab-geo/disaster-recovery.html#gitlab-geo-disaster-recovery - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: false gitlab_eep: true @@ -1244,7 +1217,6 @@ features: screenshot_url: "images/feature_page/screenshots/02-user-roles.png" solution: compliance gitlab_com: true - gitlab_self_hosted: true gitlab_ce: true gitlab_ees: true gitlab_eep: true @@ -1393,7 +1365,7 @@ features: gitlab_ce: false gitlab_ees: false gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Code Owners" description: "The ability to specify code owners or reviewers in the repository" link: https://gitlab.com/gitlab-org/gitlab-ee/issues/1012 @@ -1622,7 +1594,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true gitlab_ci: true travis_ci: false jenkins: false @@ -1636,7 +1607,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: true - gitlab_self_hosted: true gitlab_ci: true travis_ci: false jenkins: false @@ -1650,8 +1620,6 @@ features: gitlab_ees: false gitlab_eep: true gitlab_com: false - not_on_gitlab_com: true - gitlab_self_hosted: true gitlab_ci: true - title: "Run CI/CD jobs on Windows" description: | @@ -1858,7 +1826,7 @@ features: link_description: "Learn more about GitLab Geo" solution: scalability link: /features/gitlab-geo/ - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: false gitlab_eep: true @@ -1888,7 +1856,7 @@ features: solution: availability link_description: "Learn more about GitLab's High availability" link: https://docs.gitlab.com/ee/administration/high_availability/ - not_on_gitlab_com: true + gitlab_com: false gitlab_ce: false gitlab_ees: false gitlab_eep: true @@ -1925,7 +1893,7 @@ features: pre-configured appliance using Ops Manager (BOSH) for Pivotal Cloud Foundry. link_description: "Learn more about Pivotal Cloud Foundry Tile for GitLab" link: /2015/11/03/pivotal-cloud-foundry-tile-for-gitlab-ee/ - not_on_gitlab_com: true + gitlab_com: false solution: integration gitlab_ce: false gitlab_ees: false @@ -2027,7 +1995,6 @@ features: link_description: "Learn how to upgrade your GitLab instance" link: /update solution: open_core - not_on_gitlab_com: true gitlab_ce: true gitlab_ees: true gitlab_eep: true @@ -2041,7 +2008,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_enterprise: false bitbucket_server: false - title: "Retrieval" @@ -2105,7 +2072,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false github_com: false github_enterprise: false - title: "Enriched Markdown support" @@ -2214,7 +2181,6 @@ features: gitlab_ees: false gitlab_eep: false gitlab_com: false - gitlab_self_hosted: false github_com: true - title: "Protected branches" description: "Granular permissions for branches you want to protect." @@ -2252,7 +2218,6 @@ features: gitlab_ees: true gitlab_eep: true gitlab_com: false - not_on_gitlab_com: true github_com: false github_enterprise: 'partially' bitbucket_org: false @@ -2321,7 +2286,7 @@ features: gitlab_ce: true gitlab_ees: true gitlab_eep: true - not_on_gitlab_com: true + gitlab_com: false - title: "Project Templates" description: | When creating a new project, you can choose to kickstart your project from a predefined template diff --git a/doc/features.md b/doc/features.md index f7591e34578dffe40b99574d8a123c15c877e93e..2e45045b8f64f96d52b907a919585e59959eb5e3 100644 --- a/doc/features.md +++ b/doc/features.md @@ -2,28 +2,77 @@ All features are listed in a single yaml file ([`/data/features.yml`](/data/features.yml)) under the `features` section. +It is the single source of truth for the following pages: + +- <https://about.gitlab.com/features/> +- <https://about.gitlab.com/products/> +- <https://about.gitlab.com/gitlab-com/> +- <https://about.gitlab.com/comparison/> +- <https://about.gitlab.com/roi/> + +<!-- START doctoc generated TOC please keep comment here to allow auto update --> +<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [Features attributes](#features-attributes) +- [Update the features page (under `/features`)](#update-the-features-page-under-features) +- [Update the products page (under `/products`)](#update-the-products-page-under-products) +- [Update the gitlab-com page (under `/gitlab-com`)](#update-the-gitlab-com-page-under-gitlab-com) +- [Create or update the comparison pages (under `/comparison`)](#create-or-update-the-comparison-pages-under-comparison) +- [Create or update the solutions pages (under `/solutions`)](#create-or-update-the-solutions-pages-under-solutions) +- [Update the Return on Investment calculator page (under `/roi`)](#update-the-return-on-investment-calculator-page-under-roi) +- [Why we use YAML for the solutions, features, and pricing pages](#why-we-use-yaml-for-the-solutions-features-and-pricing-pages) + +<!-- END doctoc generated TOC please keep comment here to allow auto update --> + +## Features attributes + +The following table depicts all possible attributes a feature can have and the +page they're used on. These are the attributes under the `features:` hash in +[`data/features.yml`](/data/features.yml). + +| Feature attribute | Used on page(s) | Description | +| -------------------| --------------- | ----------- | +| `title` | `/features`, `/products`, `/gitlab-com`, `/comparison`, `/roi` | The distinct title of a feature. | +| `description` | `/features`, `/products`, `/gitlab-com`, `/comparison` | The description of the feature. Can include Markdown. | +| `screenshot_url` | `/features` | Relative URL of the feature screenshot if relevant. | +| `link_description` | `/features`, `/comparison` | Below every feature usually a link appears pointing to the feature page or the documentation. This value is its description, e.g., `"Learn more about CI/CD"`. In pages where it's not used, a generic description may appear. | +| `link` | `/features`, `/products`, `/gitlab-com`, `/comparison` | The link pointing either to the feature page (relative link, e.g., `/features/pages`), the docs or an issue on the issue tracker the feature is being worked on. | +| `feature_page` | `/features`, `/products` | Set to true for pages that have their own dedicated page under `/features`. If set to true, the `link` should point to the relevant feature page. All features that have this and `gitlab_ce` set to true, are shown on `/products` under CE (because CE has about as many features in the `features.yml` as EES, it makes EES look less enticing, so we currently only show features that have a feature page). | +| `solution` | `/features` | Every feature must have a solution (category) otherwise CI will fail. Check the [`data/solutions.yml`](../data/solutions.yml) file for a list of existing ones. When in doubt, ask in the `product` chat channel. | +| `gitlab_ce` | `/features`, `/products`, `/gitlab-com` | `true` if the feature is in CE, `false` if not, `'partially'` if partially supported (generally avoid using this). | +| `gitlab_ees` | `/features`, `/products`, `/gitlab-com`, `/comparison` | `true` if the feature is in EES/GitLab.com Bronze, `false` if not, `'partially'` if partially supported (generally avoid using this). | +| `gitlab_eep` | `/features`, `/products`, `/gitlab-com`, `/comparison` | `true` if the feature is in EEP/GitLab.com Silver, `false` if not, `'partially'` if partially supported (generally avoid using this). | +| `gitlab_com` | `/features`, `/products`, `/gitlab-com`, `/comparison` | `true` if the feature is included in GitLab.com Silver, `false` if not or for features which users don't have access to on GitLab.com, for example LDAP authentication or admin settings. | +| `github_com` | `/comparison` | `true` if the feature is on GitHub.com, `false` if not. | +| `github_enterprise` | `/comparison` | `true` if the feature is on GitHub Enterprise, `false` if not. | +| `bitbucket_org` | `/comparison` | `true` if the feature is on Bitbucket.org, `false` if not. | +| `bitbucket_server` | `/comparison` | `true` if the feature is on Bitbucket Server, `false` if not. | +| `gitlab_ci` | `/comparison` | `true` if the feature is in GitLab CI/CD, `false` if not. | +| `travis_ci` | `/comparison` | `true` if the feature is in Travis CI, `false` if not. | +| `jenkins` | `/comparison` | `true` if the feature is in Jenkins, `false` if not. | +| `circle_ci` | `/comparison` | `true` if the feature is in Circle CI, `false` if not. | +| `svn` | `/comparison` | `true` if the feature is in SVN, `false` if not. | +| `saas` | `/comparison` | `true` if the feature is in SaaS, `false` if not. | +| `gitlab_issue_boards` | `/comparison` | `true` if the feature is in GitLab Issue Boards, `false` if not. | +| `trello` | `/comparison` | `true` if the feature is in Trello, `false` if not. | +| `asana` | `/comparison` | `true` if the feature is in Asana, `false` if not. | +| `gitlab_pages` | `/comparison` | `true` if the feature is in GitLab Pages, `false` if not. | +| `github_pages` | `/comparison` | `true` if the feature is in GitHub Pages, `false` if not. | +| `github_pull_requests` | `/comparison` | `true` if the feature is in GitHub Pull Requests, `false` if not. | +| `gitlab_merge_requests` | `/comparison` | `true` if the feature is in GitLab Merge Requests, `false` if not. | +| `shorthand` | `/roi` | This is the id that it's used for the url parameters so users can share their ROI calculations. It needs to have underscores (`_`) instead of spaces in order for it to work. | +| `hours_per_incident`| `/roi` | The number of hours that an incident will take before it's solved. It can be skipped but it will make the calculator return 0 for that feature. | +| `incidents_per_year`| `/roi` | The number of times that an incident will happen in a year. It can be skipped but it will make the calculator return 0 for that feature. | +| `roi_case` | `/roi` |The description of the case that makes use of the feature that's described on the title, if this is skipped the feature will not be considered for the roi features table. | ## Update the features page (under `/features`) The [`/features`](https://about.gitlab.com/features/) page grabs its content automatically from [`/data/features.yml`](/data/features.yml). -The table below tries to describe the minimum values a feature that appears -under the `/features` can have and how they should be used. - -| Features values | Description | -| --------------- | ----------- | -| `title` | The distinct title of a feature. | -| `description` | The description of the feature. Can include Markdown. | -| `screenshot_url` | Relative URL of the feature screenshot if relevant. | -| `link_description` | Below every feature usually a link appears pointing to the feature page or the documentation. This value is its description, e.g., `"Learn more about CI/CD"`. | -| `link` | The link pointing either to the feature page or in the docs. | -| `gitlab_ce` | Set to true if the feature is in CE. | -| `gitlab_ees` | Set to true if the feature is in EES. | -| `gitlab_eep` | Set to true if the feature is in EEP. | -| `not_on_gitlab_com` | Set to true for features which aren't relevant to GitLab.com, for example LDAP authentication. | -| `feature_page` | Set to true for pages that have their own dedicated page under `/features`. If set to true, the `link` should point to the relevant feature page. All features that have this and `gitlab_ce` set to true, are shown on the Products page under CE (because CE has about as many features in the `features.yml` as EES, it made EES look less enticing, so we currently only show features that have a feature page). | -| `solution` | Every feature must have a solution (category) otherwise CI will fail. Check [`data/solutions.yml`](../data/solutions.yml) for a list of existing ones. | +Consult the [features attributes table](#features-attributes) for a complete +list of possible attributes. Example: @@ -44,29 +93,33 @@ Example: The [`/products`](https://about.gitlab.com/products/) page grabs its content automatically from [`/data/features.yml`](/data/features.yml). -It works the same as the features description above. +Consult the [features attributes table](#features-attributes) for a complete +list of possible attributes. ## Update the gitlab-com page (under `/gitlab-com`) The [`/gitlab-com`](https://about.gitlab.com/gitlab-com/) page grabs its content automatically from [`/data/features.yml`](/data/features.yml). -It works the same as the features description above. +Consult the [features attributes table](#features-attributes) for a complete +list of possible attributes. ## Create or update the comparison pages (under `/comparison`) -The [comparison page][comp] grabs its content automatically from -`data/features.yml`. +The [comparison page](https://about.gitlab.com/comparison/) grabs its content +automatically from [`/data/features.yml`](/data/features.yml). There are 2 files in total which you need to create or update: - `data/features.yml`: Update for new comparisons. Comparisons are automatically - generated from the contents of this file. + generated from the contents of this file. Consult the + [features attributes table](#features-attributes) for a complete list of + possible attributes. - `source/comparison/gitlab-vs-competitor.html.haml`: Create for new comparisons. - Every comparison page has its own html file (**use dashes**). + Every comparison page has its own HTML file (**use dashes**). 1. Edit `data/features.yml` (`competitors`, `comparisons` and `features` - sections): + sections). For example: ```yaml competitors: @@ -81,7 +134,7 @@ There are 2 files in total which you need to create or update: comparisons: gitlab_com_vs_github_com: - title: 'GitΗub.com vs. GitLab.com' + title: 'GitLab.com Silver vs. GitΗub.com' link: '/comparison/gitlab-com-vs-github-com.html' product_one: 'gitlab_com' product_two: 'github_com' @@ -97,10 +150,6 @@ There are 2 files in total which you need to create or update: as one paragraph. link_description: "Learn more about Feature Name." link: "link to GitLab's feature page documentation or blog post" - solution: efficiency - gitlab_ce: true - gitlab_ees: true - gitlab_eep: true gitlab_com: true github_com: true ``` @@ -144,22 +193,20 @@ There are 2 files in total which you need to create or update: dropdown menu. The last thing you need to do is create the PDF. Follow the info in [creating comparison PDFs](pdf.md#comparison-pdfs). -[comp]: https://about.gitlab.com/comparison/ - ## Create or update the solutions pages (under `/solutions`) Every feature should have a solution. The list of the existing solutions can be -found at [`data/solutions.yml`](../data/solutions.yml). +found at [`data/solutions.yml`](/data/solutions.yml). To create a new one solution: -1. Edit [`data/solutions.yml`](../data/solutions.yml) and add the new solution. +1. Edit [`data/solutions.yml`](/data/solutions.yml) and add the new solution. You can copy the format of an existing one. >**Note:** There are two categories of solutions: 1) "Phases of the software development life-cycle" and 2) "Quality attributes of GitLab". The features index page - lists them both. The first ones are taken from [`data/solutions.yml`](../data/solutions.yml), + lists them both. The first ones are taken from [`data/solutions.yml`](/data/solutions.yml), so when you add a new solution that belongs to the "Phases of the software development life-cycle", make sure to also update the value in `source/features/index.html.haml` (`data.solutions.solutions.take(7).each` and @@ -168,12 +215,20 @@ To create a new one solution: 1. Create `source/solutions/<solution-name>/index.html.haml`. You can copy the format of an existing solution to get started. -To update an existing solution, just edit [`data/solutions.yml`](../data/solutions.yml). +To update an existing solution, just edit [`data/solutions.yml`](/data/solutions.yml). + +## Update the Return on Investment calculator page (under `/roi`) + +The [`/roi`](https://about.gitlab.com/roi/) page grabs its content +automatically from [`/data/features.yml`](/data/features.yml). + +Consult the [features attributes table](#features-attributes) for a complete +list of possible attributes. ## Why we use YAML for the solutions, features, and pricing pages -We decided to use YAML after attempting to maintain the features, pricing, and -solutions pages independently of one another. This didn't work well because the +We decided to use YAML after attempting to maintain the features, pricing, and +solutions pages independently of one another. This didn't work well because the pages often had overlapping content, and the site wasn't following [DRY principles](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself). Without being DRY, we frequently repeated work unnecessarily and the pages became increasingly @@ -184,20 +239,3 @@ and have people update the YAML files instead of the respective Haml files. For more information, see issues [#1334](https://gitlab.com/gitlab-com/www-gitlab-com/issues/1334) and [#1478](https://gitlab.com/gitlab-com/www-gitlab-com/issues/1478). - -## Update the Return on Investment calculator page (under `/roi`) - -The [`/roi`](https://about.gitlab.com/roi/) page grabs its content -automatically from [`/data/features.yml`](/data/features.yml). - -The table below tries to describe the minimum values a feature for the ROI -calculator will need in order to appear under `/roi`. - -| Features values | Description | -| --------------- | ----------- | -| `title` | The distinct title of a feature. | -| `link` | The link pointing either to the feature page or the docs. | -| `shorthand` | This is the id that it's used for the url parameters so users can share their ROI calculations. It needs to have underscores (`_`) instead of spaces in order for it to work. | -| `hours_per_incident` | The number of hours that an incident will take before it's solved. It can be skipped but it will make the calculator return 0 for that feature. | -| `incidents_per_year` | The number of times that an incident will happen in a year. It can be skipped but it will make the calculator return 0 for that feature. | -| `roi_case` | The description of the case that makes use of the feature that's described on the title, if this is skipped the feature will not be considered for the roi features table. | diff --git a/source/gitlab-com/index.html.haml b/source/gitlab-com/index.html.haml index 9644a9b715d55d3e487497f424ae6bba3ed5a7f7..cf7370dc0e4ec4dcc8d8dd4ffbea6f1685cdc8b1 100644 --- a/source/gitlab-com/index.html.haml +++ b/source/gitlab-com/index.html.haml @@ -65,7 +65,7 @@ extra_js: %li.item-description = plan.support - data.features.features.each do |feature| - - if (feature.gitlab_ce == true && feature.not_on_gitlab_com != true && feature.feature_page == true) + - if (feature.gitlab_ce == true && feature.gitlab_com != false && feature.feature_page == true) %li.line-separator %li.item-description - if (feature.link != nil) @@ -103,7 +103,7 @@ extra_js: %li.item-description = plan.description - data.features.features.each do |feature| - - if (feature.gitlab_ce == false && feature.gitlab_ees == true && feature.not_on_gitlab_com != true) + - if (feature.gitlab_ce == false && feature.gitlab_ees == true && feature.gitlab_com != false) %li.line-separator %li.item-description - if (feature.link != nil) @@ -141,7 +141,7 @@ extra_js: %li.item-description = plan.description - data.features.features.each do |feature| - - if (feature.gitlab_ees == false && feature.gitlab_eep == true && feature.not_on_gitlab_com != true) + - if (feature.gitlab_ees == false && feature.gitlab_eep == true && feature.gitlab_com != false) %li.line-separator %li.item-description - if (feature.link != nil) @@ -209,7 +209,7 @@ extra_js: The following features do not apply to GitLab.com: %ul - data.features.features.each do |feature| - - if (feature.not_on_gitlab_com == true) + - if (feature.gitlab_com == false) %li = feature.title - else diff --git a/source/includes/features/table.html.haml b/source/includes/features/table.html.haml index 72cfc9e11b6bd4a7d7ed37ccbd3a4aa280814153..28d1edcb72344774f4ec93083fb4397aae507270 100644 --- a/source/includes/features/table.html.haml +++ b/source/includes/features/table.html.haml @@ -27,13 +27,13 @@ %tbody.header.first - data.features.features.each do |feature| // CE - - if ((feature.public_send(key_one) == true && feature.link != nil && feature.feature_page == true && feature.public_send(key_two) != nil && feature.public_send(key_three) != nil) && !(feature.not_on_gitlab_com == true && gitlab_com_features == true)) + - if ((feature.public_send(key_one) == true && feature.link != nil && feature.feature_page == true && feature.public_send(key_two) != nil && feature.public_send(key_three) != nil) && !(feature.gitlab_com == false && gitlab_com_features == true)) = partial "includes/features/matrix-row", locals: { key_one: key_one, key_two: key_two, key_three: key_three, feature: feature } - data.features.features.each do |feature| // EE Starter - - if (feature.public_send(key_one) == false && feature.public_send(key_two) == true && feature.public_send(key_three) != nil && !(feature.not_on_gitlab_com == true && gitlab_com_features == true)) + - if (feature.public_send(key_one) == false && feature.public_send(key_two) == true && feature.public_send(key_three) != nil && !(feature.gitlab_com == false && gitlab_com_features == true)) = partial "includes/features/matrix-row", locals: { key_one: key_one, key_two: key_two, key_three: key_three, feature: feature } - data.features.features.each do |feature| // EE Premium - - if (feature.public_send(key_two) == false && feature.public_send(key_three) == true && !(feature.not_on_gitlab_com == true && gitlab_com_features == true)) + - if (feature.public_send(key_two) == false && feature.public_send(key_three) == true && !(feature.gitlab_com == false && gitlab_com_features == true)) = partial "includes/features/matrix-row", locals: { key_one: key_one, key_two: key_two, key_three: key_three, feature: feature }