Projet

Général

Profil

Actions

Souhaits #1822

fermé

Remove non user related files from cofiguration folder

Ajouté par Chris Christiansen il y a 7 mois. Mis à jour il y a 7 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Core
Version cible:
Début:
27/04/2024
Echéance:
% réalisé:

100%

Temps estimé:

Description

Problem description:
The config folder of galette, seems to contain a mix of user application configuration and developer / release application configuration
config.inc.php, behavior.inc.php and maybe also exports.yaml are user configurable.
  1. Users may want to keep their special configurations between installations. Not knowing which files to keep, they keep all files from the config folder, to the detriment of application upgrades that update default configurations, for example paths and versions in paths.inc.php and versions.inc.php
  2. For container setups or setups where you simply want to symlink user configurations, you need to mount or symlink the specific files containing your personal configuration, leading to the problem "which files to link to". You can also mount / symlink the whole config folder, but then you have to copy the developer / release application configuration files over from the original archives.

Problem solution suggestion:
Create a user_config folder, which may be empty from the start. Any file placed here, overrides the corresponding file in the config folder, but only the ones that should be overridable.
I would suggest that the database info in config.inc.php would always be created here (and you can place your unattended install file here if #1821 is solved). And the installer can either copy or move behavior.inc.php and exports.yaml? to the user_config folder if they don't already exist.

Allowing the folder to be empty from the archives of galette, is important for solutions where you want to symlink or mount the whole folder.

Mis à jour par Chris Christiansen il y a 7 mois

Extra comment.

I discovered that when you run galette for the first time, the config.inc.php is created in the config folder. This folder already contains files that comes with galette. So when you run galette in docker you have a problem:

mounts / volumes in docker are assumed to be directories, unless you mount an existing file on the host filesystem. So you have to create config.inc.php before you run the container for the first time. This leads to the #1821 feature request.
If you forget to create the file and you want to use docker, you will get an error, since docker will create a directory called config.inc.php instead of a file. Of course galette can't read this directory as a file and will fail.

To keep everything proof to errors, I suggest this user_config or local_config folder, where database data (config.inc.php) and advanced configuration (behavior.inc.php) and perhaps also export info (exports.yaml) are created / copied during installation, such that your can mount / symlink this user_config or local_config folder and keep your config between installations by keeping the whole config folder.
There are ways past this problem, but galette does actually create this file for you, if you don't have it and that's a nice feature. To keep it even if you want to mount (inside or outside docker) or symlink your configuration. You just need an empty configuration folder for your personal / system configuration. This

Mis à jour par Chris Christiansen il y a 7 mois

Ignore this last line, it was supposed to be deleted, it is just another way I started describing what should happen when you don't have the file and you start for the first time. :)

There are ways past this problem, but galette does actually create this file for you, if you don't have it and that's a nice feature. To keep it even if you want to mount (inside or outside docker) or symlink your configuration. You just need an empty configuration folder for your personal / system configuration. This

Mis à jour par Johan Cwiklinski il y a 7 mois

  • Catégorie mis à Core
  • Statut changé de Nouveau à In Progress
  • Assigné à mis à Johan Cwiklinski

I think about that, and I guess we should keep actual config directory to store "user" data (config.inc.php, exports.yaml, local_* files and so on. That way, user will not have to move their files or configuration, documentation is still accurate - everything will keep working.

I made a PR:
https://github.com/galette/galette/pull/500

All system configuration files has been moved. galette/config directory contains only dist files.

Let me know if that seems good to you.

Mis à jour par Chris Christiansen il y a 7 mois

Hey. Sounds great.

Question related to #1821
What happens if `config` folder (now only for user/local) is empty?
- I guess `config.inc.php` will be auto-generated during installation
- What about other files that is specific to local installation?

Mis à jour par Johan Cwiklinski il y a 7 mois

Chris Christiansen a écrit (#note-4):

Hey. Sounds great.

:-)

Question related to #1821
What happens if `config` folder (now only for user/local) is empty?
- I guess `config.inc.php` will be auto-generated during installation

Yes

- What about other files that is specific to local installation?

The only required file in this directory is the database configuration one. All other possible files are user specific (local override files, exports configuration, behavior file, etc.) and completely optional.

Mis à jour par Chris Christiansen il y a 7 mois

Perfect!

Mis à jour par Johan Cwiklinski il y a 7 mois

  • Version cible mis à 1.1.0

Mis à jour par Johan Cwiklinski il y a 7 mois

  • Statut changé de In Progress à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a 7 mois

  • Sujet changé de Move user config to separate config folder + auto generate default config file à Remove non user related files from cofiguration folder
  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF