We are pleased to announce the availability of the first Early Access Program (EAP) release of Bitbucket Server 8.0.
This EAP release is so that app vendors and customers who have written in-house apps can update their apps to ensure they will work with the public release of Bitbucket Server 8.0.
Bitbucket Server 8.0, due in mid-April 2022, is our next platform release and will contain breaking changes .
Important things to note about this EAP release:
- As development of the release is underway, the specifics of breaking changes will evolve and there may be other minor API changes between this release and the public release of Bitbucket Server 8.0.
- This release should not be used in production environments . For all production use and testing of Bitbucket Server, please use the latest official release instead.
Download the EAP
Overview of changes in the EAP
Bitbucket Mesh
Bitbucket Mesh - distributed, replicated, and horizontally scalable Git repository storage system for higher performance and better resilience. Admins can setup Mesh nodes and start migrating repositories from shared file system to Mesh for testing and evaluation.
End of Windows support
Microsoft Windows has always been an inferior platform for hosting Bitbucket Server when compared to Linux. Disk I/O and process forking performance is poor on Windows and this impacts Bitbucketâs performance. As a result, we have never supported Data Center licenses or licenses with more than 500 users on Windows.
Bitbucket 8.0 will not support hosting on the Windows operating system. For app developers running Windows, we recommend running Bitbucket from within Windows Subsystem for Linux or in a virtual machine.
Other supported platform changes
Support for the following has been removed:
- Databases
- PostgreSQL 9.4, 9.5 and 9.6
- MySQL 5.5 and 5.6
- MariaDB 5.5, 10.0, 10.1 and 10.2
- Microsoft SQL Server 2012
- Oracle 11g and 12c R1
- Git (the minimum supported Git version, for the server installed version, is now 2.31)
- Git 2.11 thru 2.30
- Elasticsearch (the new minimum supported version is 7.10)
- 5.5, 6.5, 6.6, 6.8, 7.5 and 7.9
Migrate H2 database to MvStore format
If you are upgrading to Bitbucket 8.0 and use H2 as the database, you need to follow the steps given below for migrating your database file to the supported format. You need to perform these steps before starting Bitbucket on 8.0 -
- Make sure the Bitbucket application is not running.
- Change to your
<Bitbucket Server installation directory>/bin
and use the commandBITBUCKET_HOME=<Home directory> ./h2-migrate-db-file.sh
. Please make sure that one of theJAVA_HOME
orJRE_HOME
environment variables are set before running this command. - There are some additional environment variables you can set for customizing the behaviour of the script -
- BITBUCKET_SHARED_HOME - Set this variable only if the shared home is different from
<BITBUCKET_HOME>/shared
. Note that you donât need to setBITBUCKET_HOME
if you set this variable. - DB_FILE - Set this variable only if you want to provide a custom location for the H2 database file.
<BITBUCKET_SHARED_HOME>/data/db.h2.db
is used by default if this variable is not set. - H2_JAR_PATH - This variable is optional and can be used to set the path of the H2 jar file. The H2 jar bundled in the installation directory is used by default.
- JDBC_USER - This variable is optional and can be used to set the username to connect to the H2 database file. The default username is
sa
. - JDBC_PASSWORD - This variable is optional and can be used to set the password to connect to the H2 database file. The default password is blank (ââ).
- BITBUCKET_SHARED_HOME - Set this variable only if the shared home is different from
Deprecated Java APIs removed
Interfaces, classes, and methods in the Bitbucket Server Java API that were previously marked as deprecated have been removed.
Plugins that use any of these interfaces (which would have generated deprecation warnings when built against Bitbucket Server 7.x) generally wonât build with Bitbucket Server 8.x
Precompiled plugins that used any of the removed interfaces will fail to install or run in Bitbucket Server 8.x, typically with java.lang.NoSuchMethodError
or java.lang.ClassNotFoundExceptions
.
ScmCommandBuilder
changes and the GitWorkTree
API
Bitbucket 8.0 includes changes to support Bitbucket Mesh, which uses replication to provide scaling and high availability. Bitbucket needs to have strict control over updates to repositories to ensure all replicas are updated in sync. Several commands that could earlier be invoked using ScmCommandBuilder
can no longer be used directly starting in 8.0. The following is a comprehensive list of such commands:
"add", "apply", "bisect", "checkout", "checkout-index", "citoool", "clean", "clone", "commit", "commit-tree", "config", "credential", "credential-cache", "credential-store", "daemon", "fast-import", "filter-branch", "gc", "gui", "imap-send", "init", "init-db", "instaweb", "ls-files", "merge-file", "merge-index", "merge-one-file", "merge-tree", "prune", "read-tree", "reflog", "reset", "restore", "rm", "stash", "send-email", "show-index", "sparse-checkout", "status", "submodule", "switch", "web--browse", "update-index", "worktree", "write-tree"
Some of the commands in the above list will be restricted in Bitbucket 8.0 to prevent changes that could break the replication mechanism. Other commands only make sense in non-bare repositories and will only be supported in the context of a GitWorkTree
. The GitWorkTree
API was introduced in Bitbucket 7.14 and there is an introduction to the API in the Bitbucket 7.14 API changelog.
Removed API and REST resources related to Task
s
In Bitbucket 7.2, Task
s were replaced with âblocker commentsâ in order to support top-level tasks and tasks with rich text. Details on affected classes and migration guidance can be found in the Bitbucket 7.2 API changelog.
Change in return type of RepositoryDeletedEvent.getForkIds
and RepositoryDeletionRequestedEvent.getForkIds
Both these classes returned an Iterable<Integer>
and have been changed to return Set<Integer>
for ease of use.
Replaced Bitbucket auditing API with cross-product auditing API
Bitbucket 7.0 introduced a new cross-product audit log that captured more events and more information about each event. It also introduced a new API for auditing events (and a new REST API for retrieving auditing events from the database) and deprecated the Bitbucketâs old auditing API (mostly contained within the com.atlassian.bitbucket.audit
package).
Bitbucket 8.0 removes the old audit API which includes classes in com.atlassian.bitbucket.audit
and a number of other classes that converted between the old system and the new system. :Important: Bitbucket 8.0 also removes the old legacy REST API for getting audit events by project or repository.
Details on the cross-product auditing log and a short introduction to the new API can be found in this post to the Atlassian developer community.
Removed API details
The following classes and interfaces have been removed in Bitbucket Server 8.0. Please see the linked Javadoc for Bitbucket Server 7.21 for informing regarding deprecation and possible alternative classes and interfaces.
AvatarDeletedException
BuildStatus
BuildStatusService
BuildStatusSetEvent
BuildStatusSetRequest
BuildSummary
RestDetailedRepository
RestDetailedRepositoryPage
-
TaskEvent
and subclasses (TaskCreatedEvent
,TaskDeletedEvent
,TaskUpdatedEvent
)
In addition, deprecated methods in existing classes and interfaces across the whole Bitbucket Server API have been removed:
-
NavBuilder
methods related to the Jira commit checker and the old way of building attachments.
Consult the Bitbucket Server 7.21 Java API Reference for details on the removed methods, and their alternatives in Bitbucket Server 8.x.
Deprecated frontend APIs removed
In Bitbucket 7.0, we redesigned the pull request experience to bring a slew of new features and better performance.
Bitbucket 8.0 introduces the same experience to other areas in Bitbucket where we show code diffs: the commit diff page, the create pull request page and the branch compare page. As a result, plugin points on these pages will no longer render. Frontend plugin points on these pages will need to change, similar to what was required for the original pull request update.
Known issues
- There is currently a bug in the Web Resource Manager that means some plugin internationalization may not work as expected. The workaround to this bug is documented in this post in our developer forums.