Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trento (v4) - The future of Bottles #133

Closed
mirkobrombin opened this issue Feb 24, 2021 · 14 comments
Closed

Trento (v4) - The future of Bottles #133

mirkobrombin opened this issue Feb 24, 2021 · 14 comments
Labels
Concept WIP Work In Progress

Comments

@mirkobrombin
Copy link
Member

mirkobrombin commented Feb 24, 2021

It is ironic to talk about v4 not even 1 year after the release of v2 and just after the release of v3 ( with the brand new UI thanks to @jannuary and @alvarlagerlof). But "unfortunately" it is important for me to put order in the project and especially in the code.

Bottles was born as a very simple tool for managing wineprefixes, over time I thought of a very simple tool that sees the use of environments at its core and centralized management of dependencies. Over time (and the desire to add more and more features as well as a beautiful new UI), the code has undergone extreme changes to fit everything we wanted.

To date, Bottles v3 lives with a fairly stable code, a solid foundation of functionality and a beautiful new UI (did I mention that already?) And this might be enough (?)

Sure this can be enough but experience teaches me that over time projects evolve and functionality is increased. Aware of this, I am sure that I cannot add many other features without weakening the code or having to rewrite it to a large extent. Therefore I decided to release v3 (in a few days) and update it only with bugfixes, translations and small improvements in order to focus all my energy on this project, in the future version v4.

What about v4?

The codename of the fourth major release of Bottles is Trento .

With the aim of offering an easily customizable and extendable base, Bottles will be splitted into 4 main components:

  • libwine
  • libbottles
  • bottles-gtk (Bottles)
  • bottles-cli

libwine is a library that acts as an API for Wine, this will include all the methods needed to work with a wineprefix, e.g.:

  • replace dll (with automatic backup)
  • dll overrides
  • add/edit/remove register key
  • change Windows version
  • uninstall software
  • etc

libbottles is the library containing the Bottles core, this contains all the methods to manage the bottles, e.g.:

  • create bottles
  • manage environments
  • manage dependencies
  • manage runners/dxvk (in short, the components)
  • manage installers (i.e. installing programs via our centralized repository)
  • backups (import/export)
  • versioning
  • the download manager
  • etc..

it also depends on the previous one, libwine.

Bottles (bottles-gtk) is the final (Gtk) version of Bottles, with the same UI already seen in v3. This UI will then use libbottles to communicate with our bottles.

It's not hard to imagine what's the purpose of bottles-cli at this point.

This will also bring the following advantages:

  • a library for wine integration via python (the language for the entire project), this can be exploited by other projects which currently lack this functionality
  • the ability to create multiple clients for Bottles, possibly one in Qt for better integration with Desktop based on this toolkit (for example KDE Plasma)
  • a solid foundation, easy to extend without the need to litter the code
  • safer future support and ease for third parties to collaborate on the project

WAIT, this does NOT mean Bottles will be deprecated. As mentioned, Bottles v1 and v3 will remain actively developed, with bugfixes, translations and minor improvements. It is also not said that these do not see other features.

Thanks for the attention!

@mirkobrombin mirkobrombin pinned this issue Feb 24, 2021
@mirkobrombin mirkobrombin added Concept next WIP Work In Progress labels Feb 24, 2021
@mirkobrombin
Copy link
Member Author

GTK 4?

Yes

@AdrianVovk
Copy link

I love this project! I'm working on an OS and I planned on having "compatibility runtimes" for Windows apps. Bottles feels like an awesome foundation for this!

@nguyenhai97
Copy link

I like the idea of bottles-cli, love to see V4 soon ❤️

@mirkobrombin
Copy link
Member Author

Post updated with project structure.

@TiZ-HugLife
Copy link

TiZ-HugLife commented Apr 13, 2021

It's probably important to point out that "libwine" is a thing that already exists; you should choose another name to avoid colliding with it. Since it's related to prefixes, I suggest "libwineprefix".

@mirkobrombin
Copy link
Member Author

It's probably important to point out that "libwine" is a thing that already exists; you should choose another name to avoid colliding with it. Since it's related to prefixes, I suggest "libwineprefix".

I didn't notice as I only looked on pypi, I will evaluate a new name as soon as possible.

@pietrodicaprio pietrodicaprio added this to the 4.0 milestone Apr 30, 2021
@heylix
Copy link

heylix commented May 2, 2021

Nice, I especially like that you want to support Qt :)

@francescomasala
Copy link
Member

Adding Codename "Trento"

@mirkobrombin mirkobrombin changed the title v4 - The future of Bottles Trento (v4) - The future of Bottles Jul 1, 2021
@ovari
Copy link
Contributor

ovari commented Jul 18, 2021

Will the translations from the previous version be copied across to Trento (v4)? Thank you

@mirkobrombin
Copy link
Member Author

Will the translations from the previous version be copied across to Trento (v4)? Thank you

I think so. Trento is developed from scratch but we will find a way to adapt the Treviso translations.

@BigmenPixel0
Copy link

What about libadwaita?

@mirkobrombin
Copy link
Member Author

What about libadwaita?

#610

@mirkobrombin mirkobrombin unpinned this issue Dec 19, 2021
@mirkobrombin mirkobrombin removed this from the Trento (v4) milestone Jan 23, 2022
@mirkobrombin
Copy link
Member Author

Tracking final steps on respective issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Concept WIP Work In Progress
Projects
None yet
Development

No branches or pull requests

10 participants