Skip to content

Display features that are in Starter but not Core

Brian Rhea requested to merge update-tier-logic into master

Why is this change being made?

@kencjohnston in Slack:

We need to figure out where we want to display features that are listed as not in Core but are in Starter, at the moment they will not be displayed.

Given features.yml tier data structure, it is not possible for something to be in starter and NOT in premium because premium contains everything in starter. That's why the logic in the page works "in reverse" - saying "tell me everything in Ultimate but NOT in Premium", that is what is "In Ultimate exclusively".

Perhaps we can update the display logic to include anything in Premium OR Starter and NOT in Core and call it a day.

Changes

This MR changes the Premium list from:

feature.gitlab_premium && !feature.gitlab_core

to:

(feature.gitlab_premium || feature.gitlab_starter) && !feature.gitlab_core

Counts

To check this work, features represents each object within data/features.yml

  • features => 547
  • feature.gitlab_ultimate && !feature.gitlab_premium => 55 (Ultimate)
  • (feature.gitlab_premium || feature.gitlab_starter) && !feature.gitlab_core => 108 (Premium & Starter)
  • feature.gitlab_core => 348 (Core)

348 + 108 + 55 = 511

That tells us that there are 36 features listed below that are not being displayed in any of these buckets. They are listed below and it appears that the logic in this MR is correct and that a separate issue could be raised to remove or revise the entries which do not currently belong to a tier.

- title: The best place for large open source projects
  description: GitLab is meant to be the best place for any software project. The
    team behind GitLab is addressing issues that maintainers and contributors to large
    open source projects are facing, to make it easier to do both.
  link_description: Making GitLab better for large open source projects
  link: "/blog/2016/01/15/making-gitlab-better-for-large-open-source-projects/"
  category:
  - source_code_management
  gitlab_com: true
  github: true
  pps_aggregate: 0
  pps_recent: 0

- title: Server support for Windows and Mac
  description: Support for running the server on Windows and Mac operating systems
  category:
  - omnibus_package
  link: https://gitlab.com/gitlab-org/gitlab-foss/issues/46567
  gitlab_ci: false
  gogs: true
  gitea: true
  jenkins: true
  bamboo: true
  pps_aggregate: 0
  pps_recent: 0

- title: Runs with less memory and consumes less CPU power
  description: Uses little memory, it runs fine with 512MB. Uses little CPU power
    since Go is a compiled language
  category:
  - unknown
  gitlab_com: false
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gogs: true
  gitea: true
  bamboo: false
  pps_aggregate: 0
  pps_recent: 0

- title: Track Comment Changes
  description: View the full history of comment updates.
  link: https://gitlab.com/gitlab-org/gitlab/issues/3706
  category:
  - team_planning
  - code_review
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  pps_aggregate: 0
  pps_recent: 0

- title: Drag and Drop Tasks
  description: Drag and drop tasks in a task list.
  link_description: See the GitLab issue to implement this
  link: https://gitlab.com/gitlab-org/gitlab-foss/issues/18003
  category:
  - team_planning
  - code_review
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  redmine: partially
  basecamp: true
  microfocus_alm_octane: true
  pps_aggregate: 0
  pps_recent: 0

- title: Rich Object Summary on Link Hover
  description: View an information-rich summary by hovering over links to users, issues,
    merge requests, and other objects in GitLab.
  category:
  - team_planning
  - code_review
  link_description: See the epic that implements this
  link: https://gitlab.com/groups/gitlab-org/-/epics/333
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  bitbucket: false
  azure_devops: false
  pps_aggregate: 0
  pps_recent: 0

- title: Create GitLab Branch from Jira Development Panel
  description: Create a GitLab branch from within the development panel of a Jira
    issue.
  link_description: See issue
  link: https://gitlab.com/gitlab-org/gitlab/issues/2647
  category:
  - integrations
  - source_code_management
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  bitbucket: false
  github: false
  pps_aggregate: 0
  pps_recent: 0

