TeamCity Versionen

Erfahren Sie, was sich in den einzelnen Releases geändert hat – mit Details zu Funktionen, Verbesserungen und behobenen Problemen.

Jan
Feb
Mär
Apr
Mai
Jun
Jul
Aug
Sep
Okt
Nov
Dez
TeamCity On-Premises 2026.1.327. Juli 2026
Korrekturen
  • Addressed more than 20 security vulnerabilities (including a critical CVE-2026-63077 vulnerability that allows attackers to bypass authentication checks and execute arbitrary operating system commands with the privileges of the TeamCity server process).
  • Incorrect or inconsistent test results when running test assemblies in parallel.
  • Perforce child stream changes not being detected, causing commit hooks to match no VCS root instances.
  • Failures when uploading artifacts to Amazon S3 due to the getBucketRegion method.
TeamCity Cloud 2026.1 Build 2363961. Juli 2026
Korrekturen
  • Updated Performance Monitor plugin UI to match Ring UI design system.
  • Projects import: preserve ids on importing to empty server, making it clear that ids are changing when they do.
  • Show the Performance Monitor tab for jobs.
  • "Unmet requirements: exists:" for incompatible agents instead of clear description.
  • Horizontal sidebar behaviour is unclear and unstable.
  • NPM integration has unnecessary text and jumps.
  • Build features UI: placeholder in the search field refers to non-existing items.
  • Pipeline YAML Editor: incorrect error count + misaligned error view.
  • Edit Repository: CSP and PR toggles are available for Any Git Repo with auth type - Anonymous.
  • Pipeline integrations: bring the "Test connection" back.
  • Pipeline yaml parse error should contain location in the yaml.
  • Agent Requirement: RAM Amount condition doesn't work.
  • Adding tags to a pipeline leads to "Error while loading data", the pipeline is inaccessible.
  • Edit Repository: Missing CSP status in the repository component description.
  • Pipeline is broken after project copying.
  • An empty Repository entity is created if the user switches from the pipeline setting to the Admin area.
  • Highlight repository names by exact match, not by symbols.
  • Pipeline steps description isn't aligned with steps if docker file is used in some of the steps.
  • Do not show the text about DSL inconsistency from the DSL tab of pipelines stored in YAML.
  • POM location is in the Advanced Maven settings for pipelines.
  • Cannot create Pipeline, if there is a Build configuration with the same name on the same project level.
  • Broken build if reusing a pipeline with failed jobs in a build chain.
  • Show all inherited pipeline parameters by default.
  • Limit Job Id and Job name length.
  • Perforce failing on newlines in changelist description.
  • Do not shutdown docker compose right on build interruption, as it prevents 'always running' steps from proper execution.
  • Stop build command from the server may cancel the step set to be always executed.
  • Allow Run Custom Build dialog to be resized (to show long values in drop-downs).
  • Build cannot resolve dep. parameters, if it has optional artifact dependency on another skipped conditional dependency.
  • No "Log in" next to the newly created connection in the dropdown.
  • AWS SDK2: remove "(SDK Attempt Count: 1)" from the errors, return back the error code and service name.
  • CONNECT: 401 on access to K8s via proxy with login and password.
  • Creation flow: repository description is always absent for the connections.
  • No reaction after activation of the security patch (it is unclear whether the installation has actually started).
  • 'Store password and API tokens outside of VCS' gets hidden when you disable UI-managed project settings.
  • Using the Filter button on Change Log tab of Versioned Settings leads to 403 CRSF error.
  • Perforce shelve trigger starts a build on excluded stream if feature branches support is disabled.
  • VCS trigger doesn't trigger build on empty branch.
  • Free Disk Space should be able to delete volumes of docker builder.
  • Failed DSL compilation due to invalid cache after moving a Perforce label.
  • Failed to resolve artifact dependency in multinode setup with external artifact storage.
  • 'All compatible agents are outdated and cannot be upgraded' is shown even though some agents are currently undergoing the upgrade process.
  • Deadlock on attempt to save data to test_metadata table.
  • Artifact is missing from the TeamCity web UI while existing in the external storage.
  • TCP Run in Docker: Docker Image autocomplete prioritizes loose substring matches over prefix.
  • The Add Step dialog is not switched automatically to "All" when searching.
  • "Force virtual host addressing" checkbox doesn't work.
  • Cloud Image can't be moved to a pool not containing the project that contains this image.
  • Dorm: Canceled build without agent cannot be displayed: "You do not have enough permissions to view requested agent pool".
  • .NET builds with qualifier agent requirements starting with "Exists=>" cannot find compatible agents if there are incompatible agents in the same pool.
  • Lots of duplicate entry errors on attempt to store a metric id to the dictionary table.
  • Perforce failing on newlines in changelist description.
  • Agent alternate IP address ignored by TeamCity.
  • Working better with non-default branches using MCP.
  • Cleanup of build type groups can fail with an unknown error.
  • Rake build steps are broken (plugin is damaged).
  • Authorize virtual agents action should validate agent pool for cloud agents.
  • [S3] Uploads fail with 403 status code.
  • Build-scoped tokens UX: add descriptions and docs link.
  • Properties for key preserving on rotation (time.min and time.days) are not working.
  • TeamCity cleanup does not remove cancelled multi-node tasks.
  • Creation flow: handle Unauthorized exception in the UI.
  • Excessive '/user' calls during repository listing in BitBucket Cloud connection.
  • Provide more information about the origin of the TeamCity server workspaces.
  • IndexOutOfBoundsException in org.jetbrains.teamcity.fus.client.events.TeamCityListener.
  • Mark test ignored if it was interrupted and parent block gets closed.
  • Messages "Agent will upgrade" and "Agent can't be upgraded automatically" can be shown at the same time.
  • Incorrect "mcpClientToolName" sent to FUS during connection to MCP with Gemini, Copilot and some other tools.
  • Project import loads the whole custom_data_body table.
  • Saving settings on Windows can be slow.
  • Repeating changes collection operations holds a reference to a previous operation via '$0'.
  • Add a primary key to the ignored_tests table to help improve performance of DB replication.
  • BuildPTRIndexer$BuildTask.beforeExecute consumes CPU in case of a large queue.
  • PageExtensionsInterceptor is called for non-WEB POST requests.
  • Calculation of unprocessed node events takes a lot of time.
  • Processing of the events blocks on VCS commits cache initialization.
  • Slow loading of VCS leads to UI slowness.
  • Server cleanup duration ~3x regression on SQL Server after 2025.11.3 upgrade.
  • Too big thread name with lots of "commit" strings.
  • Duplicated IDs in the where clause of the SQL query can cause the PostgreSQL planner to switch to a full table scan.
  • Avoid loading the entire VCS root DAG of commits in memory.
