Difference between revisions of "Funtoo:Macaroni Linux/Luet/Releases/0.28.0"

From Funtoo
Jump to navigation Jump to search
Line 1: Line 1:
{{SoftwareRelease
{{SoftwareRelease
|release_date=2022-08-23
|release_date=2022-09-05
|name=luet
|name=luet
|version=0.28.0
|version=0.29.1
|type=minor
|type=minor
}}
}}


== ChangeLog ==
== ChangeLog ==
This release could be consider the Part 1 of the big refactor of the luet software.
In this release continues the path to review and rewrite the tool:
In particular, with this release I began to rewrite the core engine of the PMS installer and set the base for a behavior completed in the next release:


* the new implementation not yet connected to the main command ''install|uninstall'' is been modified to support ''uninstall'' finalizer. This permits to define commands to run when a package is been removed. For example, rebuild the gnome icons cache when a desktop application is removed, etc.
* rewritten the integration with the library viper/cobra to reduce complexity and cleanup the code. I hope that this resolve the annoying issue that sometime happens where on starting the binary its exit with errors probably for a race on setup correctly the bootstrap phase


* rewritten the `luet uninstall` command. In particular, dropped the options `--full` and `--full-clean` and now the uninstall command recursively resolves the reverse dependencies tree and to propose uninstall of all packages directly related with the selected packages.


* the previous version uses a main metadata file that is load every time you need to search packages, or install new packages. Having one single metadata file doesn't permit to scale. It take about 3sec to read all data that are all loaded in memory. This is like a memory leak when a repository has more of 3000 pkgs also because it contains the list of all files owned by every package. In this first step what i did is read this file only one time just after ''luet repo update'' and then create a metadata.yml file in the local cached tree for every package. This permits to speedup parsing, reading directories in parallel and load in memory only the needed data. When I will begin to rewrite ''luet-build'' binary too the repository tarball will be organized already with this structure to avoid also the unique parsing after ''luet repo update''.
* `luet uninstall` now support uninstall finalizer! This could be implemented with the definition of the `uninstall` section inside the finalizer.yaml.
Here an example: https://github.com/geaaru/luet/blob/geaaru/tests/fixtures/finalizers_uninstall/pkg1/finalize.yaml#L6


 
We will starting the review of the core engine related to the install/reinstall of the packages in the next phases.
* with this release are been integrated hidden command related to the ''miner'' subcommands that permits to work at low level with install/remove of the packages from the luet database. This are like emergency commands to use only when you know what you do. But at the moment is the only way to reinstall full packages without receive a OOM exception. The command ''luet reinstall $(luet s --installed .)'' with more of 3000 package explode your system. Using ''miner'' subcommands will permits a full recovery of your system. With the Part 2 of the refactor the current logic of the command ''reinstall'', ''install'', ''uninstall'' will be reviewed to permits a normal use.
 
 
* this release move ahead the libraries tar-formers at version 0.5.0. This boost of 30x the performance. A detail is available here: https://github.com/geaaru/tar-formers/commit/a545b40ff7c513453683217cff64e4ee82125fe8

Revision as of 20:40, September 6, 2022

Luet 0.29.1 is a minor release which was released on 05 September 2022.


ChangeLog

In this release continues the path to review and rewrite the tool:

  • rewritten the integration with the library viper/cobra to reduce complexity and cleanup the code. I hope that this resolve the annoying issue that sometime happens where on starting the binary its exit with errors probably for a race on setup correctly the bootstrap phase
  • rewritten the `luet uninstall` command. In particular, dropped the options `--full` and `--full-clean` and now the uninstall command recursively resolves the reverse dependencies tree and to propose uninstall of all packages directly related with the selected packages.
  • `luet uninstall` now support uninstall finalizer! This could be implemented with the definition of the `uninstall` section inside the finalizer.yaml.

Here an example: https://github.com/geaaru/luet/blob/geaaru/tests/fixtures/finalizers_uninstall/pkg1/finalize.yaml#L6

We will starting the review of the core engine related to the install/reinstall of the packages in the next phases.