- title: Create GitLab Merge Request from Jira Development Panel
  description: Create a GitLab merge request from within the development panel of
    a Jira issue.
  link_description: See issue
  link: https://gitlab.com/gitlab-org/gitlab/issues/2650
  category:
  - integrations
  - code_review
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  bitbucket: false
  github: false
  pps_aggregate: 0
  pps_recent: 0

- title: Hill Chart Status reporting
  description: 'Hill charts make it simple to report the general status of a work
    item, issue, or project.  Where before the top of the hill, the item is full of
    uncertainty and unknowns, and after the crest of the hill, execution is clear
    sailing with fewer risks and unknowns. '
  category:
  - team_planning
  capability: false
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  broadcom_rally: false
  version_one: false
  microfocus_ppm: false
  planview: false
  basecamp: true
  zoho_sprints: false
  pps_aggregate: 0
  pps_recent: 0

- title: Issue Board with Custom Workflows
  description: An issue board pre-configured with a custom workflow.
  link_description: See epic for details
  link: https://gitlab.com/groups/gitlab-org/-/epics/424
  category:
  - team_planning
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: true
  pps_aggregate: 0
  pps_recent: 0

- title: Issue Board Types
  description: Issue boards/dashboards reflect an organizations flow for processing
    work items. These boards can reflect individualized workflow or follow established
    patterns. Issue board types with established patterns (such as Scrum and Kanban)
    can make setup of new boards easier.
  link_description: See issue for details
  link: https://gitlab.com/gitlab-org/gitlab/issues/977
  category:
  - team_planning
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: true
  jira: true
  jira_align: false
  jira_servicedesk: false
  atlassian_confluence: false
  broadcom_rally: true
  redmine: false
  pps_aggregate: 0
  pps_recent: 0

- title: Issue Board Configuration with Advanced Logic
  description: Define what issues show in an issue board using advanced Boolean logic.
  link_description: See epic for details
  link: https://gitlab.com/groups/gitlab-org/-/epics/291
  category:
  - team_planning
  gitlab_com: false
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  jira: true
  broadcom_rally: true
  redmine: false
  pps_aggregate: 0
  pps_recent: 0

- title: Advanced Time Tracking
  description: 'Able to capture individual time reporting for specific assigned tasks
    and then to allocate labor costs to the appropriate project. Specific features
    would include: estimate, actual, cost, reporting.'
  category:
  - team_planning
  capability: true
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  broadcom_rally: true
  version_one: true
  microfocus_ppm: true
  planview: true
  jira_align: true
  jira_servicedesk: false
  atlassian_confluence: false
  targetprocess: true
  fogbugz: partially
  zoho_sprints: partially
  pps_aggregate: 0
  pps_recent: 0

- title: Out-of-the-box Agile Reporting
  description: Teams have access to more than a dozen out-of-the-box reports with
    real-time, actionable insights into how their team is performing sprint over sprint.
    Example reports are sprint burndown, epic burndown, cumulative flow diagram, velocity
    chart, burn up chart, and sprint report.
  link_description: Read our Burndown Chart Documentation
  link: https://docs.gitlab.com/ee/user/project/milestones/burndown_and_burnup_charts.html
  category:
  - portfolio_management
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  jira: true
  broadcom_rally: true
  blueprint_storyteller: partially
  zoho_sprints: true
  pps_aggregate: 0
  pps_recent: 0

- title: Variable replication factor for Git storage
  description: |
    Scale Git storage to extreme loads and storage volumes cost effectively
    by varying the replication of each repository.
  category:
  - gitaly
  gitlab_core: false
  gitlab_stater: false
  gitlab_premium: false
  gitlab_ultimate: false
  github: true
  github_enterprise: true
  bitbucket_data_centre: false
  pps_aggregate: 0
  pps_recent: 0

