Release day 2022.2.14
today isRelease Day!
It’s Release Day again!
Another two weeks of work has been done and it’s time to celebrate another release day!
This release brings with it many new features, some in great demand and others that you are sure you will like. Even if the project grows fast and each new version has always introduced something new, this update is a game changer because it takes Bottles out of the concept of the common wineprefix manager and enters the automation of the software installation. Ok, this is something that has actually already been seen in other programs but in ours we have tried to do things a little differently, we will talk about it shortly.
Ok now let’s get to the point. What’s new in this version?
In 2019 we announced Bottles v2, a complete rewrite of the project that included a bunch of very pretentious features, including versioning, a dependency manager, a component manager and support for installers. All these features have been integrated a little at a time and today we officially announce the arrival of the installers, completing the circle.
What are installers?
These are sets of instructions interpreted by Bottles to replicate the installation of a program. This process is written in manifest files by the maintainers, who were able to install the program following the same steps.
Unlike other managers, these installers use the structure and tools offered by Bottles to automate the entire process and not break the “logic” of the bottles, keeping all the logged parameters (dxvk, vkd3d, esync, fsync ..) as well as the dependencies. Versioning will also be used if enabled, to create restore points in the installation phase (this is the level of integration we are talking about, each new version must be able to be exploited by the installers directly or indirectly, creating a single ecosystem where each component communicates perfectly with the others).
How to use them?
Now the installers are enabled by default, just open the bottle you are interested in and access the Installers section, then choose the one you are interested in and press the button to install it.
In the list you will also see a grade (Bronze, Silver, Gold, Platinum), these indicate the compatibility level of the application. Unlike others, the grade is decided after the installation of the program, including all the tweaks applied by the installer, thus evaluating the final user experience of the program and not how “complex” it was to install it.
So if a program is rated Bronze, it means that everything that (at the moment) could be done has been done to make it go, the program works but not perfectly (graphical glitches, rare crashes) and some features are not accessible. If it is Silver it means that everything works but that there may be minor bugs or minor functionalities blocked, then Gold if all the functionalities are accessible and any glitches are not blocking. If the rank is Platinum it means everything works perfectly.
Each maintainer must review the installer before publishing it and making it accessible to everyone. This and the manifest are accessible from the installers screen, using the installer context menu.
When the installation procedure is complete, you will be able to go back to the programs list and find the installed program, ready to run. You can run the installation multiple times even in the same bottle, so if a major update is done by the maintainer, or you just broke something and want to “refresh the installation”, just re-install it. Obviously this will detect that the program is already installed and in many cases you will be offered to repair it, so it will be up to you to decide how to act, however dependencies and parameters of the bottle will be re-aligned with the installer instructions.
At the moment there is no notification of an installer update but it will come with a later version.
Installers define the required arch to run them, so if you are running a win32 bottle, all win64 installers will not be shown in the list.
With a view to future growth of this feature, we have created a dedicated section on the website, where all installers are listed and easily browsed.
It is possible to filter the installers by degree of compatibility, while from the dropdown we can reach the manifest and by clicking on the installer title we access the facilitated overview with screenshots and other useful information.
See a full example here.
We are still working on the user reviews system and it will be available soon. This will be more of a user comments / feedback system, as the review is that of the maintainer, so these comments should be aimed at giving advice and feedback to the maintainer.
Change bottles default location
Most requested feature ever. I know you asked for it too.
With this release it is possible to change the default path where bottles are stored. This is very useful if you want to use an external drive, a dedicated partition or just have them in another location.
To enable it simply go to Bottles preferences and look for the Custom bottles path item in the Advanced section in General (Bottles restart required).
Note that in the case of Flatpak, you will need to give Bottles permission to access the path if it is outside the sandbox. Read the documentation here.
Changing the path, your bottles present in the original path will remain (if there are any). You can reset the setting at any time always from the Bottles Preferences.
Runtime for everyone
A few releases ago we announced the Bottles Runtime, a bundle of useful libraries and resources that (if any) injecta Bottles into its environment to ensure runner compatibility.
As the functionality was still on trial, it was limited to Flatpak users only as it was easy to provide it directly with installation. From this release it is finally available for everyone!
Flatpak users will always find the latest version of the updated runtime along with Bottles. All other users, on the other hand, if it is not the first launch, will have to install it through the appropriate new Core section in the Bottles preferences, in the first launch it will be installed together with all the other essential components (~ 10MB).
Unlike other components such as runner, dxvk, dxvk-nvapi and vkd3d, this one cannot be installed in multiple versions but is instead updated.
Search in bottles list
In some cases our bottle list can become very long, it depends on how many tests are done, for example if you are a maintainer or just want to do a lot of experiments, so we have integrated a search bar.
This hidden by default and is shown when there are at least 10 bottles.
The integrated Task manager has received some improvements and the ability to terminate processes. This might be an obvious feature for a Task manager but Bottles’ previous structure did not allow to implement it, and thanks to the new WINE backend introduced in the last release, we are now able to provide it.
To end a process, just select from the list and press the dedicated button from the headerbar.
The new Caffe runner is based on WINE 7.2, read here the complete changelog.
All other changes
There are a lot of other changes and improvements in this release. Below are other noteworthy ones, for all the others, refer to the GitHub organization.
- Install programs in one-click using our community installers
- Change default bottles location from preferences
- New repositories manager makes fewer requests and takes less time to load
- Runtime is now also available for non-Flatpak packages
- Search in bottles list if there are at least 10 items
- Automatically fallback to another runner if the system doesn’t support Caffe 7+
- Installers can now declare their architecture, so incompatible installers will not be shown
- Dependencies can now be re-installed if something goes wrong
- Programs can now be launched trough terminal right from the context menu
- Task manager can now terminate processes
- WINE Explorer now available from utilities
- New userdir/ placeholder for installers to access sandboxed user directory
- Improved Windows version switch, other keys are updated to ensure that programs detect the correct version
- Improved health check dialog with syntax highlighting
- General UI improvements for consistency
- Introducing SystemComponents to handle unpackable components for non-Flatpak packages
- Support dxvk-async as a component
- Using XDG_DATA_HOME for default Bottles paths (Thanks @nanonyme)
- Gamescope support in Flatpak (Thanks @BigmenPixel0)
- Fixed missing GtkSource namespace, was causing crashes
- Fixed preferences regression, vkd3d was not displayed
- Fixed a bug in Executor, was passing wrong arguments
- Fixed a bug in WineCommand, was not getting the bottle parameters
- Fixed a bug in components manager, was trying to remove non-existent files
- Fixed a bug in DXVK version change, was removing the initial backup
- Fixed a bug in installers, programs list was not updated immediately
- Fixed a bug in programs list, uninstallers were not hidden
- Fixed a bug in components manager, was causing crashes with not-known componnets
- Fixed gamemode in Flatpak
- Fixed a bug in WineCommand cwd, was not setting the value
- Fixed a bug in Layered environment, layers key was set as list instead of dict
- Fixed a bug in layered programs, was not able to launch due to wrong runtime configuration location
- Fixed a bug in layered dependencies, tree was not updated correctly
- Fixed a bug with config files, was causing exceptions with missing keys
- Fixed a bug in update_config action, was try to handle a None value, providing a default value instead
- Swedish translations thanks to @bittin, @Lemonmeth, @eson57
- Italian translations thanks to @albanobattistella, @phaerrax
- Czech translations thanks to @panmourovaty
- Galician translations thanks to @frandieguez
- Russian translations thanks to @Smoque
- Vietnamese translations thanks to Giai Ngo
- French translations thanks to @ulroy67
- German translations thanks to Lasse Palm
- Portuguese translations thanks to @laralem
- Spanish translations thanks to @oscfdezdz, @d33vliter
- Norwegian Bokmål translations thanks to @comradekingu
- Portuguese (Brazil) translations thanks to @andrelomba86
- Indonesian translations thanks to @rezaalmanda, @frnmz
- Turkish translations thanks to @ersen0, @Dhizaes
- Esperanto translations thanks to phlostically
- Chinese (Simplified) translations thanks to Eric, @lumingzh
- Finnish translations thanks to Jiri Grönroos
- Japanese translations thanks to @shuriken1812
- Croatian translations thanks to @milotype
- Hungarian translations thanks to @ovari
- Polish translations thanks to Krzysztof Marcinek
- Hindi translations thanks to @athenasaurav
- Basque translations thanks to Sergio Varela
- Greek translations thanks to @dim20
Thanks to all users who contributed to this release!
~ Bottles’ Developers