TeamCity On-Premises 2026.1.21. Juli 2026
Korrekturen
  • 'Comparison method violates its general contract!' in BuildPromotionProblems.getBuildProblemsFromDB.
  • Slash ("/") in S3 path prefix leads to signature mismatch.
  • Credentials provided via provideAwsCredentials appear to expire sooner than sessionDuration after upgrade to 2026.1.
  • Build hangs without any message ("InvalidRunningBuildException: Unauthorized access to build with id" in the agent log).
  • Broken build if reusing a pipeline with failed jobs in a build chain.
  • Stop build command from the server may cancel the step set to be always executed.
  • Personal builds fail during agent-side checkout when unshelving a Perforce changelist that contains files opened exclusively.
  • Cloud Image can't be moved to a pool not containing the project that contains this image.
  • Lots of duplicate entry errors on attempt to store a metric id to the dictionary table.
  • Messages "Agent will upgrade" and "Agent can't be upgraded automatically" can be shown at the same time.
  • Server cleanup duration ~3x regression on SQL Server after 2025.11.3 upgrade.
TeamCity Cloud 2026.1Hauptversion5. Juni 2026
Funktionen

Java 21 Migration

  • TeamCity server and build agents no longer support Java versions older than Java 21. This requirement only defines the Java version needed for the server and agents to start successfully; it does not restrict the Java versions your TeamCity projects can build, test, or deploy against.

TeamCity CLI

  • This update adds a new way to work with your TeamCity instances: TeamCity CLI. Alongside the browser-based UI and the extensive REST API, you can now use a command-line tool to interact with TeamCity directly from the terminal. Install the CLI on any machine to check build statuses, start new builds, investigate failures, and handle many other routine tasks without leaving the command line.

