Bitbucket Server 5.0 release notes

2 May 2017

If you are upgrading from an earlier version, check the Bitbucket Server upgrade guide. Also, be sure to see the End of support announcements and the changes listed in the API changelog.

The Bitbucket 5.0 changelog is at the bottom of this page.

Try Bitbucket Server 5.0

Committer verification

Git and distributed version control have many benefits out of the box, but controlling access and workflows isn't one of them. For example, without a Git management tool a developer can push commits that others have written to the central repository. This creates problems for organizations with strict security and compliance requirements. Bitbucket lets you address this through permissions and workflow controls including Git hooks. In 5.0, we've added a new committer verification hook, which enforces that only the author of a commit can push those changes back to Bitbucket Server or Data Center. Now you can sleep easy knowing that only authorized code changes can make it to your repositories. 

The committer verification hook in the repository settings in Bitbucket Server & Data Center 5.0

Smart mirroring gets smarter

Smart mirroring in Bitbucket Data Center is a hassle-free way of providing geographically dispersed teams a read-only copy of the repository. By pulling updates from a local mirror, teams can avoid the pain of high-latency and low-bandwidth clone operations. All authentication, permissions, and updates are controlled by the master data center instance keeping admin maintenance to a minimum.

In Bitbucket Data Center 5.0 we're introducing authentication caching - a way for end users to maintain mirror access even in the event of short outages. Instead of communicating to the main server for every login event, credentials are now cached on the mirror for 5 minutes at a time. If network connection is patchy or the main server is offline, users can still fetch/clone using the cached credentials. You can rest easy knowing that Bitbucket Data Center's active-active clustering, disaster recovery, and now authentication caching ensures your code will always be available. This feature is enabled by default for all mirror types - both bitbucket.org mirrors and Bitbucket Server mirrors - and for HTTP basic and SSH auth methods. You can configure these caches within the bitbucket.properties file.

Improved integrations in Bitbucket Server

Traditionally the link between JIRA Software and Bitbucket has been on the commit level (i.e. commit A pertains to JIRA issue ABC-123). In Bitbucket Server 5.0 we're adding repository level shortcuts allowing teams to connect a repository to any related asset, like a JIRA Project. Repository shortcuts make it easy for everyone on the team to find and jump to repository information. Simply link to your JIRA board, Confluence space, Bamboo plans, HipChat room, or whatever else that's important to you. Adding a shortcut to your repo is simple, have a look at the page Add a shortcut link to a repository for details.

Check out repository shortcuts in action

Tighter integrations between Bitbucket Server and Bamboo 

Bamboo's integration with Bitbucket Server is also getting an upgrade. Currently we display build status (e.g. pass/fail) on related commits, branches, and pull requests in Bitbucket Server, but teams were unable to see Bamboo builds in-progress or trigger builds on pull request creation. With the addition of in-progress build status and pull request aware builds in Bamboo, developers gain more control over when their builds kick off and can monitor progress from inside Bitbucket. This frees up Bamboo build agent resources and cuts down on unnecessary build noise. Even better, if you're not using plan branches already, now you can, and know that every pull request will get built. For more information on all of the Bitbucket Server and Bamboo integration enhancements, check out our integration guides

Configuring plan branches to build on the creation of a Bitbucket Server pull request in Bamboo 6.0

There's always room for a bit more fun at work...

Productivity at scale isn't all integrations and workflow. In Bitbucket Server & Data Center 5.0, let your team know how you really feel with emoji and HipChat emoticon support for comments. To look for the perfect emoji type " : " which brings up the list of available options.


Customizations to Bitbucket's server.xml file must be migrated to bitbucket.properties

Since Stash 3.8, the Tomcat server.xml configuration file has survived upgrades. With Bitbucket Server 5.0, we're moving from a webapp that can be deployed into any container (with Tomcat being the one we ship) to a Spring Boot application which starts its own container. 

This changes where you configure properties such as port numbers, context paths, and access protocol (among other things) to centralize custom configuration to a single directory and file, to make upgrading easier for future releases. Due to the complexity of the server.xml file, we will not automatically migrate settings stored there. Admins that have modified the server.xml file will need to manually edit their bitbucket.properties file when upgrading to 5.0+.