- title: SUPPORT file link
  description: Link from new issues to a SUPPORT file, pointing to support resources.
  link_description: See the GitLab issue to implement this
  link: https://gitlab.com/gitlab-org/gitlab-foss/issues/35397
  category:
  - team_planning
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  redmine: false
  pps_aggregate: 0
  pps_recent: 0

- title: Details on duration for each command execution in GitLab CI/CD
  description: |
    Other CI systems show execution time for each single command run in CI jobs, not just the overall time.
    We're reconsidering how job output logs are managed in order to add this feature as well.
  link_description: Learn more about job output logs in the documentation
  link: https://docs.gitlab.com/ee/ci/pipelines/#expand-and-collapse-job-log-sections
  category:
  - continuous_integration
  - continuous_delivery
  gitlab_com: true
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_ci: false
  travis_ci: true
  jenkins: true
  circle_ci: true
  codefresh: true
  electric_flow: true
  buildkite: true
  harness: false
  pps_aggregate: 0
  pps_recent: 0

- title: Interactive Application Security Testing
  description: |
    [IAST](https://blogs.gartner.com/neil_macdonald/2012/01/30/interactive-application-security-testing/) combines elements of static and dynamic application security testing methods to improve the overall quality of the results. IAST typically uses an agent to instrument the application to monitor library calls and more.
    GitLab does not yet offer this feature.
  link_description: ''
  link:
  category:
  - unknown
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  gitlab_ci: false
  synopsys: true
  snyk: false
  ca_veracode: true
  checkmarx: true
  circle_ci: false
  hcl_appscan: true
  microfocus_fortify: true
  sonarqube: false
  sonatype_nexus_platform: false
  travis_ci: false
  codefresh: false
  whitesource: false
  rapid7: false
  qualys: true
  github: false
  gitlab_security: false
  plutora: false
  pps_aggregate: 0
  pps_recent: 0

- title: Bad test quarantine
  description: Don't let red builds become the norm. Across all tests, keep flaky
    or broken tests out of sight (but not out of mind), and keep the build green with
    one-click quarantine of tests.
  link_description: Read more on the issue
  link: https://gitlab.com/gitlab-org/gitlab-foss/issues/52908
  category:
  - continuous_integration
  - code_testing
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  bamboo: true
  buildkite: true
  pps_aggregate: 0
  pps_recent: 0

- title: Domain Specific Language
  description: A Domain Specific Language (DSL) for defining infrastructure configuration
    allows thinking in resources, not files or commands to write declarative rather
    then procedural code.
  category:
  - unknown
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  puppet: true
  chef: false
  electric_flow: true
  pps_aggregate: 0
  pps_recent: 0

- title: Automated Provisioning
  description: Find, discover, and manage bare metal and VM servers. Provision using
    defined polices automatically installing the correct OS or hypervisors, based
    on the information discovered in your environment.
  category:
  - unknown
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  puppet: true
  chef: true
  pps_aggregate: 0
  pps_recent: 0

- title: Infrastructure Orchestration
  description: Model complex infrastructures and the dependencies between distributed
    services and systems that make up an application or application stack using infrastructure
    as code. The infrastructure orchestrator uses the model to manage deployment ensuring
    the right services are available, at the right time, with the right information.
  category:
  - unknown
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  puppet: true
  chef: true
  pps_aggregate: 0
  pps_recent: 0

- title: Configure Governance
  description: CM governance is a review that assesses compliance with established
    performance requirements, commercial and appropriate government standards, and
    functional, allocated, and product baselines. Configuration governance confirm
    that the system and subsystem configuration documentation complies with the functional
    and physical performance characteristics before acceptance into an architectural
    baseline.
  category:
  - configuration
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: partially
  puppet: true
  chef: true
  saltstack: partially
  ansible: partially
  pps_aggregate: 0
  pps_recent: 0

- title: Virtual registries
  description: A virtual registry is a collection of local, remote and other virtual
    registries accessed through a single logical URL.
  link_description: GitLab Epic detailing the issues required to add this functionality.
  link: https://gitlab.com/groups/gitlab-org/-/epics/2920
  category:
  - dependency_proxy
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: false
  bitbucket_org: false
  bitbucket_data_center: false
  gogs: false
  gitea: false
  codefresh: false
  sonatype_nexus_repo: true
  jfrog: true
  roi_case: ''
  shortand:
  hours_per_incident:
  incidents_per_year:
  pps_aggregate: 0
  pps_recent: 0

- title: RPM (Linux) Repository
  description: This planned feature will enable Linux developers to build, publish
    and share RPM packages alongside their source code and pipelines.
  link_description: Check out the issue for additional details on implementation and
    timing
  link: https://gitlab.com/gitlab-org/gitlab/issues/5932
  category:
  - package_registry
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: false
  bitbucket_org: false
  bitbucket_data_center: false
  gogs: false
  gitea: false
  codefresh: false
  sonatype_nexus_repo: true
  jfrog: true
  roi_case: ''
  shortand:
  hours_per_incident:
  incidents_per_year:
  pps_aggregate: 0
  pps_recent: 0

- title: Debian (Linux) Repository
  description: This planned feature will enable Linux developers to build, publish
    and share Debian packages alongside their source code and pipelines.
  link_description: Check out the issue for additional details on implementation and
    timing
  link: https://gitlab.com/gitlab-org/gitlab/issues/5835
  category:
  - package_registry
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: false
  bitbucket_org: false
  bitbucket_data_center: false
  gogs: false
  gitea: false
  codefresh: false
  sonatype_nexus_repo: true
  jfrog: true
  roi_case: ''
  shortand:
  hours_per_incident:
  incidents_per_year:
  pps_aggregate: 0
  pps_recent: 0

- title: RubyGems (Ruby) Repository
  description: This planned feature will enable Ruby developers to setup GitLab as
    a remote RubyGems repository and to build, publish and share packages using the
    command line or GitLab CI/CD. This will also be a valuable feature for GitLab
    and help with [dogfooding](https://about.gitlab.com/handbook/values/#dogfooding)
  link_description: Check out the issue for additional details on implementation and
    timing
  link: https://gitlab.com/gitlab-org/gitlab/issues/803
  category:
  - package_registry
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  bitbucket_org: false
  bitbucket_data_center: false
  gogs: false
  gitea: false
  codefresh: false
  sonatype_nexus_repo: true
  jfrog: true
  roi_case: ''
  shortand:
  hours_per_incident:
  incidents_per_year:
  pps_aggregate: 0
  pps_recent: 0

- title: Allow only forward deployments
  description: 'Forward deployments ensure that when a pipeline runs, it is verified
    to be the most recent deployment and makes sure that an older pipeline doesn’t
    override a newer one.

    '
  link_description: Learn more about forward deployments
  link: https://docs.gitlab.com/ee/ci/pipelines/settings.html#skip-older-pending-deployment-jobs
  solution: Release
  category:
  - continuous delivery
  pps_aggregate: 0
  pps_recent: 0

- title: First class container building
  description: The ability to specify that a container should be built during a CI/CD
    job without needing to specify the implementation details.
  category:
  - kubernetes_management
  - pipeline_authoring
  - continuous_delivery
  link_description: Read more on the issue
  link: https://gitlab.com/gitlab-org/gitlab/-/issues/23141
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  codefresh: true
  buildkite: true
  pps_aggregate: 0
  pps_recent: 0

- title: Code review dashboards
  description: Dashboards with a filterable set of code reviews (could be by project,
    by user, by branch, by status, or a combination of those). Dashboards includes
    code review status and links to get to them. This makes it easy to see what is
    going on with code reviews for a desired subset.
  category:
  - code_review
  link_description: Code review with GitLab
  link: https://about.gitlab.com/blog/2017/03/17/demo-mastering-code-review-with-gitlab/
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  gerrit: true
  crucible: true
  pluralsight_flow: true
  pps_aggregate: 0
  pps_recent: 0

- title: Contributor agreements
  description: Users can be required to sign one or more contributor agreements before
    being able to submit a change in a project.
  category:
  - code_review
  - source_code_management
  link_description: Read more on the issue
  link: https://gitlab.com/gitlab-org/gitlab/-/issues/15899
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  gerrit: true
  crucible: false
  pps_aggregate: 0
  pps_recent: 0

- title: Robot comments
  description: Support for inline comments that are generated by automated third-party
    systems, for example robot comments can be used to represent the results of code
    analyzers.
  category:
  - code_review
  link_description: GitLab merge requests store results
  link: https://docs.gitlab.com/ee/user/project/merge_requests/
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  gerrit: true
  crucible: false
  pps_aggregate: 0
  pps_recent: 0

- title: Works with multiple repository types
  description: Supports more than one repository type, such as Git, Subversion, Perforce,
    CVS, Mercurial.
  category:
  - code_review
  - source_code_management
  link_description: Learn about migrating from other SCMs
  link: https://docs.gitlab.com/ee/user/project/import/
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  bitbucket: false
  gerrit: false
  crucible: true
  pps_aggregate: 0
  pps_recent: 0

- title: Dependency Firewall
  description: |
    For organizations that rely on many open source dependencies, it is important to
    limit their exposure to open source security vulnerabilities. This can be
    done by establishing and enforcing policies to restrict which dependencies
    may be used, by having a central location to verify the integrity of
    dependencies and how they are being utilized.
  link_description: Learn more about Dependency Firewall
  link: https://about.gitlab.com/direction/package/dependency_firewall/
  solution: package
  category:
  - dependency_firewall
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github_com: false
  github_enterprise: false
  bitbucket_org: false
  bitbucket_data_center: false
  pps_aggregate: 0
  pps_recent: 0

- title: Trigger pipeline on any event in code repository app eco-system
  description: 'Enables pipelines/workflows to be started based on when any defined
    event is executed in the code repository or in any app extension of that repository''s
    eco-system. For example, when an event happens in the Slack integration, update
    a repo work item.

    '
  link_description: ''
  link: ''
  solution: Verify
  category:
  - continuous_integration
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  github: true
  buildkite:
    valid: true
    details: Through WebHooks
  pps_aggregate: 0
  pps_recent: 0
  works_by_default:
    gitlab_com: setup_required
    omnibus: setup_required
    chart: setup_required
    source: setup_required
    gdk: N/A

- title: Active confirmation of what is running in production
  description: GitLab knows how to deploy to production (and other environments),
    but then trusts the result. Other vendors actively query the target environment
    to know what is running.
  solution: Release
  category:
  - continuous_delivery
  - environment_management
  gitlab_core: false
  gitlab_starter: false
  gitlab_premium: false
  gitlab_ultimate: false
  gitlab_com: false
  gitlab_ci: false
  spinnaker: true
  pps_aggregate: 0
  pps_recent: 0

Author Checklist

  • Provided a concise title for this Merge Request (MR)
  • Added a description to this MR explaining the reasons for the proposed change, per say why, not just what
    • Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added.
  • Assign reviewers for this MR to the correct Directly Responsible Individual/s (DRI)
    • If the DRI for the page/s being updated isn’t immediately clear, then assign it to one of the people listed in the Maintained by section on the page being edited
    • If your manager does not have merge rights, please ask someone to merge it AFTER it has been approved by your manager in #mr-buddies
  • If the changes affect team members, or warrant an announcement in another way, please consider posting an update in #whats-happening-at-gitlab linking to this MR
    • If this is a change that directly impacts the majority of global team members, it should be a candidate for #company-fyi. Please work with internal communications and check the handbook for examples.

Edited by Brian Rhea

Merge request reports