Integration with AI Agents

  • This update makes it easier to connect AI tools such as chatbots and agentic IDEs to TeamCity. You can choose between two integration options:
    • The TeamCity <server-url>/app/mcp endpoint provides MCP tools that let AI agents interact with TeamCity.
    • The TeamCity CLI includes an agent skill that helps agents work with TeamCity through terminal commands.

Pipeline Enhancements

  • This version introduces a major enhancement for fully integrating pipelines into your CI/CD workflows: you can now include them in build chains. This lets you create fine-grained setups with pipeline-to-pipeline, pipeline-to-configuration, and configuration-to-pipeline dependencies.

Dynamic Build Step Credentials

  • The new Build-scoped Token feature lets your builds securely generate short-lived GitHub access tokens (up to 60 minutes) on the fly. Pass them to build steps as parameters to enable seamless access to repositories.

SSH Known Hosts

  • The SSH Keys page now includes additional options that allow TeamCity to verify VCS providers it connects to, and abort any additional operations if the host's public key does not match any of the known entries.

Third-party Integration Enhancements

  • Git
    • For security reasons, Git VCS roots no longer support local and UNC file URLs by default.
    • When choosing the Shallow clone Git checkout policy, you can now add the teamcity.git.agent.shallowCloneDepth and teamcity.git.agent.submodules.shallowCloneDepth parameters to set the --depth attribute.
    • The GitLab CE/EE connection now allows you to configure integration with system webhooks. This enhancement allows TeamCity to receive near-instant notifications about new repository changes, as opposed to periodically polling the repository.
    • The Commit Status Publisher build feature now includes the option to set up a custom build configuration name when posting statuses to Git VCS providers (GitHub, GitLab, Bitbucket, and more).
  • Perforce
    • When building Perforce shelved changelists, earlier versions of TeamCity replaced checked-out files with corresponding shelved ones. Starting with this update, TeamCity uses a more sophisticated approach by running p4 resolve after unshelving, allowing it to detect and resolve conflicting changes.
    • You can now specify multiple shelved changelist IDs when triggering a custom build for Perforce build configurations.
  • Kubernetes
    • Kubernetes cloud profiles and connections now include settings that allow you to configure outgoing connections behind a proxy.
  • HashiCorp Vault
    • The HashiCorp Vault Connection now supports authentication via Google Cloud Platform authentication.
  • Jira
    • When configuring connections to on-premises Jira instances, you can now choose between authentication via regular username/password credentials or a personal access tokens issued on the issue tracker side.

Miscellaneous Enhancements

  • All TeamCity build configurations now automatically record agent hardware usage during builds. This change introduces the following updates:
    • The PerfMon build feature is no longer required and has been renamed to Performance Monitor (Legacy).
    • The corresponding tab on the Build Results page is now called Performance Monitor, reflecting that the data is no longer tied to the deprecated feature.
    • A new teamcity.perfmon.feature.enabled parameter allows you to disable CPU, disk, and memory usage collection for specific build configurations or projects.
  • Users with trial TeamCity Enterprise licenses can now use AI Assistant.
  • The list of available Get artifacts from... options now includes Build from the same chain that fails the build if both target and source configuration/pipeline do not belong to the same build chain. Previously, only the Build from the same chain or last finished option was available.
  • In addition to the existing Maximum concurrent builds for this build configuration setting in general build configuration settings, the new If the limit is reached option lets you choose whether TeamCity should queue excess builds or cancel the oldest running ones to free up capacity.
  • Jetbrains have implemented the override.dep. parameter prefix that may completely replace the older reverse.dep. syntax in future TeamCity versions. New parameters can resolve parameter references and do not forcibly push edits to configurations/pipelines that do not have matching parameters.
  • The SAML Authentication plugin is now bundled with TeamCity, so you no longer need to install it separately to enable authentication through external SSO providers.
  • JetBrains have improved the Gradle version selection logic in the Gradle plugin. This change only adds a few info-level entries to the build logs and introduces no visible behavior changes, but it should improve the plugin's overall stability.