To upgrade to Bitbucket Server 5+, you must migrate customizations to bitbucket.properties

Be sure to carefully read the Bitbucket Server upgrade guide to determine what impact this change may have on your instance. The page Migrate server.xml customizations to bitbucket.properties has specifics on which properties need to be migrated, how to migrate them, and includes some examples that demonstrate how to migrate some common customizations.

Environment variables

Bitbucket Server requires some environment variables be set when starting (e.g. BITBUCKET_HOME) and also supports some optional variables (e.g. JVM_MAXIMUM_MEMORYJVM_SUPPORT_RECOMMENDED_ARGS). Prior to Bitbucket Server 5.0, support for consuming these variables from the callers environment was inconsistent.

Some could only be set in the startup scripts, while others would be only be honored in specific circumstances. For example if BITBUCKET_USER was not the same as the user calling the start script, while switching user these environment variables would be dropped.

In Bitbucket Server 5.0 we now honor these environment variables when declared in the caller's the environment at the time the start/stop scripts are called:

BITBUCKET_HOME
BITBUCKET_USER
JAVA_KEYSTORE
JAVA_KEYSTORE_PASSWORD
JAVA_TRUSTSTORE
JMX_PASSWORD_FILE
JMX_REMOTE_AUTH
JMX_REMOTE_PORT
JRE_HOME
JVM_MAXIMUM_MEMORY
JVM_MINIMUM_MEMORY
JVM_SUPPORT_RECOMMENDED_ARGS
RMI_SERVER_HOSTNAME


Start script changes

In Bitbucket Server 5.0, some startup scripts have had their name prefixed with an underscore. These scripts have been deprecated, and you should no longer call these scripts directly. This is to avoid confusion, because previously there were multiple start and stop scripts, making it easy to confuse which one to call. Now, there is only one script, that begins with "start" and one that begins with "stop".

For example, have a look at the differences between the scripts you would run to start and stop Bitbucket without the bundled Elasticsearch.

Bitbucket Server 4.14Bitbucket Server 5.0 
Linux
start-webapp.sh
start-search.sh
Windows
start-webapp.bat
start-search.bat
Linux
./start-bitbucket.sh --no-search
Windows
start-bitbucket.bat /no-search


It's especially important to know this if you use any scripts to automate starting or stopping Bitbucket Server or Data Center, because in order to continue using those scripts with Bitbucket Server or Data Center 5.0 you will need to update your scripts.

Removal of setenv.sh & setenv.bat

The setenv.sh file was significant in Bitbucket Server 4.x as it was the site where tuning a number of environment variables was required. The following table summarises the old and new locations for the thirteen key environment variables:

Environment Variable
Old (4.14)
New (5.0)
BITBUCKET_HOME
set-bitbucket-home.sh (Linux/Mac)
set-bitbucket-home.bat (Windows)
set-bitbucket-home.sh (Linux/Mac)
set-bitbucket-home.bat (Windows)
BITBUCKET_USER
set-bitbucket-user.sh (Linux/Mac)
set-bitbucket-user.sh (Windows)
set-bitbucket-user.sh (Linux/Mac)
set-bitbucket-user.sh (Windows)
JRE_HOME
No placeholder in startup scripts
No placeholder in startup scripts
JVM_MINIMUM_MEMORY
JVM_MAXIMUM_MEMORY
setenv.sh (Linux/Mac)
setenv.bat (Windows)
_start-webapp.sh (Linux/Mac)
_start-webapp.bat (Windows)
JVM_SUPPORT_RECOMMENDED_ARGS
setenv.sh (Linux/Mac)
setenv.bat (Windows)
_start-webapp.sh (Linux/Mac)
_start-webapp.bat (Windows)
JAVA_KEYSTORE
JAVA_KEYSTORE_PASSWORD
JAVA_TRUSTSTORE
JMX_PASSWORD_FILE
JMX_REMOTE_AUTH
JMX_REMOTE_PORT
RMI_SERVER_HOSTNAME
setenv.sh (Linux/Mac)
setenv.bat (Windows)
set-jmx-opts.sh (Linux/Mac)
set-jmx-opts.bat (Windows)


