- New features
- Add !relative_url YAML constructor (#1057)
- Add per-package configuration for release binary job weight (#1063)
- Add support for custom_rosdep_urls in build files (#1055)
- Add support for distro-independent CI jobs on Jenkins (#1056)
- Set up Bazel single-threaded compilation limit. (#1016)
- Use createrepo-agent for RPMs. (#976)
- Add 'list_priorities.py' helper script (#975)
- Add support for publishing CI archives to the repo host (#932)
- Add a validation script for buildfarm configuration (#913)
- Add in the capability for a sync package percent. (#896)
- Add rosdoc2 support to generate_doc_maintenance_jobs.py (#916)
- Add configurations for omitting package testing (#903)
- Implement rosdoc2 documentation job type. (#880)
- Add a tool to audit a rosdistro and all it's buildfiles for missing dependencies. (#815)
- Add RPM import_upstream job (#779)
- Support for building RPM packages (#713) (#726) (#727) (#729) (#731) (#721) (#730) (#732) (#733) (#735) (#745) (#756) (#757)
- GPU support for build files (#624)
- Implement the abichecker run on devel builds (#681)
- Add scripts to build blocked source entries page (#674)
- Improvements
- Convert to subprocess model for flake8 test (#1075)
- Make apt work with unsigned repositories (#1070)
- Add flags to separate generate_release_script parts (#1066)
- Delete any existing UID user in Dockerfile (#1061)
- Support unsigned apt repositories (#947)
- Switch to rosdistro.get_package_condition_context API (#1065)
- Add logic for excluding group workaround dependencies (#1040)
- Add new seccomp warning text to ignore pattern. (#1050)
- Use tar and ssh to publish package metadata files. (#1049)
- Clean up any dangling cidfiles (Container ID files) in workspace. (#1047)
- Avoid jenkinsapi trying to fetch all jobs. (#1045)
- Make sure to call generate_doc_maintenance_jobs.py for rosdoc2. (#1043)
- Set PODMAN_USERNS=keep-id when invoking 'docker run' (#1032) (#1069)
- Use environment to configure breaking system packages. (#1036)
- Handle RPM *-SPECPARTS build subdirectory (#1033)
- Read virtual packages from deb/RPM repositories (#1022)
- Display CPU information in build log. (#1010)
- Handle virtual deb packages when querying apt cache (#1023)
- Call dpkg-buildpackage directly instead of apt-src (#986)
- Enable CRB in RHEL containers (#991)
- Stop considering disabled packages to be regressions (#984)
- Add support for group dependencies in release jobs (#980)
- Add support for bare file paths in index URL (#974)
- Opt-out of Phased Updates in apt in CI jobs (#969)
- Create checksum files with CI archives (#956)
- Only install workspace package in ROS 2 devel jobs not CI jobs. (#955)
- Mark CI jobs unstable based on static analysis (#953)
- Disable jobs downstream of packages with nulled release versions (#951)
- Add rosdoc2 job to CI workflow. (#949)
- Teach CI jobs to pull released packages from rosdistro (#944)
- Switch from hacky dist_suffix to release_suffix in RPMs (#939)
- Parse deb dependency exclusions and support nocheck (#919)
- Also set DEB_BUILD_PROFILES when skipping tests (#918)
- Test ROS 2 release jobs in CI (#866)
- Clean up old directory structure that was a reference to an unused repo. (#881)
- Add a clang-tidy warning publisher. (#897)
- Add non-Debian/Ubuntu repos to upload jobs (#869)
- Abort release builds if already re-queued (#864)
- Fix a flake8 suppression. (#865)
- Add mechanism to 'ignore' packages (#858)
- Clean up repositories directory after successful doc job (#849)
- Make the doc_independent_docker_build a little more generic. (#846)
- Make the shared ccache optional (#844)
- Add support for the Jenkins Heavy Job plugin (#839)
- Add support for the Jenkins Benchmark plugin (#835)
- Support custom !include directive in config files (#834)
- Only use xUnit type JUnit for *.xunit.xml results if pytest compliant (#831)
- Add --dry-run argument to generate_devel_job.py (#833)
- Disable automatic out-of-source CMake builds in RPMs (#830)
- Enable RPM debug packages (#829)
- Use distinct xunit pattern for ROS 2 (#828)
- Show additional context on Jenkins job diffs. (#827)
- Add Fedora to repos status page platform list (#825)
- install pytest-rerunfailures for colcon --retest-until-pass (#824)
- Add build_tool_args and build_tool_test_args to devel jobs (#796)
- Use package manager configuration in mock config (#810)
- clarify docs for custom distribution files and tags (#803)
- Make docker container names unique for status pages. (#800)
- Allow status page jobs to run on any agent. (#799)
- Avoid peak loads for status page jobs. (#801)
- only show failed test numbers in chart (#798)
- Add build_tool_test_args parameter to CI jobs (#793)
- Enable package selection at build time in CI (#791)
- Support --build-tool-args in generate_ci_script.py (#792)
- Allow file:// URLs to repos files in CI jobs (#794)
- Add support to archive arbitrary artifacts in CI jobs. (#784)
- Introduce a PlatformPackageDescriptor object (#785)
- Refactor get_package_repo_data out of common (#783)
- Add '$distname' resolution to RPM URLs (#782)
- Update repository status page to support RPM (#781)
- Never skip ros_buildfarm RPM repositories (#780)
- Sort CI job plot groups in Jenkins job XML (#773)
- Add sync-to-main job for RPM repos (#771)
- Use directory arguments on deb job scripts for decoupling (#769)
- Process conditional dependencies in release jobs (#758)
- Unify approach to computing package conditional context (#761)
- Change --env-vars to parse as a dict (#760)
- Mark implicitly excluded packages in status pages. (#752)
- Include filtered packages in status pages (#750)
- Call out the buildname for easier debugging (#749)
- Reduce uniqueness of docker images to prevent continuous aggregation (#748)
- Add per-project authorization for CI builds (#737)
- Add --dry-run option to generate_release_job (#720)
- Add support for Jenkins credential binding plugin (#716)
- Add support for param files in Jenkins trigger plugin (#714)
- Update subprocess_reaper.py to work with psutil 3.x to 5.x. (#718)
- Refactor and abstract debian repo data caching (#707)
- Use yaml.safe_load (#708)
- Replace debian-specific concepts with something more platform-neutral (#705) (#711) (#712) (#717)
- Update OS code name mapping (#699) (#700) (#704)
- Add post test plots for performance test (#689) (#740)
- add rosdep_update_options (#684)
- Add CI option to display generated images on build summary (#680)
- vertical align cells in blocked status pages (#679)
- Support any number of layered workspaces (#670)
- add option to configure CI jobs using repository names from rosdistro (#661)
- Add CI config 'jenkins_job_upstream_trigger' (#664)
- Add --dry-run option to generate_ci_job (#663
- Changes
- Align stdeb dependencies with setup.py (#1073)
- Update version string as it's not compatible after setuptools 66+ (#1018)
- Update target platform list for making debs (#1068)
- Use 'host' network in deb container builds (#1071)
- Drop support for Python 2 (#1067)
- Stop testing Python 3.5 support. (#1048)
- Drop support for CentOS/RHEL 7 (#1034)
- Add os code name mapping for Ubuntu Noble (#1017)
- Convert Bionic CI jobs to run on Focal (#996)
- Target RHEL 9 in CI (#995)
- Increase the default timeout for Jenkins connections (#981)
- Move all scripts into the Python package
- Explicitly state no compatibility with flake8 >= 5.0.0 (#970)
- Declare test dependencies in [test] extra (#967)
- List 'ROS Infrastructure Team' as the package maintainer (#952)
- Unify approach to using 'logging' module (#945)
- Add os code name mapping for Ubuntu Jammy and Debian Bullseye. (#942)
- Update label expression for jobs running on Jenkins built-in agent. (#934)
- Run status jobs in Focal containers rather than Xenial. (#885)
- Un-normalize some test dependency package names (#924)
- Switch from CentOS 8 to AlmaLinux for RHEL jobs (#929)
- Add CI action for reconfiguring release jobs (#912)
- add graphviz as a dependency necessary for sphinx in rosdoc_lite
- Update base container images for release-related jobs. (#886)
- Run devel and ci task jobs in Focal containers. (#906)
- Update container image base for doc-related container templates. (#884)
- Drop portlet IDs from dashboard views (#873)
- Update xunit plugin version in template. (#872)
- Update plugin versions in all templates. (#874)
- Update version of dashboard-view plugin. (#883)
- Update the groovy-extract-warnings script. (#887)
- Switch from Travis CI to GitHub Actions (#857)
- Update credentials_binding plugin version (#861)
- Drop superfluous mentions of 'CentOS' (#850)
- Remove references to EOL distro Eloquent. (#852)
- Update mailer to 1.32.1. (#851)
- Set junit_family=xunit2 for pytest results in Foxy and older distros (#836)
- Update Jenkins plugin versions used by ros_buildfarm. (#826)
- Add Suite3 and Python2-Depends-Name configuration for stdeb releases. (#816)
- Re-add flake8_docstrings, add flake8_class_newline (#795)
- Update Jenkins script-security plugin. (#742)
- Update Jenkins xunit plugin. (#744)
- Update Jenkins subversion plugin. (#741)
- Replace Warnings plugin with Warnings-ng (#743)
- use Python 3 / pip3 to install Python dependencies in doc jobs (#772)
- Update plugin versions (#660) (#683) (#698)
- Don't override MAKEFLAGS blindly (#645)
- Update GPG key and move to supported platform for CI builds (#641)
- Fixes
- Plumb 'build_environment_variables' into doc jobs (#1079)
- Fix permissions on mock config copied into container (#1072)
- Restore PM-specific option specification in mock config (#1074)
- Install ca-certificates before processing repository keys (#1062)
- Switch from 'include_package_data' to 'package_data' (#1039)
- Use raw strings when specifying regular expressions (#1038)
- Fix binarydeb permission cleanup script. (#1025)
- Set a sane HOME for binarypkg jobs. (#1013)
- Fix handling of 'None' group members (#990)
- Fix page percent division by zero (#960)
- Fix double minus sign on timezone (#935)
- Set trigger_timer from build file if unset. (#922)
- Don't configure CI maintenance job more than once (#941)
- Make python3 interpreter replacement in scripts stricter (#925)
- Use prerequisite repos in sync job container (#888)
- Fix a few minor issues in the doc_independent_docker_job. (#854)
- Run c_rehash to work around openssl rehash issue on focal/armhf. (#848)
- Run upload jobs after import_upstream. (#843)
- Use python3 when invoking reprepro-updater (#842)
- Handle 'None' job weight configuration (#840)
- Fix the Jenkins job authorization snippet order (#837)
- Fix the indentation for the warnings job snippet (#838)
- Ensure RPM mock macros start with % character (#823)
- Update importlib-metadata for Python 3.6 prerelease jobs (#822)
- Don't consider source package name if not provided (#788)
- Don't show subpackage source packages as missing (#787)
- Don't tell apt which versions of debian packages to install (#775)
- Resolve group membership and use in topological ordering (#767)
- add missing jenkinsapi dependency (#754)
- Install rosdoc_lite deps based on python version (#751)
- Do not reuse cid files (#753)
- Don't inject ros_workspace dep when there is no ros_workspace (#722)
- Front-load manifest parsing and ros_workspace dep injection (#719)
- Escape $ in repo URLs and strip() the GPG keys (#715)
- create '/$HOME/.ccache' as a user before mounting it (#696)
- Always update apt cache for CI dependency enumeration (#691)
- inject downstream job dependencies for ros_workspace (#690)
- Ensure repos file names don't collide (#688)
- work around ros_version not being available in the scope of list comprehension (#675)
- Always update ccache symlinks in devel jobs. (#671)
- evaluate dependency conditions in doc jobs (#668)
- make order of build env vars deterministic (#667)
- workarounds to get the Noetic CI jobs using Python 3 to turn over (#666)
- fix checking evaluate conditions in CI jobs (#662)
- install colcon-metadata to get metadata from colcon.pkg files (#659)
- add -l to workaround hanging docker build when uid is large (#656)
- Prevent colcon from crawling the catkin results (#655)
- Fix CI job generation when called from generate_all_jobs (#653)
- Fix extra build tool arguments when testing with colcon (#650)
- Manually inspect colcon index to find CI underlay packages (#648)
- allow 'vcs export --exact' to fail when merging a branch (#647)
- set git user email and name for 'git merge' to work (#646)
- Fix CI build detection of non-ROS packages (#642)
This new major version requires a post-JEP-200 Jenkins version (see #587) and therefore the provisioned machine to be updated (buildfarm_deployment#207).
- New features
- Improvements
- evaluate conditions in manifests (#621, #634)
- support for a docker_build type of doc_independent build (#576, #619)
- add options to configure apt/pip package dependencies for the independent doc job in the build file (#618)
- [prerelease] add ability to generate repos files for faster cloning (rebased) (#600)
- only consider same type distros when looking for previous distro (#593)
- share ccache between docker builds (#580)
- allow searching by email on status pages (#561)
- set build environment variables from build files (#554, #558)
- add devel job test statistics collation (#541)
- Changes
- Fixes
- pin sphinx version due to issue with latest release 2.0.0 (#615)
- fix remaining flake8 violations (#611)
- handle scenario where no views or jobs are reconfigured (#606)
- support flake8 3.5.0 and fix various linter violations (#608)
- use version number on -modules dependency (#562, #599)
- use Bourne shell / dash compatible shell condition (#592)
- fix return codes from some job generation scripts (#595)
- install updated version of dpkg on Trusty (#564, #566)
- fix regex to not match jobs from other build files (#563)
- install dh-python explicitly on Bionic and Buster as it's not included with Python 3 (#553, #556)
- use single pipe to avoid problems with Jenkins reading them concurrently (#552)
- install apt transport https (#551)
- add ddebs to published binarydeb files (#545)
- Improvements
- use egrep to find repository components in arbitrary positions (#532)
- Fixes
This new major version requires the provisioned machines to be based on the updated buildfarm_deployment which is based on Ubuntu Xenial hosts with Java 8 and Jenkins up to version 2.89.x. Jenkins 2.107.x comes with additional changes which this version is not yet suitable for.
- New features
- Changes
- remove using the test_depend for binary jobs (#534)
- move all jobs that are at priority 40 down to 35 (#500)
- fix Debian revision (replace - with .) as of ROS Melodic and ROS 2 Bouncy (#460, #512)
- update plugin versions and configurations (#477, #482, #486)
- merge the changes for Xenial into master (#480)
- increase days_to_keep for some job types (#481)
- Improvements
- Fixes
- do not generate a blocked-releases job for the first distro (#533)
- fix warning about duplicate apt repos (#530)
- don't set an empty ssh-agent wrapper on devel jobs (#528, #531)
- mount the shared jenkins hgcache to allow hg operations (#526)
- ignore the seccomp profile warning in docker info (#527)
- call super in JobValidationError to correcly print the error (#524)
- fix check for existing description tag (#518)
- install gnupg on newer Ubuntu (#506)
- use -d option to skip checking for build deps in source jobs on newer Ubuntu (#505)
- move old_releases sources before installing locales (#504)
- update list of EOL ubuntu distributions up to Zesty (#503)
- resolve catkin instead of assuming current rosdistro (#501)
- fix mercurial config (#490)
- fix config of created views if they have no jobs associated (#483)
- Documentation
- Improvements
- Fixes
- use cloudfront mirror for all debian sources (#467)
- New features
- add new jobs to display the failing jobs by ROS distro (#454)
- add nightly job to trigger missed jobs (#451)
- add option to trigger only not-failed jobs (#446)
- use Xenial Docker images instead of Trusty (#444, #445)
- add ORPHANED that shows both end-of-life and unmaintaned (#439)
- support OR syntax as well as regex (#435, #436)
- add config option to enable / disable sending notification emails for pull request jobs (#432)
- Improvements
- print blank lines around error message (#459)
- add 'Failed to stat' to the list of apt known errors (#458)
- catch another apt hiccup (#452)
- improve performance to generate maintenance jobs (#450)
- show parameter of reconfigure jobs in build description (#449)
- invert logic for future proofing (#443)
- update description of import_upstream job (#442)
- use higher prio for import_upstream job (#441)
- change color of "unmaintained" from yellow to orange (#440)
- add title to input fields (#436)
- improve performance to collect recursive dependencies (#430)
- Fixes
- modify compare page to list packages rather than repositories (#425)
- fix regression in trigger logic introduced in 1.3.1 (#427)
- Improvements
- avoid iterating all items (if not necessary) improving reconfigure performance (#423)
- minor changes to the blocked repos status page generation (#422)
- add progress indicator for reconfigure Groovy scripts, mention dry run on skipped jobs
- improve error message when trying a prerelease for a released repo without a source entry (#413)
- use forked code in Travis tests (#411)
- avoid switching between DST and non-DST timezone (#408)
- Fixes
- New features
- get return codes of catkin_test_results from generated scripts (#399)
- fold sections in Travis log (#396)
- reuse existing source tarball if it exists (#374, #395, #397, #398)
- add blocking packages status page (#279, #381)
- add platforms targeted by ROS Lunar (#360, #371, #372, #373, #375, #380, #384, #385)
- Improvements
- improve prerelease scripts to work for external repo which are not in the rosdistro, skip overlay step if the workspace is empty anyway (#405)
- create separate Debian packages (python(3)-ros-buildfarm, python(3)-ros-buildfarm-modules) to allow side-by-side installation of the modules (#402)
- add doc about return code environment variables and how to use prereleases for external repos (#401)
- use python(3)-rosdistro-modules instead of python(3)-rosdistro where possible (#383)
- use python(3)-catkin-pkg-modules instead of python(3)-catkin-pkg (#379)
- use different schedule for status pages (#378)
- avoid regenerating the source tarball and use already uploaded one if available (#374)
- use deb.debian.org instead of http.debian.net (#370)
- enable multiverse for binary jobs (#364, #366)
- remove deprecated MAINTAINER command from Docker files (#362)
- fold all dependency installation into a single Docker line (#361)
- improve help for prerelease script (#358)
- various improvements to the status pages (#354)
- Fixes
- fix issues with Python 2 (#357, #404)
- fix package type for metapackages without a doc job (#393)
- workaround sporadically missing apt-src on Debian Jessie (#387)
- fix generate release script (#386, #386)
- fix plain apt retry logic (#365)
- add missing configparser dependency for Python 2 (#356)
- fix cross referencing with doxygen (#352)
- fix installation of wrapper scripts (#348)
- fix missing dependency on Python 3 empy when using Python 2 (#349)
- New features
- Improvements
- retry on more known apt errors (#272, #289)
- more compare status pages, add age information to status pages (#299)
- enable devel jobs on Debian (#302)
- check for circular dependencies (#313)
- automatically disable sourcedeb jobs after five failing attemps (#315)
- make the queue path configurable (#316)
- add build file specific labels (#317)
- configure devel and doc jobs in alphabetical order (#323)
- allow interrupting groovy reconfigure scripts (#325)
- allow auth token in GitHub urls (#329)
- run single apt call for folded dependencies (#334)
- use upstream CrumbRequester if available (#340)
- Fixes
- fix locale on Debian (#281)
- fix local scripts when git configuration contains pager (#294)
- ensure to source underlay in case the workspace doesn't create any setup files (#296)
- fix to include recursive run dependencies within the workspace (#310)
- fix wrapper scripts when using a virtual environment (#318)
- fix ssh authentication for devel jobs (#319)
- only require a source entry for the apt target repository (#322)
- fix not to use shallow clones when using merge-before-build (#330)
- fix url of diffutils (#338)
- fix newline expansion for some shells (#342)
- fix triggering of doc jobs for released packages (#346)
- New features
- add Wily and Xenial support (#223, #225)
- add support for Debian (#252)
- add support for ARM64 on Ubuntu (#246)
- extract compiler warnings for devel/pr jobs (#217)
- merge branch before building pull request job (#219)
- reconfigure release jobs when the rosdistro cache gets an updated manifest (#239)
- add support to run devel/pr job with e.g. Travis (#264)
- Improvements
- add check if any upstream project is in progress to prevent notification email for jobs known to fail and being retriggered anyway (#194)
- add subsections for "build", "build tests" and "run tests" in devel jobs (#195)
- add "Queue" view to see all queued builds without the overhead of a job list (#197)
- wrapper script for "git clone" to retry in case of network issues (#201)
- retry on known apt-get errors when downloading sourcedeb files (#209)
- retry when docker fails to pull base image (#212)
- use groovy to reconfigure doc views (#224)
- add subsection in doc jobs for better outline (#227)
- output rsync stats (#230)
- always update the depends_on entry (#231)
- generate package specific notifications (#247)
- allow overriding manual question with '-y' (#260)
- disable pager for git log command (#)
- Fixes
- fix navigation bar in the wiki to list the packages which are part of a meta package (#193)
- fix environment for tests in devel and pull request jobs (#196)
- fix reconfigure devel views (#200)
- catch 'Unable to locate package' apt-get error and retry (#204)
- fix test environment for workspaces with only plain CMake packages (#205)
- fix unnecessary triggering of devel jobs using Mercurial (#206)
- fix special case in doc jobs where metapackage dependencies was None (#207)
- remove non-existing job urls in generated manifest.yaml files (#208)
- fix groovy script to generate views (#210)
- use ccache from source for older distros (#216, #241)
- allow empty package entries (which are not lists) (#221)
- fix creating views (#222)
- fix catkin doc job (#228)
- use same os_codename to generate Dockerfile for dev jobs (#229)
- fix apt-get retry logic (#232)
- maintain pull request data when reconfiguring job using groovy (#236)
- fix devel and doc reconfiguration if cache is behind (#240)
- maintain the job order when reconfiguring using Groovy (#242)
- always apt-get update in devel jobs (#244)
- use build, run and test dependencies for topological order (#245)
- rebuild dependency graph after reconfiguring jobs (#251)
- fix script generation with Python 2 (#259)
- fix wrapper scripts when being installed (#261)
- This is the first stable release. Please look at the git commit log for historic information.