TeamCity On-Premises 2026.1.129. Mai 2026
Korrekturen
  • 'Force virtual host addressing' checkbox doesn't work.
  • .NET builds with qualifier agent requirements starting with "Exists" cannot find compatible agents if there are incompatible agents in the same pool.
  • Perforce failing on newlines in changelist description.
  • Agent alternate IP address ignored by TeamCity.
  • Working better with non-default branches using MCP.
  • Rake build steps are broken (plugin is damaged).
  • Authorize virtual agents action should validate agent pool for cloud agents.
  • S3 Uploads fail with 403 status code.
  • Build-scoped tokens UX: add descriptions and docs line.
  • Properties for key preserving on rotation (time.min and time.days) are not working.
  • TeamCity cleanup does not remove cancelled multi-node tasks.
  • Creation flow: handle Unauthorized exception in the UI.
  • AWS SDK2: remove "(SDK Attempt Count: 1)" from the errors, return back the error code and service name.
  • CONNECT: 401 on access to K8s via proxy with login and password.
  • No reaction after activation of the security patch (it is unclear whether the installation has actually started).
  • Build cannot resolve dep. parameters, if it has an optional artifact dependency on another skipped conditional dependency.
  • 'Store password and API tokens outside of VCS' gets hidden when you disable UI-managed project settings.
  • Perforce shelve trigger starts a build on excluded stream if feature branches support is disabled.
  • VCS trigger doesn't trigger build on empty branch.
  • Failed DSL compilation due to invalid cache after moving a Perforce label.
  • Failed to resolve artifact dependency in multinode setup with external artifact storage.
  • Build features UI: placeholder in the search field refers to non-existing items.
  • 'All compatible agents are outdated and cannot be upgraded' is shown even though some agents are currently undergoing the upgrade process.
  • Deadlock on attempt to save data to test_metadata table.
  • Excessive /user calls during repository listing in BitBucket Cloud connection.
  • Pipeline is broken after project copying.
  • Pipeline steps description is not aligned with steps if Dockerfile is used in some of these steps.
  • /app/pipeline MCP requests do not work when user has active 2FA.
  • Limit Job ID and name lengths.
  • Pipeline YAML parse error should contain location in the YAML.
  • RAM Amount condition for pipeline agent requirements doesn't work.
  • Too big thread name with lots of "commit" strings.
  • Duplicated IDs in the where clause of the SQL query can cause the PostgreSQL planner to switch to a full table scan.
  • Saving settings on Windows can be slow.
  • Repeating changes collection operations holds a reference to a previous operation via 'this$0'.
  • PageExtensionsInterceptor is called for non-WEB POST requests.
  • Slow loading of VCS leads to UI slow down.
TeamCity On-Premises 2026.1Hauptversion11. Mai 2026
Funktionen

TeamCity CLI

  • TeamCity 2026.1 adds a new way to work with your TeamCity instances: TeamCity CLI. Alongside the browser-based UI and the extensive REST API, you can now use a command-line tool to interact with TeamCity directly from the terminal. Install the CLI on any machine to check build statuses, start new builds, investigate failures, and handle many other routine tasks without leaving the command line.

Integration with AI Agents

  • Version 2026.1 also makes it easier to connect AI tools such as chatbots and agentic IDEs to TeamCity. You can choose between two integration options:
    • The TeamCity <server-url>/app/mcp endpoint provides MCP tools that let AI agents interact with TeamCity.
    • The TeamCity CLI includes an agent skill that helps agents work with TeamCity through terminal commands.

Pipeline Enhancements

  • Version 2026.1 introduces a major enhancement for fully integrating pipelines into your CI/CD workflows: you can now include them in build chains. This lets you create fine-grained setups with pipeline-to-pipeline, pipeline-to-configuration, and configuration-to-pipeline dependencies.
  • JetBrains redesigned the build details side panel to include all familiar Build Results tabs (such as Overview, Build Log, Parameters, and more), giving you a complete view of each build. It now also includes a pipeline/job switch, so you can quickly filter these tabs by job, making pipelines easier to inspect, debug, and troubleshoot.
  • You can now use the Custom build dialog that allows you to run pipelines with one-time custom settings.
  • Jobs can now use the following build features, previously available only for build configurations:
    • Build Files Cleaner (Swabra).
    • Free Disk Space.
    • Build Cache.
    • XML Report Processing.
  • When editing pipeline Repositories settings, you can now add repositories from existing VCS roots owned by this parent project. Previously, the option to reuse a root was only available when you create a new pipeline.
  • All pipelines that connect to Git repositories using HTTP credentials support repository options that allow these pipelines to track pull requests and publish run statuses. Previously, these options were available only to pipelines created via a configured TeamCity OAuth connection.
  • Pipeline parameters were redesigned to better support pipeline dependencies and provide a more consistent, intuitive model.
  • Jobs no longer define separate input and output parameters. Instead, all job parameters are automatically available to downstream jobs in the same pipeline.
  • Pipeline parameters can now be explicitly marked as input or output, giving you finer control over which values are exposed to downstream configurations and pipelines.
  • Parameters from parent projects no longer need to be imported as they are now automatically available to child pipelines and jobs.
  • If a parent project enables its versioned settings, pipeline YAML is automatically converted to DSL. Currently, the DSL support in pipelines is limited: changes made via TeamCity UI are displayed on a new Kotlin DSL tab, but are not committed automatically and prevent you from running the pipeline. Commit these changes manually to a remote .kts file to restore the pipeline's ability to run.

