--- layout: default title: Select2 4.0.0 Released slug: announcements-4.0 ---

Pre-release notes


The 4.0 release is ready for early adopters interested in testing it out. You can use the development version, available on GitHub, by getting the source code available in the select2-ng branch. The source code can be downloaded as a zip archive as well.


Select2 4.0.0

The 4.0 release of Select2 is the result of three years of working on the code base and watching where it needs to go. At the core, it is a full rewrite that addresses many of the extensibility and usability problems that could not be addressed in previous versions.

This release contains many breaking changes, but easy-upgrade pathes have been created as well as helper modules that will allow for backwards compatibility to be maintained with past versions of Select2. Upgrading will require you to read the release notes carefully, but the migration path should be relatively straightforward. You can find more information on the modules that have been created to make upgrading easier by looking at the compatibility guide for older Select2 versions.

Below is an in-depth review of what is new in Select2, as well as some of the major changes that have been made.

New features

The notable features of this new release include:

Plugins

Select2 now provides interfaces that allow for it to be easily extended, allowing for anyone to create a plugin that changes the way Select2 works. This is the result of Select2 being broken into four distinct sections, each of which can be extended and used together to create your unique Select2.

Container (selection)

This includes the primary container that users interact with to open the dropdown.

Dropdown

This includes the dropdown that is opened when the container is clicked. This also includes the results list, which is a separate component.

Results

This includes the list of possible options that can be selected.

Data set

This is how the options are calculated.