summaryrefslogtreecommitdiff
path: root/meson.build
AgeCommit message (Collapse)Author
46 hoursRelease version 0.1.0HEADv0.1.0mainxengineering
This is the first release of the Sia server. It is the Minimal Viable Product (MVP).
46 hoursAdd CHANGELOG.mdxengineering
47 hoursDeploy README.mdxengineering
This information is useful in the deploy tar archive. Thus it is copied there.
47 hourssystemd: Add service and sysusers configuration filesxengineering
This makes it possible to run the Sia server executable on systemd-based Linux distributions with systemd making system administration easier. Maintaining these files in the source instead of packaging repository was decided since systemd is the dominant init system across Linux distributions and thus not every distribution-specific packaging repo needs to re-invent the wheel.
47 hoursDeploy default configurationxengineering
The default configuration from the source tree is embedded into the executable with Go's embed package to assume the correct defaults. Furthermore it is now also part of the artifact tar archive to give users an idea how a configuration file should look like.
47 hoursAdd Meson-tracked project versionxengineering
This allows to use the version of the project in the build system independent from the version control system. Thus a source tar archive can be built the same and also changing the version control system does not change anything regarding the build process.
47 hoursAdd tar archive generation for deploymentxengineering
Bundling all build artifacts into one tar archive is good practise to make deployment easier and underline which files in the build directory are important. zstd was picked for compression because of the very good compression ratio.
47 hoursMake GOOS and GOARCH part of executable namexengineering
This renames `sia-server` to `sia-server-linux-amd64`. This makes clear for which target environment the executable is built and allows to later place additional executables for other environments too without name collisions.
47 hoursImplement passing user configurationxengineering
This allows overwriting values of the default configuration with custom ones.
48 hoursAdd default config parsingxengineering
This is a first step towards configurability.
48 hoursAdd Meson target `test` for unit testingxengineering
48 hoursSeparate Homematic codexengineering
Similar to a previous refactoring of the MQTT-related code this removes all Homematic logic to a dedicated file. The only connection to the outside is the `tx chan MQTTMessage` channel and the `HomematicRun()` function. This makes the code more modular.
2 daysSeparate MQTT logicxengineering
This reduces the coupling between the MQTT-related code and everything else to a single `tx` channel of type `MQTTMessage`. This improves the code quality significantly.
2 daysAdd cache implementationxengineering
This avoids frequent MQTT messages containing the same state.
14 daysAdd Meson build systemxengineering
Meson as a general purpose build system is mightier than what the Go tool can provide. Furthermore it makes it possible to unify build, run and other workflows across projects with different languages.