Dynamic Build Step Credentials

  • The new Build-scoped Token feature lets your builds securely generate short-lived GitHub access tokens (up to 60 minutes) on the fly. Pass them to build steps as parameters to enable seamless access to repositories.

SSH Known Hosts

  • The SSH Keys page now includes additional options that allow TeamCity to verify VCS providers it connects to, and abort any additional operations if the host's public key does not match any of the known entries.

Git

  • For security reasons, Git VCS roots no longer support local and UNC file URLs by default. To re-enable them, set the teamcity.git.allowFileUrl=true internal property.
  • When choosing the Shallow clone Git checkout policy, you can now add the teamcity.git.agent.shallowCloneDepth and teamcity.git.agent.submodules.shallowCloneDepth parameters to set the --depth attribute.
  • The GitLab CE/EE connection now allows you to configure integration with system webhooks. This enhancement allows TeamCity to receive near-instant notifications about new repository changes, as opposed to periodically polling the repository.
  • The Commit Status Publisher build feature now includes the option to set up a custom build configuration name when posting statuses to Git VCS providers (GitHub, GitLab, Bitbucket, and more).

Perforce

  • When building Perforce shelved changelists, earlier versions of TeamCity replaced checked-out files with corresponding shelved ones. Starting with version 2026.1, TeamCity uses a more sophisticated approach by running p4 resolve after unshelving, allowing it to detect and resolve conflicting changes.
  • You can now specify multiple shelved changelist IDs when triggering a custom build for Perforce build configurations.

Kubernetes

  • Kubernetes cloud profiles and connections now include settings that allow you to configure outgoing connections behind a proxy.

HashiCorp Vault

  • The HashiCorp Vault Connection now supports authentication via Google Cloud Platform authentication.

Jira

  • When configuring connections to on-premises Jira instances, you can now choose between authentication via regular username/password credentials or a personal access tokens issued on the issue tracker side.

Miscellaneous Enhancements

  • All TeamCity build configurations now automatically record agent hardware usage during builds. This change introduces the following updates:
    • The PerfMon build feature is no longer required and has been renamed to Performance Monitor (Legacy).
    • The corresponding tab on the Build Results page is now called Performance Monitor, reflecting that the data is no longer tied to the deprecated feature.
    • A new teamcity.perfmon.feature.enabled parameter allows you to disable CPU, disk, and memory usage collection for specific build configurations or projects.
  • Users with trial TeamCity Enterprise licenses can now use AI Assistant.
  • The list of available Get artifacts from... options now includes Build from the same chain that fails the build if both target and source configuration/pipeline do not belong to the same build chain. Previously, only the Build from the same chain or last finished option was available.
  • In addition to the existing Maximum concurrent builds for this build configuration setting in general build configuration settings, the new If the limit is reached option lets you choose whether TeamCity should queue excess builds or cancel the oldest running ones to free up capacity.
  • JetBrains have implemented the override.dep. parameter prefix that may completely replace the older reverse.dep. syntax in future TeamCity versions. New parameters can resolve parameter references and do not forcibly push edits to configurations/pipelines that do not have matching parameters.
  • The SAML Authentication plugin is now bundled with TeamCity, so you no longer need to install it separately to enable authentication through external SSO providers.
  • JetBrains have improved the Gradle version selection logic in the Gradle plugin. This change only adds a few info-level entries to the build logs and introduces no visible behavior changes, but it should improve the plugin's overall stability.