Bitbucket Server 5+ no long supports AJP connections

Starting from version 5.0, Bitbucket Server does not support reverse proxies using AJP connections. While never officially supported, previous versions of Bitbucket Server could use AJP connections. However, with changes to how Bitbucket Server uses Tomcat, using AJP connections with Bitbucket Server (or Data Center) 5.0+ will cause the application to fail on startup.

Changelog

This section will contain information about the Bitbucket Server 5.0 minor releases as they become available. These releases will be free to all customers with active Bitbucket Server software maintenance.

If you are upgrading from an earlier version of Bitbucket Server, check the Bitbucket Server upgrade guide.

The issues listed below are the highlights of all those that have been resolved for the Bitbucket Server 5.0.x releases, and are ordered by votes received. 

5 February 2018 - Bitbucket Server 5.0.10

13 November 2017 - Bitbucket Server 5.0.9

17 September 2017 - Bitbucket Server 5.0.8

22 August 2017 - Bitbucket Server 5.0.7

10 July 2017 - Bitbucket Server 5.0.6

3 July 2017 - Bitbucket Server 5.0.5

23 June 2017 - Bitbucket Server 5.0.4

31 May 2017 - Bitbucket Server 5.0.2

10 May 2017 - Bitbucket Server 5.0.1

2 May 2017 - Bitbucket Server 5.0.0

T Key Summary
Suggestion BSERV-3069 Add support for Emoji icons
Suggestion BSERV-3751 Allow historical aliasing of projects and repositories
Suggestion BSERV-7584 As an admin, I want to use the ED25519 SSH keys
Suggestion BSERV-9521 Allow plugins to perform commit message and file content checks when editing a file in the browser
Bug BSERV-3868 "does not exist at revision" error when browsing files with umlaut characters
Bug BSERV-9358 Merge button does not refresh when PR is approved
Bug BSERV-8226 Cross-repository pull requests prevent deletion of personal forks in some cases
Suggestion BSERV-8802 Support for providing the committer (in addition to author) in the API
Suggestion BSERV-9195 Bitbucket Server Docker container: Support mirror mode
Suggestion BSERV-9194 Make Bitbucket Server Docker container configure external Elasticsearch instead of the bundled Elasticsearch
Bug BSERV-8979 Atlassian 'Default Reviewers' plugin overwrites reviewers if not configured
Suggestion BSERV-9679 Upgrade commonmark-java
Bug BSERV-9656 When Importing external repositories, the username placed in the logs is not necessarily the user who performed the import
Bug BSERV-9694 Attachments cannot be rendered if they contain header-specific characters
Suggestion BSERV-9502 Enhanced logging for Bitbucket Mail
Suggestion BSERV-9539 Improve PreReceiveHook API to provide new commits
Bug BSERV-9294 REST PullRequest API excludes replies in comment count
Bug BSERV-9666 SCM cache configuration is inconsistent, when configured via bitbucket.properties and the REST API
Suggestion BSERV-9648 InternalConverter does not know about DetailedUser
Bug BSERV-9651 Repository Hook Settings REST endpoint documentation examples are incorrect
Bug BSERV-9650 Update the "Contact Support" link to getsupport.atlassian.com
Bug BSERV-9674 Input format for repository hook setting is empty
Bug BSERV-9614 Merge instructions for Fork Pull Request merge conflicts have .undefined in git repository URL
Bug BSERV-10047 Elasticsearch health checks run multiple times
Bug BSERV-10550 Clarify what happens to the user's data when the user is deleted
Bug BSERV-9566 Atlassian Bitbucket Services fail to start if the user who installed Bitbucket Server is a domain user
Bug BSERV-4607 SSH submodule not rendered as link due to different hostname between HTTP and SSH URL
Bug BSERV-9017 Set sun.jnu.encoding to UTF-8 by default in setenv.sh
Bug BSERV-7762 Spelling mistake in Stash logs when Stash is unavailable
Bug BSERV-2684 Database migration to a MySQL database fails if there is a - or . in the database name.
Bug BSERV-9729 Bitbucket doesn't always release SSH hosting tickets
31 issues Refresh

Last modified on Feb 5, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.