]> git.corax.cc Git - foundry/log
foundry
4 years agoinclude/msg/*: Change name of "tid" field to "context"
Matthias Kruk [Sun, 18 Jul 2021 00:50:14 +0000 (09:50 +0900)]
include/msg/*: Change name of "tid" field to "context"

The "tid" field was renamed to "context" in the specifications of all
message types, but the implementations still refer to the old name.
This commit changes the implementations of all message types to use
the correct field name.

4 years agospec/*: Rename "tid" field to "context"
Matthias Kruk [Sun, 18 Jul 2021 00:37:20 +0000 (09:37 +0900)]
spec/*: Rename "tid" field to "context"

The object that is used to corellate parts of a build transaction has
been renamed from transaction to context, and therefore the name
"transaction identifier" is not correct anymore.
This commit updates all message specifications so that the field that
stores the context identifier is called "context".

4 years agospec/commit: Remove timestamp field from commit messages
Matthias Kruk [Sun, 18 Jul 2021 00:31:04 +0000 (09:31 +0900)]
spec/commit: Remove timestamp field from commit messages

The commit message specification contains a timestamp flag that is
currently not implemented. Furthermore, the timestamp can also be
acquired from the enclosing ipc_msg, so it is not necessary to
duplicate the field in the higher layers.
This commit removes the timestamp field from the message specification.

4 years agoinclude/context: Add module to keep track of build/test contexts
Matthias Kruk [Sun, 18 Jul 2021 00:13:54 +0000 (09:13 +0900)]
include/context: Add module to keep track of build/test contexts

This commit adds the context module, which implements a set of functions
to track the state of a transaction across the buildsystem. This module
will be used to store the logs and artifacts associated with a context in
a central location, identified by the context identifier which is stored
in several of the IPC messages.

4 years agomergebot: Add bot for merging branches of a repository
Matthias Kruk [Tue, 13 Jul 2021 23:01:35 +0000 (08:01 +0900)]
mergebot: Add bot for merging branches of a repository

This commit adds mergebot. Mergebot accepts merge request messages
and will attempt to merge the one branch into another. Currently,
this only works for merges that can be realised by fast-forwarding
the target branch.

4 years agodispatchbot: Add bot for issuing orders to other bots
Matthias Kruk [Tue, 13 Jul 2021 22:56:42 +0000 (07:56 +0900)]
dispatchbot: Add bot for issuing orders to other bots

This commit adds dispatchbot. Dispatchbot subscribes to all relevant
topics (such as "commit", "test", etc.) and emits orders to other bots
depending on the messages that it has seen.

4 years agoinclude/msg/*: Place all foundry messages in a base message
Matthias Kruk [Sun, 11 Jul 2021 06:32:19 +0000 (15:32 +0900)]
include/msg/*: Place all foundry messages in a base message

To make foundry messages easily distinguishable, they should each be
placed in a base message that contains a property for the message type.
This commit modifies the modules for all of the foundry message types
so that they are enclosed in a base message.

4 years agoinclude/msg: Add foundry base message type
Matthias Kruk [Sun, 11 Jul 2021 06:31:53 +0000 (15:31 +0900)]
include/msg: Add foundry base message type

Because the current foundry implementation transmits all message types
directly on top of the ipc layer, distinguishing message types is not
trivial.
This commit solves adds a base message type for foundry messages,
including an attribute that contains the message type, making it
making it possible for message types to be easily distinguished.

4 years agoinclude/msg: Add modules for foundry IPC message handling
Matthias Kruk [Sun, 4 Jul 2021 09:10:52 +0000 (18:10 +0900)]
include/msg: Add modules for foundry IPC message handling

This commit adds modules providing a convenient interface to
generate and parse any of the message types that are used for
IPC between foundry components.

4 years agospec: Add JSON Schemas for foundry IPC messages
Matthias Kruk [Sun, 4 Jul 2021 09:09:41 +0000 (18:09 +0900)]
spec: Add JSON Schemas for foundry IPC messages

To make foundry more flexible and scalable, the next release will
implement a messaging-based IPC approach using JSON objects.
This commit adds JSON schemas for all message types that will be
used by foundry.

4 years agobuildbot,distbot: Implement handling of build ids
Matthias Kruk [Sun, 25 Apr 2021 07:12:20 +0000 (16:12 +0900)]
buildbot,distbot: Implement handling of build ids

To make the progress of a build trackable, build ids are necessary.
This commit makes buildbot and distbot handle the build ids that are
assigned by the watchbots, and print them along with log output so
that printed messages can be associated with a specific build.

4 years agowatchbot: Assign a buildid when a new build job is enqueued
Matthias Kruk [Sun, 25 Apr 2021 04:16:45 +0000 (13:16 +0900)]
watchbot: Assign a buildid when a new build job is enqueued

When a repository change is detected, watchbot only places the path
and branch name in the queue. To track a build through the entire
build system, a build id should be assigned as well.
This commit modifies watchbot to also place a build id in the queue.

4 years agodistbot: Check more thoroughly if the specified repository exists
Matthias Kruk [Sun, 25 Apr 2021 03:53:25 +0000 (12:53 +0900)]
distbot: Check more thoroughly if the specified repository exists

Distbot assumes that the repository has been initialized if the
directory exists. This means that the repository won't be initialized
if an empty directory was passed to distbot.
This commit makes distbot check the specified repository a little more
thoroughly, to make sure empty directories will be initialized, too.

4 years agobuildbot: Use dpkg-buildpackage -k instead of --sign-key
Matthias Kruk [Sun, 25 Apr 2021 03:48:50 +0000 (12:48 +0900)]
buildbot: Use dpkg-buildpackage -k instead of --sign-key

Older versions of dpkg-buildpackage don't understand the --sign-key
option. With such versions, the -k option has to be used instead.
This commit changes buildbot to pass the key to dpkg-buildpackage
using the -k option.

4 years ago{watch,build,dist}bot: Make all bots use similar commandline options
Matthias Kruk [Sat, 24 Apr 2021 13:35:48 +0000 (22:35 +0900)]
{watch,build,dist}bot: Make all bots use similar commandline options

Watchbot, buildbot, and distbot do not use the same options for inputs
and outputs such as queues or directories. This commit changes the
understood commandline arguments so that the same options have the same
meaning.
Further, this commit updates the three bots to use the opt module in a
way thats compatible with toolbox > 0.3.

4 years agodistbot: Accept packages from a queue instead of a watch directory
Matthias Kruk [Fri, 16 Apr 2021 00:56:42 +0000 (09:56 +0900)]
distbot: Accept packages from a queue instead of a watch directory

Distbot currently monitors a watch directory and adds packages that
have been placed in this directory to the repository. This can be
greatly simplified by using queue instead.
This commit changes distbot to accept new packages from a queue. It
further simplifies the distbot code by using the inst module for
managing running instances.

4 years agobuildbot: Allow multiple instances to run at a time
Matthias Kruk [Thu, 15 Apr 2021 23:52:35 +0000 (08:52 +0900)]
buildbot: Allow multiple instances to run at a time

Buildbot is implemented as a singleton, even though this is neither
necessary nor desirable. In order to allow parallel builds, migrate
buildbot to use the inst module to manage running instances.

4 years agowatchbot: Implement multiple-instance support
Matthias Kruk [Thu, 15 Apr 2021 21:50:03 +0000 (06:50 +0900)]
watchbot: Implement multiple-instance support

Watchbot currently allows only one instance to run at a time. However,
it might be desirable to have multiple watchbots running simultaneously,
watching one or more repositories at a time.
This commit implements support for multiple instances using the new inst
module.

4 years agobuildbot,distbot,watchbot: Adapt to latest toolbox version
Matthias Kruk [Thu, 15 Apr 2021 21:29:14 +0000 (06:29 +0900)]
buildbot,distbot,watchbot: Adapt to latest toolbox version

The latest toolbox implements the --verbose and --shush options inside
the opt module, so it's no longer necessary to implement them explicitly.
This commit removes the --verbose and --shush options from all bots.

4 years agobuildbot: Pick up tasks from a queue and place built packages in another queue
Matthias Kruk [Thu, 15 Apr 2021 01:19:19 +0000 (10:19 +0900)]
buildbot: Pick up tasks from a queue and place built packages in another queue

This commit modifies buildbot to pick up tasks from a queue and place built debian
packages in another queue. This allows for very straightforward parallelization of
builds, once the start/stop mechanism has been changed.

4 years agodistbot: Add script to automate debian repository housekeeping
Matthias Kruk [Wed, 14 Apr 2021 00:15:44 +0000 (09:15 +0900)]
distbot: Add script to automate debian repository housekeeping

This commit adds a script that automatically adds debian packages that
have been placed in a queue directory to a debian package repository.

4 years agobuildbot: Add script to automatically perform builds on git repositories
Matthias Kruk [Wed, 14 Apr 2021 00:12:59 +0000 (09:12 +0900)]
buildbot: Add script to automatically perform builds on git repositories

This commit adds a script that can be used to watch a git repository for
changes and automatically perform a task if a change has been detected.

4 years agowatchbot: Add repository monitoring script
Matthias Kruk [Wed, 14 Apr 2021 00:08:25 +0000 (09:08 +0900)]
watchbot: Add repository monitoring script

This commit adds a script that can be used to monitor local repositories
for changes, and add them to a work queue when they need to be rebuilt.