Release Cycle Updates

  • Starting with this release, JetBrains return to the pre-2022 versioning scheme: major TeamCity versions will use the 'YYYY.N' format, where 'N' indicates the release number rather than the month. This change makes the release cycle more predictable and better aligned with other JetBrains products.

Java 21 Migration

  • TeamCity server and build agents no longer support Java versions older than Java 21.
TeamCity On-Premises 2025.11.415. Apr. 2026
Korrekturen
  • Unable to log into TeamCity and list repositories using BitBucket Cloud connection.
  • Adding build type to favorites fails.
  • Agent can refuse running a new command from the server because of incorrect command id assumptions.
  • Exception on attempt to finish a build if there are many unresolved output parameters.
  • Don't hide loader after end of the streaming request.
  • Potentially unnecessary Git ls-remote operation is performed for every check for changes.
  • Too much memory is consumed by overview controller if VCS problem is reported.
TeamCity On-Premises 2025.11.319. Feb. 2026
Funktionen
  • Added support for quick search in remote builds in "My changes" tab.
  • Improved build configurations in a Projects hierarchy on "My changes" tab.
  • Added retries for PowerShell detection command.
  • Docker: Updated bundled Git version: 2.52.0 to 2.53.0.
Korrekturen
  • In the case of multiple Kotlin DSL settings.kts files under the .teamcity directory it should be possible to select the one which should be executed.
  • Docker Images, DinD support: Made Docker GID fixed to align across the releases.
  • SSH Agent-side checkout fails for VCS root created with new creation flow.
  • Incorrect test count when selecting failed tests.
  • Connection settings are cleaned up after changing the parent project for the connection.
  • Fixed PowerShell detection on Windows for PowerShell Core edition.
  • Optimize PowerShell detection on Windows by avoiding launching the PowerShell executable when possible.
  • "Restart server" on the Plugins page does nothing.
  • Long beforeBuildFinish makes build invisible on some pages.
  • "Stop build" button partially obscured in classic UI.
  • Deadlock during logging in from the login dialog while the auto-login feature is enabled.
  • After upgrading to IDEA 2024.3 TeamCity "open in IDE" dialog doesn't detect running IDEA.
  • Login fails with NPE.
  • Project things leaking through the TC plugin.
  • Don't show the re-encryption health report for after the update.
  • Edit roles pages for a user or group as well as user list page are slow if there are many projects available to the current administrator.
  • Locking in AI assistant plugin (DBBackedCustomDataStorage.refresh).
  • Queuing many builds with the same VCS Root Instance and Checkout Rules can lead to builds hanging on the "Finalize build settings" stage.
  • Unnecessary computations are performed in the CommonBranchSpec probably because of the different order of the pull requests returned by the PullRequests build feature.
  • TeamCity performs fetch with ^refs/tags/,+refs/ :refs/* refspec as soon as the number of branches in repository reaches 200.
  • JdkTypedValueSet slows TeamCity server startup.
  • Should preload build promotions from DB in the SecuredBuildHistory::findEntries method.
  • Slow removal of a large project tree (slow ProblemMutingServiceImpl.projectRemoved listener).
TeamCity On-Premises 2025.11.219. Jan. 2026
Funktionen
  • Added the ability to copy code snippets in the AI Assistant.
Korrekturen
  • User ID for buildagent changed with Ubuntu 24.04 Agent docker images.
  • A build hangs on FlushArtifactsStage stage.
  • Agent Terminal button shows for a moment and then disappears.
  • Fixed broken TestName comparator.
  • Loader disappears during the specific stages and the answer is jumping when AI Assistant has generated the answer.
  • IllegalStateException in BuildQueuePriorityOrdering.updateWeights method.
  • Provide scroll and keyboard navigation in the Dependencies and Chains tabs.
  • Investigation assigned notification has a link with name "test details" which leads to build problems instead.
  • Custom run: Different chevron colors in Dark theme.
  • Build hangs in "preparing a build for a start" stage.
  • IncompatibleQueuedBuildsProcessor can mark the build as failed to start too early.
  • Integrations: error unmarshalling content: invalid character '<' for ECR.
  • Pipeline
    • Suddenly appearing secret field in the yaml to navigate to the YAML editor section.
    • Null branch filter in the schedule pipeline trigger.
    • Custom agent requirement is shown vertically.