--- layout: default title: Select2 4.0.0 Released slug: announcements-4.0 ---
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.
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.
The notable features of this new release include:
<select>
elements for all
data adapters, removing the need for hidden <input>
elements.
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.
This includes the primary container that users interact with to open the dropdown.
This includes the dropdown that is opened when the container is clicked. This also includes the results list, which is a separate component.
This includes the list of possible options that can be selected.
This is how the options are calculated.