RaphaelRochet / arch-update

Update indicator for ArchLinux and Gnome-Shell
https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/
GNU General Public License v3.0
229 stars 69 forks source link

Build all binaries with a Makefile #213

Open ganskef opened 1 year ago

ganskef commented 1 year ago

It's very unpleasant, inflexible and error prone to handle all the gettext files by hand. I've found some misnamed files and wrong parameters in the master branch (see the fixes in #212 ). I think it would be better to use a make or meson build.

RaphaelRochet commented 1 year ago

Hi, thanks for you interest, but I'm not used to makefiles and such, and i don't need to mess with it for now. (I have scripts to update pot, update all .po, compile all .mo and make the .zip ). I like editing and testing right in place, hate to have to "make /make install" every time I change a coma somewhere. Extensions are pure javascript, and it's a blessing not to have to compile it each time. Need to read about makefiles, I want to fully understand what it does. Also can't merge that, I need .mo files right now for my release routine to work. (even thought I recompile them all)

ganskef commented 1 year ago

I like the simplicity of arch-update. It's clean, not complicated. I needed to test my translation. My modifications caused updating the other translations - without your scripts. I've found some inconsistencies during this process. And, I needed to know what's in the binaries, maybe a payload :-) .

I'm not very familiar with GNU make, but I'm familiar with build systems in general. I've adapted this file, but I'll strip down unnecessary features. Just give me the .PHONY list and suggestions.

RaphaelRochet commented 1 year ago

Correct workflow would be : 1/ PR for features an d 2/ PR for translations (after I'd update the pot/po files) But I get the point. As you can see I've not close this PR, a makefile may be the way to go. However I will probably come with my own, as an exercise to learn about it. As you said for binaries, I don't want to include something I don't fully understand.

ganskef commented 1 year ago

Great! Build systems always should make your day better :-) . But they are not programmatic like a shell script. Their goal is to handle the necessary files and steps only. A make twice should always return nothing to do. A make; make install is the same as make install only. Nevertheless GNU make is very close to shell and it's simple in this scale. It's good for build to have a src folder to search and good to have a build folder to delete and exclude from repository. Note: Meson, a modern build system used for GNOME, uses more the convention over configuration approach. If you use the conventional structure the build file is very simple, but you have to know and follow the convention. I've seen https://github.com/F-i-f/meson-gse/ used in extensions, a very little extension too (maybe for educational reason). Every build system with misunderstood build files can be a pain and simple mistakes often not depends on the system. So lets keep it simple and clean with make.