Releases: rackslab/Fatbuildr
Releases · rackslab/Fatbuildr
v2.1.0
Added
- Add
mancommand in OSI format container image. - Additionally to
*.tarimages, publish OSI registry all other images formats supported bymkosi(#112). - Give the possibility to run OSI builds directly on host instead of container to support images formats for which
mkosiutility require access to loop devices (#111). - Support multiples OSI images in the checksum file published in the same registry derivative directory (#114).
- Possiblity to define patches templates with variables to replace (#128).
- Support generation of prescript tarballs with subdirectory at any depth in source tree (#154).
- Support distribution and format specific tokens of prescript rules to allow definition of different values for different distributions and formats (#156).
- Support installation of DNF modules as prescript dependencies for RPM packages builds (#155).
- Automatically exclude from generated archive files untracked by git (ex: referenced in
.gitignore) when building or managing patches from local source tree with initialized git repository (#153). - Possibility to declare in instance pipelines definitions DNF modules to enable in Mock build environments (#163).
- Add reference to build task ID and instance name in RPM/deb package changelog entries (#15).
- Add result exportable field to all runnable tasks.
- Possibility to execute hook program before and after tasks are run (#19).
- Add
preptemplating variable for RPM spec files as shorthand forprep_sourcesandprep_patches(#89). - Bash completion script for
fatbuildrctl(#28). - cli:
- Possibility to list artifacts in registries in remote instance with the REST API (#141)
- Possibility to remove artifacts from registries in remote instance with the REST API (#142)
- Add
--include-git-untrackedoption tobuildandpatchescommands to avoid automatic exclusion from generated archive of files untracked by git in local source tree. - Possibility to execute command in arguments of
images shellandimages env-shell(#98). - Support
$FATBUILDR_URIenvironment variable to override value in user preferences file (#124). - Add git message template for patches to help filling and formatting patches metadata with expected fields and values (#30).
- Add
--batchoption tofatbuildrctl keyringcommand for keyring creation and renewal tasks. - Add size attribute to artifacts found in registry.
- web:
- api:
- Add edit-registry permission action.
- Possibility to remove artifact from registries with DELETE verb on artifact route.
- Introduce
ArtifactContentobjects. - Add content key in
ArtifactDescriptionobject associated to a list ofArtifactContentobjects for Deb and RPM binary packages. - Add size attribute to
Artifactobjects.
- conf:
- Add
containerizedparameter in[format:osi]section. - Add
exec_cmdandexec_tmpfileparameters in[format:deb]and[format:rpm]sections. - Add support of multiple build environments initialization commands.
- Add optional
env_default_modulesparameter in[format:rpm]section. - Add
listingboolean parameter in[web]section to control activation of listing feature infatbuildrweb. - Add
hookparameter in[tasks]section.
- Add
- pkgs:
- Add patch to define upstream version at build time.
- Install tasks hooks examples uncompressed.
- Install default system-wide git commit message template for patches in both Deb and RPM packages.
- Install
fatbuildrctlbash completion script in both Deb and RPM packages. - Install fatbuildr tmpfiles.d configuration.
- Add bootstrap-icon additional source archive.
- Install bootstrap icon fonts in Deb and RPM packages.
- dbus:
- Add
ArtifactDeleteAsmethod toorg.rackslab.Fatbuildr.Instanceobject to submit artifact deletion task with another user identity. - Add
ArtifactContentmethod toorg.rackslab.Fatbuildr.Instanceobject to retrieve the content of binary artifacts. - Add
commandargument toImageShellmethod. - Add
commandargument toImageEnvironmentShellmethod.
- Add
- polkit: Add org.rackslab.Fatbuildr.edit-registry-as action.
- docs:
- Mention
containerizedparameter in[format:osi]section of system configuration. - Mention
exec_cmdandexec_tmpfileparameters in[format:deb]and[format:rpm]sections of system configuration. - Mention new
env_default_modulesoptional parameter in[format:rpm]section of system configuration. - Mention
listingparameter in[web]section of system configuration. - Mention
hookparameter in[tasks]section of system configuration. - Mention new
modulesoptional parameter for RPM distributions in instance pipelines definitions. - Document patches DEP-3 metadata support with Fatbuildr specific fields and their management with fatbuildrctl patches subcommand.
- Mention patches deb822
Templatefield and the patches templating feature. - Mention possibility of missing JWT signing key for REST API HTTP/404 response code.
- Document impact of HTTP reverse proxies buffering on tasks output streams with mention of possible configuration settings.
- Document HTTP reverse proxies settings of interest to allow submission of large artifact builds and avoid timeout in live task output.
- Mention org.rackslab.Fatbuildr.edit-registry-as Polkit action.
- Mention edit-registry REST API permission action.
- Mention REST API route to delete artifact.
- Mention syntax, usage and behaviour of distribution and format specific tokens of prescript rules.
- Mention possibility to install DNF modules as prescript dependencies with
module:prefix. - Mention new
--include-git-untrackedoption forbuildandpatchescommands infatbuildrctlmanpage. - Mention new
commandoption forimages shellandimages env-shellcommands infatbuildrctlmanpage. - Mention support of
$FATBUILDR_URIenvironment variable infatbuildrctlmanpage. - Explain upstream
debian/directory in present artifact archives is removed and replaced by Fatbuildr during Deb packages builds. - Add two examples of tasks hooks in Python:
- Basic hook to send syslog message.
- Advanced hook to send custom notifications messages (based on templates) on Matrix room.
- Add Tasks Hooks page.
- Mention new
preptemplating variable in artifact definition reference documentation for RPM spec files. - Mention new
commit_templateparameter in user preferences documentation infatbuildrctlmanpage. - Mention new
--batchoption forfatbuildrctl keyringcommand in manpage. - Mention content section in binary artifact web interface page.
- Mention content key in
ArtifactDescriptionobject and introduceArtifactContentobject in REST API reference documentation. - Mention new
sizeproperty ofArtifactobject in REST API reference documentation.
- Mention
Changed
- Rename Mock and Cowbuilder build environments to add
fatbuildr-prefix. - Support mkosi v22 in osi image (#173).
- Factorize RPM repository updates by running it once for all packages that share the same architecture (#49).
- Replace
fatbuildrdservice runtime directory by fatbuildr tmpfiles.d configuration with POSIX ACL to give access to subdirectories tofatbuildrsystem user and benefit from automatic cleanup bysystemd-tmpfiles. - cli: Watch task output by default when submitting tasks. The
-w, --watchoption is replaced by the opposite--batchoption to submit tasks in background (#123). - conf:
- Rename
init_cmd→init_cmdsparameter in[format:deb]and[format:rpm]sections of system configuration. - Bump Fedora release from 38 to 40 in rpm and osi container images.
- Install all mkosi 22 optional dependencies required to get all features and assign newuidmap/newgidmap ranges for Fatbuildr system user in osi container image.
- Install podman for Mock in rpm container image.
- Rename
- docs:
- Update table of available remote features with new registry content listing and artifact deletion possibilities.
- Mention possibility of HTTP/404 response code on supported derivative in REST API reference.
- Split documentation of
imagescommand options by subcommands in manpage. - Replace
-w, --watchoption by opposite--batchoption in manpage. - Remove mention of
--watchoptions in various pages of documentation. - Use
fatbuildrctl shell images <command>in troubleshooting page. - Rename
init_cmd→init_cmdsparameter in[format:deb]and[format:rpm]sections of system configuration. - Mention usage of
%autopatchmacro behindprep_patchestemplating variable in artifact definition reference documentation for RPM spec files. - Update supported Linux distributions in quickstart guide (drop Debian 11, Fedora 37-38, add Debian 13, Ubuntu 24.04, RHEL9, Fedora 38-40).
- pkgs:
- Use new
prepvariable in Fatbuildr RPM package spec file template. - Bump boostrap version to 5.3.3.
- Use new
Fixed
- Fix crash on client side when loading artifact definition for OSI builds (#100).
- Fix crash due to concatation with incompatible types when defining the full release for OSI build on server side (#101).
- Add
aptcommand in container for OSI image to meet Debian and Ubuntu based images build requirements (#102). - Fix
systemd-nspawnexecution error throughmkosiin OSI format container caused by unavailability of DBus system session (#103). - Fix GPG keys unsupported filetype error when running
apt-get updateon build of Debian OSI images due to missing `...
v2.0.0
Added
- web: add JWT token based authentication with RBAC policy for managing access permissions to the REST API and the HTML web endpoints (#21). Fatbuildr provides a default policy that can be overriden by site administrators.
- Associate tasks to originating users (#79)
- Automatic static analysis of RPM and Deb packages based on rpmlint and lintian after successful build (#16)
- Add support of interactive build for RPM packages format (#61)
- Add support of multiple sources for packages artifacts (#66)
- Report Deb and RPM packages content after successful builds, with additional pbuilder hook and mock plugin respectively (#74)
- Add possibility to purge tasks history and their workspaces directories with multiple configurable policies (#34)
- Add support of plain files as additional sources in RPM packages (#86)
- conf:
- Add
[tokens]section with settings to control generation and validation of JWT tokens. - Add
policyandvendor_policysettings in[web]section to define path to RBAC policy definition file loaded by Fatbuildrweb. - Add
[tasks]section with parameters to specify tasks workspaces location and tasks history purge policy.
- Add
- polkit:
- Add org.rackslab.Fatbuildr.manage-token action.
- Add org.rackslab.Fatbuildr.build-as action.
- Add org.rackslab.Fatbuildr.purge-history action.
- dbus:
- Add
BuildAsmethod toorg.rackslab.Fatbuildr.Instanceobject to submit build task with another user identity.
- Add
- cli:
- Add
shellandenv-shelloperations tofatbuildrctl imagescommand to open an interactive shell in a container running the image dedicated to a given format or in a build environment associated to a distribution (#18). - Add
-d, --distributionoption tofatbuildrctl imagescommand to filter the container images or the build environments targeted by the operation. - Add
-a, --architectureoption tofatbuildrctl imagescommand to limit the build environments targeted by the operation to a specific hardware
architecture. - Add short option
-fas an alternative to--formatlong option offatbuildrctl imagescommand. - Add
fatbuildrctl tokenscommand to list, generate and save JWT tokens for HTTP REST API authentication in user's tokens directory. - Add support for JWT token based authentication to Fatbuildrweb REST API.
- Add support of HTTP/404 REST API response codes.
- Add
- prefs: add optional
tokensparameter in theprefssection for specifying the path of user's tokens directory. - utils:
- Add support of multiple sources archives in
import-srcrpm. - Add support of plain files as RPM packages sources in
import-srcrpm.
- Add support of multiple sources archives in
- pkgs: add dependency on PyJWT python external library for managing JWT tokens.
- docs:
- Document
tokenscommand infatbuildrctlmanpage. - Document
tokensparameter in user's preferences file infatbuildrctlmanpage. - Document new
history purgesubcommand in infatbuildrctlmanpage - Add section about API tokens in
fatbuildrctlmanpage. - Add section about Local sources and
--sourcesoption value format infatbuildrctlmanpage. - Add section about authentication in REST API reference page.
- Mention new polkit actions org.rackslab.Fatbuildr.manage-token, org.rackslab.Fatbuildr.purge-history and org.rackslab.Fatbuildr.build-as with a special note for *-as actions.
- Mention permission action required by all Fatbuildrweb REST API and HTML endpoints in references pages.
- Document error object returned by REST API for denied permission.
- Add section about policy configuration in Fatbuildrweb administration page.
- Document system configuration new
[tokens]section and new parameters in[web]section. - Document new
purgeparameter in[tasks]section. - Mention multiple sources support, static analysis, packages content listing, RBAC policy and JWT authentication in advanced features description.
- Add page about packages source tree with all principles followed for various types of sources illustrated by new diagrams.
- Mention HTTP/404 reponse codes in REST API when instance or task is unknown by fatbuildrd and when format, distribution, derivative, architecture or artifact is not found in registries.
- Add page about tasks history purge capabilities with the various policies, the expected format of the limit value in configuration parameter and a quick howto setup regular automatic purge with a cronjob.
- Add example cronjob for automatic regular tasks history purge.
- Mention possibility to have additional plain files in the
rpmsubdirectoryof artifacts definitions repository.
- Document
Fixed
- Static analysis errors reported by ruff tool with a simple initial configuration (#75).
- Properly remove deprecated source RPM packages from repository after a successful build (#58).
- Compiler
-Wunused-resultwarnings with binary wrappers (#70). - cli:
- daemon: avoid global hazardous catch of all RuntimeErrors and restrict handling to supported FatbuildrRuntimeError, as a basis for better error
management. - Avoid removal of tilde from version extracted in source tarball filename when submitted during build through HTTP REST API (#81).
- Remove useless imports
- images:
- Fix fatbuildr user and group with host UID/GID in deb format container image due to possible conflicts with other installed Debian sid packages (#83)
- Add missing shebang in derivatives pbuilder hook
- docs: Fix prescript token names in artifact definition reference.
Changed
- Merge queue and archives directories into a common workspaces directory (#88)
- cli:
- Transform
imagescommand options--create,--update,--create-envsand--update-envsinto an operation positional argument with the corresponding possible valuescreate,update,env-create,env-update. - Replace
fatbuildrctl {patches,build}command options--source-dirand--source-versionby generic option--sources. - Replace
fatbuildrctl archivesbyfatbuildrctl historycommand to avoid confusion with the notion of source archives (#87)
- Transform
- artifacts:
- Rename YAML artifact definition file from
meta.ymltoartifact.yml. The old name is still supported but the user is warned with a deprecation notice (#73). - Replace
tarballoption bysourceorsources, depending on the number of archive sources. - Modify format of
versions,derivativesandchecksumskeys to support optional multiple sources for packages artifacts. - The RPM spec file token
{{ source }}is replaced by{{ sources }}to declare possibly multiple sources.
- Rename YAML artifact definition file from
- conf:
- Replaced
queueandarchivesparameters in[dirs]section of system configuration byworkspacesparameter in[tasks]section. - Bump Fedora release from 37 to 38 in rpm and osi container images (#96).
- Replaced
- dbus: Replace
Archives()byHistory()method inorg.rackslab.Fatbuildr.Instanceobject to avoid confusion with the notion of source archives. - web:
- Build tasks are submitted to fatbuildrd with original requesting user's identity when fatbuildrd runs with another user (typically
fatbuildrsystem user) so the tasks are properly associated to the original user. - Return HTTP/404 with clear error message when instance or task is unknown by fatbuildrd and when format, distribution, derivative, architecture or artifact is not found in registries (#64).
- Introduce new array of
SourceArchiveobjects in the properties ofTaskJSON objects for build tasks. - Modify optional source archives filename multipart build requests to support sending of multiples sources.
- Build tasks are submitted to fatbuildrd with original requesting user's identity when fatbuildrd runs with another user (typically
- docs:
- Convert APT sources file in quickstart guide from one-line format to Deb822-style format (#72)
- Modify artifact definition reference documentation with changes introduced to support packages artifacts with multiple sources and many examples to cover most cases.
- Modify REST API reference with changes introduced to support packages artifacts with multiple sources.
- Replace options
--source-dirand--source-versionby--sourcesinfatbuildrctlmanpage. - Modify system configuration reference to mention replacement of
queueandarchivesin[dirs]section by commonworkspacesparameter in[tasks]section. - Update example outputs with new common workspaces directory to match new default paths.
- Replace notion of archives by history to designate the list of terminated tasks.
- Update support fedora release in quickstart guide to 37 and 38. Also update example instance file to mention fedora 38 instead of fedora 36.
- Rename
fatbuildr.webmodule tofatbuildr.procotols.http.serverfor more proximity withfatbuildr.procotols.http.clientcode. - pkgs:
- Adapt artifact definitions and packaging code for fatbuildr and its dependencies to new format defined for multiple sources support.
- Replace fatbuildr prescript with a supplementary source for bootstrap.
- Bump dasbus dependency to latest version 1.7 (#67).
- examples: Change hello package artifact definition to new format defined for multiple sources support.
Removed
- pkgs: removed support of Fedora 36
- docs: removed mention of Fedora 36 in quickstart guide
v1.1.0
Added
- docs:
- Add large Fatbuildr logos intended for docs.rackslab.io landing page
- Add Release notes page based on
CHANGELOG.md - Use tabs for distributions in quickstart guide
- Mention support of Fedora 37 in quickstart guide (#68)
- conf: add
env_as_rootboolean parameter informat:{deb,rpm}section to control if commands to create and update build environments are executed as root super-user or the user runningfatbuildrddaemon. - pkgs: add
CHANGELOG.mdin {deb,rpm} packages - templates: add
gittagfilter which is notably useful to transform version
number into valid Git tag in tarball URL. - lib: make PatchQueue subshell optional
- utils: add import-srcrpm utility to import an existing source RPM package and convert it into an artifact defined ready to be consumed by Fatbuildr.
Fixed
- pkgs: remove useless symbolic link in prescript
- cli:
- Avoid catching unwanted
AttributeErrorexceptions while checking for action argument on Python < 3.7. - Remove temporary directory after the patch queue is exported instead of relying on cleanup registry.
- Avoid catching unwanted
- web:
- Add missing return to fix the index redirect view (from
/to/registry) when Fatbuildrweb is executed in mono-instance mode. - Fix support of Flask >= 2.0 (#69)
- Add missing return to fix the index redirect view (from
Changed
- pkgs:
- Bump the packaged version of mkosi from 13 to 14
- Update Fatbuildr packages to depend on mkosi >= 14
- conf:
- Rename mkosi
--skeletonoption to--skeleton-treeto follow mkosi 14 change. - Bump Fedora release from 35 to 37 in rpm and osi container images
- Rename mkosi
- docs:
- set more generic names for packages repositories in install guide
docfolder in sources renamed todocs