debci (4.1) unstable; urgency=medium

  [ Antonio Terceiro ]
  * debci-publisher: publish existing results on startup
  * Debci::DB: drop compatibility with ActiveRecord < 7
  * style: add shared table utilities section
  * style: make links alone in table cells clickable in the entire cell
  * web: fix pagination markup for Bootstrap 5
  * Replace ntp with systemd-timesync in Recommends (Closes: #1134134)
  * web: generate content-based link to stylesheets
  * web: drop custom root
  * web: use content-based URLs to Javascript files
  * web: extract stylesheet tags into a helper method
  * munin: debci_total_packages_processed: turn graph into a stacked graph
  * Add support for displaying a global notice
  * Add bug report information to the footer (Closes: #1135824)
  * Drop debci-collect-swift and support for external artifact storage
  * Display pending jobs in the package/suite/arch page (Closes: #1135825)
  * Add status page showing job latency per architecture
  * job_listing: point pending jobs at the Queue status page
  * Debci::JobLatency: display durations better
  * Fix job sorting in package history page
  * munin: make charts about packages processed smooth
  * Rename debci_logs_dir to debci_output_dir
  * Debci::JobLatency: exclude tmpfail jobs from the calculation
  * Debci::Job: save priority to the database
  * Queue status: add "oldest job in the queue"
  * Debci: JobLatency: reduce window to 6 hours
  * Move from fonts-font-awesome to fonts-fork-awesome
  * debci-test: remove ambiguity between --output-dir and --output-directory
  * Add support for experiments
  * Add web UI for experiments
  * Debci::Package: ensure uniqueness of package names
  * Experiments: flag improvements as well
  * experiments: improve download of regression logs

  [ Arnaud Rebillout ]
  * Add debci_public_browsing setting (Closes: #1135908)
  * Bump constraint for ruby-activerecord

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 18 May 2026 18:00:18 -0300

debci (4.0.1) unstable; urgency=medium

  * web ui: force clients to redownload stylesheets
  * AddSelectedBackendToJobs: skip updating column
  * Debci::Job: calculate backend from selected_backend and request_backend
  * Debci::Job.enqueue_parameters: fix passing backend down
  * debci-worker: ignore empty backend name

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 08 Apr 2026 15:02:02 -0300

debci (4.0) unstable; urgency=medium

  [ Antonio Terceiro ]
  * lib/environment.sh: include experimental in distro detection
  * rubocop: ignore Naming/PredicateMethod
  * build_image_as_root: preserve HTTP proxy environment variables
  * backends: fix invoking debci setup from any directory
  * Ensure `debci update-worker` is invoked as debci
  * Exclude removed packages from status pages
  * frontend: search: redirect direct match right away
  * Add incus/lxd backend
  * Make all lxc-based backends share a queue
  * debci-update-worker: fix updating with multiple backends
  * public/style.css: fix indentation
  * self service: fix alignment of architectures in the submission form
  * Move from Bootstrap v3 to v5 (Closes: #1088408)
  * Fix markup in the "Manage API keys" page
  * Fix markup in the user Job history page
  * tools/workers.sh: honor debci_skip_arch_list
  * self service: allow to not select a backend when submitting tests
  * Fix backend selection for partially-supported backend
  * Add support for dark mode
  * debci-generate-apt-sources: hide distro-info warning about unstable

  [ Carles Pina i Estany ]
  * debci localhost: drop automagic --shell-fail on terminals

  [ Iñaki Malerba ]
  * debci-localtest: allow changing output directory with --logs-dir

  [ Paul Gevers ]
  * fix typo in commit 90a94eb: -debci -> debci

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 07 Apr 2026 19:49:46 -0300

debci (3.14.1) unstable; urgency=medium

  * lib/environment.sh: fix distro detection when using backports suites
  * backends: preserve relevant environment variables when building images as
    root (Closes: #1130131)

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 09 Mar 2026 13:29:12 -0300

debci (3.14) unstable; urgency=medium

  [ Antonio Terceiro ]
  * templates: self_service_history: save one redirect
  * log_viewer: restrict retry link to authenticated users
  * self_service: honor original_url when already logged in
  * debci-worker: assume tmpfail when no exit code is produced
  * Delete unused fake rmadison script
  * debci-worker: survive a crash in the test process
  * test/test_debci_test.sh: fix against newer autopkgtest
  * debci-worker: create results directory if necessary
  * debci-test: drop erroneous log message
  * api: add endpoint to serve package information
  * lib/environment.sh: error out on unexisting backend
  * debci-worker: don't do testbed setup as root
  * Extract distro detection into lib/environment.sh
  * Allow enabling developer login even not under development mode
  * debci-setup: fix log rotation
  * debci-setup: allow to skip some architectures
  * Allow selecting a backend on job submission
  * .gitlab-ci.yml: test on testing
  * .gitlab-ci.yml: use testing for custom jobs as well
  * debci-enqueue: save backend explicitly on submission
  * Drop environment variable/configuration for AMQP queue
  * debci-{test,localhost}: support backends with - in their names
  * debci-localhost: export debci_distro
  * self_service: job history: show test backend
  * Reuse the same backend when retrying a job
  * Drop adding backend directory to PATH
  * debci-worker: pass output directory down to debci-test
  * debci-setup: ensure backend is passed down
  * debci-test: drop unused variable
  * Debci::Job: ensure backend is saved when enqueuing
  * Debci::Job: add received_at column and record date of receiving results
  * api: use receive time to filter jobs since a given timestamp
  * Add support for selecting an autopkgtest variant for jobs
  * api_spec: extract endpoint to a shared variable
  * self_service_spec: extract test submission endpoint to a shared variable
  * api: allow filtering packages with no defined backend
  * api: add minimal documentation for backend parameter

  [ Paul Gevers ]
  * improve debci-worker to be running with the right time

  [ Fabian Grünbichler ]
  * tutorial: fix tests/control typo in example

  [ Helmut Grohne ]
  * debci-worker.cron: don't run if debci-worker isn't installed
    (Closes: #1086033, #924226)

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 04 Mar 2026 19:13:09 -0300

debci (3.13) unstable; urgency=medium

  * Debci::Job.slow: fix comparison by using an integer input
  * api: add basic tests for the documentation app
  * api: fix crash on 404
  * api: /test: make `since` argument mandatory
  * api: /test: consider finish and publication dates in last timestamp
  * debci-test: limit the size of the artifacts directory
  * Debci::Package.storage_limit: use 8 bytes for storage
  * Debci::Admin: support floating point units for storage limit
  * admin: drop alert-style header
  * admin: handle validation errors
  * Debci::User: validate presence of username
  * Debci::Package: validate storage_limit
  * debci-test: fix warning message for removed artifacts
  * web ui: log_viewer: add "Retry" button
  * data import: don't copy foreign keys
  * Debci::Log: catch failures that happen without a "test results" marker
  * Enable Sinatra logging
  * Debci::AuthApp: always look for the current user
  * Fold Debci::AuthApp into Debci::App
  * Debci::App: prevent unnecessary cookies
  * home, frontend: hide package browsing behind login
  * web: redirect to original page when logging in
  * layout: add a link to the Self Service panel to the user menu
  * frontend: display retry links for logged users only
  * frontend: don't cache responses to logged in users
  * self_service: honor original url on explicit logins
  * self_service: ensure logged in user does not see login page
  * self_service: remove redundant code
  * web: restrict public browsing even more.

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 06 Dec 2025 11:53:14 -0300

debci (3.12) unstable; urgency=medium

  * debian/changelog: fix typo found by codespell
  * frontend: log_viewer: redirect to raw log when plain text is requested
  * debci limit-storage: fix call to #packages_with_excess_storage
  * Makefile: add target to check code coverage
  * Add support for ActiveRecord 7 (Closes: #1095874)
    * Debci::DB: add support for running migrations on ActiveRecord 7
    * Debci::Job: explicitly cast ActiveRecord::Duration into a float
    * Debci::Job: modernize declaration of serialized fields

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 26 Feb 2025 11:58:31 -0300

debci (3.11) unstable; urgency=medium

  [ Antonio Terceiro ]
  * log_viewer: display link to download artifacts (Closes: #1072049)
  * debci-test: remove tests-tree from autopkgtest results
  * web ui: package: link to the test history even without reference data
  * debci-setup: keep only 20 days of logs
  * Debci::StorageLimit: respect a per-package storage limit
  * admin: packages: support nicely formatted storage sizes
  * log_viewer: don't special case logs with only 1 section
  * debci-api: auth: fix username output
  * self service: validate suite and architecture
  * self service: improve markup for architecture and suite
  * debci limit-storage: add `cleanup` subcommand to act on a single package
  * debci limit-storage: add subcommand to list packages
  * autopkgtest: backend-lxc: drop unnecessary network setup
  * autopkgtest: backend-lxc: add missing dependency on uidmap
  * Debci::Backend: select backend from Debci.config.backend_list as well
  * api: improve wording for rejected package
  * api: silently ignore invalid test requests
  * self service: job history: link to log viewer
  * log_viewer: interpret ANSI escape codes and display colors.
    The raw logs are still transmitted unmodified, and need to be opened in
    a tool that can handle the escape codes. (Closes: #985960)
  * log_viewer: add navigation breadcrumbs to the top

  [ Christian Kastner ]
  * Allow symlinks in conf.d
  * debci-enqueue: Add support for --extra-apt-sources
  * Add support for nested strings in autopkgtest

  [ Paul Gevers ]
  * status: add a line for pass+neutral in the percentage graph

  [ Arnaud Rebillout ]
  * Debci::Job: add duration_seconds attributes to the public API

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 30 Jan 2025 19:48:21 +0100

debci (3.10) unstable; urgency=medium

  [ Christian Kastner ]
  * worker: Add --count option to enable job limit

  [ Antonio Terceiro ]
  * api: don't use automatically updated timestamp for filtering
  * db: add index on jobs.date
  * api: clarify documentation for /tests endpoint
  * api: complete examples in documentation to list all job fields
  * api: /v1/tests: return only documented fields
  * api, self_service: fix performance issues in ActiveRecord queries
  * /api/v1/test: include updated_at field in the results
  * Debci::Job: declare public API fields here
  * Debci::Job: add date attribute to the public API
  * Debci::HTML: avoid N+1 queries when loading package status
  * Debci::HTML: export only public API attributes of jobs
  * admin: display model-related icon inside edit page
  * admin: edit: show object name (#to_str) in the breadcrumbs
  * backends: fake: remove obsolete debci-setup-chdist script
  * doc: exclude frames.html

  [ g0t mi1k ]
  * Switch to Debian Bookworm (12) for Vagrant
  * Dynamically update codename for vagrant
  * Fix typo - extra \
  * debci-config: Allow for displaying all KEY values
  * debci-config: Switch to --all to list all keys
  * Add Setting up the LXC backend testbed
  * Add Setting up PostgreSQL database
  * Add Accessing Self Service (Web UI)
  * Add Creating API tokens
  * Configuring debci using variables & configs
  * Add Multiple debci-worker processes per node
  * Typo: t -> T
  * debci-status: Fix typo - Missing hyphen
  * debci-status: JSON loop on packages not results
  * debci-status: Fix static arch & suite flags
  * debci-status: More consistency with output
  * Update HACKING.md as 'debci config' can list all
  * escape /auth/failure params[:message]

  [ Paul Gevers ]
  * Apply suggestions to INSTALL.md
  * lxc/test-package: fix order of debci_autopkgtest_args_lxc (Closes: 1068380)

  [ Tiago Zaniquelli ]
  * Redirect search result directly to package page if there's only one answer.

  [ Helmut Grohne ]
  * collector: skip over results that refer to an unknown job

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 17 Apr 2024 20:53:49 -0300

debci (3.9) unstable; urgency=medium

  * web ui: reduce usage of automatic page refresh
  * Debci::Log: handle non-UTF-8 data correctly
  * Drop static index.html in favor of Debci::Home app
  * Move RSS feed to be dynamically generated
  * Debci::HTML: load package statuses in batches
  * debian-update.timer: reduce frequency to hourly
  * Debci::Log: mark uninstallable sections as failures
  * log viewer: don't collapse a single subsection of failure sections

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 10 Dec 2023 21:18:35 -0300

debci (3.8) unstable; urgency=medium

  [ Christian Kastner ]
  * debci-localtest can also take autopkgtest backends
  * Add debci_autopkgtest_args_<backend> to environment.sh

  [ Antonio Terceiro ]
  * Debci::StorageLimit: only count non-deleted jobs
  * Debci::StorageLimit: traverse only non-deleted jobs
  * Debci::Job: ensure files_purged is false
  * debci-collector.postinst: drop support for upgrades from buster
  * spec: ensure a reasonable value for Debci.config.html_dir.
    This fixes running the Ruby test suite under autopkgtest using a
    different user than `debci`.
  * munin: debci_packages_processed: look into debci-publisher logs
  * web ui: add structured log viewer.
    An initial version in client side JavaScript was written by Stuart
    Prescott. It was then used as base for the the server side Ruby version
    by Antonio Terceiro. In special, all the regular expressions were copied
    as-is from Stuart's original code.
    If Javascript is enabled, then there is some extra functionality, like
    collapsing non-critical sessions and leaving only the actual test runs
    visible by default.

  [ Helmut Grohne ]
  * Install units with dh_installsystemd only (Closes: #1054188)

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 16 Nov 2023 08:19:07 -0300

debci (3.7) unstable; urgency=medium

  [ Antonio Terceiro ]
  * Split publishing of results into a separate daemon
  * Debci::Job: store and report backend
  * Make logging for all daemons consistent
  * debci-worker, debci-publisher: log errors even in quiet mode
  * debci-generate-apt-sources: fix checks for non-free-firmware for suite codenames
  * self_service: allow multiple API keys and add to manage them
  * spec_helper: bump required test coverage to 92%
  * Drop obsolete scripts and mentions to them.
    Since debci-batch has been removed in favor of external scheduling of
    tests, some infrastructure left behind is not really useful anymore.
    Right now, drop  debci-list-dependencies, debci-list-packages,
    debci-setup-chdist and references to them (which are unused anyway).
  * Drop schroot backend
  * Bump dependency on autopkgtest to >= 5.29~
  * debci-publisher: fix obtaining data for logging
  * Drop dependency on devscripts
  * collector_spec: fix typo
  * Debci::Job.receive: improve handling of incomplete test results
  * debci-publisher: resist corrupted result archives
  * Debci::Job: keep track of purged files separate from the expiration date
  * config: define a disk storage limit per package
  * Debci::Job: add method to calculate per-job disk usage
  * Limit amount of storage each package can use.
    By Default, each package is allowed to use up to 200MB of disk space
    with logs and artifacts.
  * Debci::Status: remove unused variables
  * web: /status/{alerts,pending}/: display total of jobs after filtering
  * Debci::App: inform total of records when paginating
  * .rerun: ignore coverage/
  * web: display information about expired test logs.
    The custom 404 page for test logs will provide links to the list of
    tests for th same package on the suite and architecture of the original
    test, and for retrying the original test.
  * spec_helper: bump require test coverage to 93%

  [ Helmut Grohne ]
  * backends/lxc/create-testbed: use fewer different sources.lists
  * backends/qemu: fix evaluation of undefined variable
  * backends/qemu/create-testbed: use fewer different sources.lists
  * debci setup: add --keyring option
  * backends/qemu/create-testbed: forward --keyring
  * backends/lxc/create-testbed: pass keyring via new --keyring to autopkgtest-build-lxc
  * debci-setup: conditionalize installation of auto-apt-proxy
  * backends/lxc/create-testbed: do not enable --dbgsym for Debian derivatives
  * import and install munin plugins from debian-ci-config
  * Allow passing arguments to autopkgtest backends (Closes: #1037245)

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 04 Nov 2023 10:48:18 -0300

debci (3.6) unstable; urgency=medium

  [ Louis-Philippe Véronneau ]
  * docs: more precise info on how to get an API key
  * docs: remove mention of deprecated getkey endpoint

  [ Antonio Terceiro ]
  * RejectList: pre-expand wildcards when reading the data
  * Debci::Status: make code backwards compatible with ruby2.5
  * web frontend: rework user authentication
  * web frontend: add simple admin interface
  * self_service: make auth config forward-compatible with omniauth-gitlab 4.0
  * Debci::Job: store file sizes for log and artifacts
  * usage: fix help message for backend option
  * debci-worker: fix running alternative architectures and backends on the
    same host
  * admin: add support for stable ordering of records
  * admin: add Package.backend and support for select fields in general
  * admin: search packages by backend; fix searching on more than one field
  * Backend: use package preferred backend if available
  * debci-worker: mention backend in the logs
  * Debci::AMQP: don't cache queue name per architecture
  * api: add entry point to retry tests via a POST request
  * Apply suggestions by rubocop 1.39.0
  * tools/server.sh: use puma explicitly instead of rackup
  * test/test_helper.sh: setup custom management plugin port
  * test/bin/wait_for_results: simplify getting timestamp of last test job
  * Acknowledge NMU by Michael Biebl
  * Debci::Job: avoid artifact filenames being interpreted as tar options
    (Closes: #1030883)
  * Debci::Job: produce one single pin-package parameter with multiple
    packages (Closes: #1025369)
  * debci generate-apt-sources: add support for non-free-firmware
    (Closes: #1031238)

  [ Pavit Kaur ]
  * Handle signing-keys for extra-apt-sources

  [ Bas Couwenberg ]
  * Fix architecture list in JSON export.

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 26 Feb 2023 12:08:48 -0300

debci (3.5.2+nmu1) unstable; urgency=medium

  * Non-maintainer upload.
  * No source change upload to rebuild with debhelper 13.10.

 -- Michael Biebl <biebl@debian.org>  Sat, 15 Oct 2022 11:59:21 +0200

debci (3.5.2) unstable; urgency=medium

  [ Antonio Terceiro ]
  * config: improve handling of MIRROR.
    MIRROR is no longer read, and is only set if debci_mirror was
    explicitly set in the debci configuration.
  * debci-generate-apt-sources: handle ports architectures
  * debci-localtest: fix --help

 -- Paul Gevers <elbrus@debian.org>  Thu, 07 Jul 2022 21:30:42 +0200

debci (3.5.1) unstable; urgency=medium

  * Debci::App: get query parameters implicitly for pagination links
  * templates: job_listing: drop trailing whitespace
  * templates: job_listing: make package name a link

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 30 Mar 2022 09:39:12 -0300

debci (3.5) unstable; urgency=medium

  [ Antonio Terceiro ]
  * frontend: package: always display a pending jobs header
  * spec_helper: point Debci.config.data_basedir at temp directory
  * debci-test: don't repeat --add-apt-release= options (Closes: #968679)
  * debci-worker: move lxc | schroot from Depends: to Recommends:
  * Add tests for Debci::Job#expired?
  * Drop generation and storage of package-specific static data files
  * Delete remaining status HTML files
  * ci: run tests against postgresql
  * docs: don't advertise the schroot autopkgtesst backend
  * docs: MAINTAINERS: remove lxc networking instructions
  * .gitlab-ci.yml: upgrade stable to bullseye
  * .gitlab-ci.yml: don't hardcode the stable release
  * debci-worker: name temporary directory better
  * debci-worker: ensure temporary dir removal
  * backends/lxc: ensure temporary customize script is removed
  * Debci::HTML.update_package: drop deprecated arguments
  * debci-html: exit non-zero on wrong usage
  * Debci::Status: add trailing slashes everywhere for consistency

  [ barakat-ajadi ]
  * Status: generate status page dynamic
  * Status: Add pagination and filter to status pages

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 27 Mar 2022 16:37:07 -0300

debci (3.4) unstable; urgency=medium

  [ Pavit Kaur ]
  * Stop adding buildd APT entries by default
  * jobs: normalize worker field

  [ Olivia Cameron ]
  * Update docs/HACKING.md

  [ Shivam Singhal ]
  * Fix Shellcheck errors for bin/debci-autopkgtest

  [ Abiola Ajadi ]
  * Redirect after authentication to the page the user was trying to access
  * self-service test form: remember form values on failed submissions
  * packages: display pending jobs
  * web frontend: centralize job listing

  [ Antonio Terceiro ]
  * Drop debci-batch
  * spec: avoid monkeypatching core File methods
  * spec_helper: fix ambiguous calls in SimpleCov setup
  * Drop usage of deprecated method File.exists?
  * Debci::Job: drop unused local variable
  * Debci::SelfDocAPI: fix undefined variable warning
  * html: avoid warnings on undefined variables
  * self_service: fix redirect after login
  * frontend: respond with 404 on the history page of a non-existing package
  * functional tests: drop test_basics
  * collector_spec: avoid writing to real data directory
  * tools/workers.sh: revert back to moreutils parallel

  [ Marco M. F. De Santis ]
  * Update MAINTAINERS.md

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 23 Jan 2022 13:50:40 -0300

debci (3.3) unstable; urgency=medium

  [ Pavit Kaur ]
  * Add a user menu in the self service interface
  * Change extra-apt-sources into a fixed list

  [ Renan Luz ]
  * rubocop: clean up empty exclude lists

  [ Antonio Terceiro ]
  * override lintian tag about docs outside of /usr/share/doc
  * .gitlab-ci.yml: disable lintian for now
  * self_service: avoid duplicating usernames in development
  * debci-test: avoid duplicating apt sources
  * tools: break rerun invocations into multiple lines
  * tools: give rerun an application name explicitly
  * docs: update architecture diagram

  [ Paul Gevers ]
  * robots.txt: add /user/ as robots have nothing to find there

  [ Peter Pentchev ]
  * backends/schroot: do not break on undefined variables

  [ Shivam Singhal ]
  * Drop the link to data from the top menu
  * By default keep check the all architecture on request test page
  * Add package url to packages on Self-Service Job History Page

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 01 Nov 2021 10:47:23 -0300

debci (3.2) unstable; urgency=medium

  [ Antonio Terceiro ]
  * login page: improve appearance of the buttons
  * update-worker: update for all configured architectures
  * backends/fake: add create-testbed script
  * setup: always assume backends can create testbeds
  * setup: improve logging
  * debci-test: keep end of the log (Closes: #982598)
  * status charts: adapt time series for flot 4.x

  [ Pavit Kaur ]
  * Submit private jobs via API
  * Submit private jobs via Self Service
  * Add extra-apt-sources in API
  * Add extra-apt-sources via Self Service
  * Validate extra apt sources
  * Publish private tests via API
  * Update Self-Service Job History Page
  * Add Publish and Retry in Self-Service

  [ Paul Gevers ]
  * Raise default priority for scheduling jobs from 0/1 to 5

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 16 Aug 2021 10:16:18 -0300

debci (3.1) experimental; urgency=medium

  [ Pavit Kaur ]
  * Change Retry link to point to the self service interface
  * Migrate to logins using Salsa
  * Update the jobs table to add real reference to users table
  * Add private jobs flag to jobs

  [ Antonio Terceiro ]
  * Debci::Job: add index for field package_id
  * Debci::Job: index requestor_id

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 27 Jun 2021 08:39:41 -0300

debci (3.0.1) experimental; urgency=medium

  * backends/lxc/create-testbed: guard against undefined variable

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 30 May 2021 11:14:12 -0300

debci (3.0) experimental; urgency=medium

  [ Antonio Terceiro ]
  * backends: install ca-certificates
  * backends: qemu: don't make `debci` a system user (Closes: #983156)
  * Revert "backends: qemu: don't make `debci` a system user"
  * backends: qemu: translate proxy inside VM back
  * backends: qemu: replace adduser with useradd
  * Revamp shell best practices checks
  * Run codespell on `make test` and gitlab CI
  * doc: INSTALL.md: point to HACKING.md for development environments
  * debci-autopkgtest: setup APT retries
  * self service: fix example JSON file
  * codespell: ignore tags file
  * self_service: don't hide exceptions
  * Debci::TestHandler: handle missing arch without crashing
  * Debci::HTMLHelpers: display pinned packages correctly
  * Debci::App: extract get_page_range from Debci::SelfService
  * self_service_history: extract pagination code
  * Move all kaminari requires do debci/db
  * tools/check-shell-scripts.sh: don't finish on the first failure
  * spec_helper: resist simplecov not being installed
  * Debci::Package#backend: make test independent of local configuration
  * Debci::Expiration: add basic tests
  * spec_helper: bump required test coverage
  * docs/HACKING.md: clarify the setup methods

  [ daemon1024 ]
  * Fix Style/ConditionalAssignment violations

  [ Sergio de Almeida Cipriano Junior ]
  * Fix Style/GlovalVars issue
  * Rename blacklist to rejectlist

  [ Paul Gevers ]
  * docs/MAINTAINERS.md: update paragraph about Testsuite: header

  [ Ceda EI ]
  * backends/lxc/create-testbed: Fix shellcheck issues
  * backends/fake/test-package: Fix style violation AndOr
  * Fix incorrect key in self service documentation (archs -> arch)
  * Update Vagrantfile from contrib-buster64 to buster64
  * Replace proxy detection using netcat with auto-apt-proxy
  * Add /api/v1/reject_list to access reject list via an API
  * Update Vagrantfile to debian/bullseye64
  * Fix &mdash; being escaped for Trigger on retry page
  * Add warning on retry page when there are pending jobs

  [ Candy Tsai ]
  * frontend: implement server-side package search

  [ Pavit Kaur ]
  * rename whitelist to seed_list
  * Make value of slow_tests configurable
  * Update /api/v1/retry to check if package in reject list
  * Update to disable submit test requests when selected "Export to JSON"
  * Add a way to specify backend for a given package
  * Update to remove removed packages' results in status
  * Fix to reduce loading time on package pages

  [ Kritika Srivastava ]
  * lib/debci/api.rb : Fix style violation HashSyntax
  * fixed customize.sh

  [ Lizard Morrow ]
  * Fix shellcheck errors/warnings in lib/environment.sh.

  [ Gaurav Ahlawat ]
  * Removed shellcheck warnings
  * Moved the retry endpoints from API to SelfService
  * Moved the retry endpoints from API to Self-Service and added tests

  [ Ron Friedman ]
  * Removed rubocop_todo entry & corrected style violation
  * Move getkey endpoints from API to SelfService

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 29 May 2021 08:26:02 -0300

debci (2.15.2) unstable; urgency=medium

  * autopkgtest: mark test-suite as flaky

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 22 May 2021 07:30:43 -0300

debci (2.15.1) unstable; urgency=medium

  * test_helper: ensure a unique rabbitmq node name on CI environments.
    This hopefully fixes the unreliability of the functional tests on
    ci.debian.net. (Closes: #953947)
  * debian/tests/integration-test: don't install lxc or schroot

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 06 Apr 2021 18:53:57 -0300

debci (2.15) unstable; urgency=medium

  * js: drop console.log noise when loading chart data
  * js: position chart legends at the top left
  * test_helper: improve temporary directory name
  * Debci::Collector: log when starting and stopping
  * Debci::App: add common 404 handler
  * Generate package pages dynamically
  * Move all static HTML for /packages away
  * Drop obsolete config.ru file
  * Add some unit tests for Debci::HTML::CLI
  * api: add basic tests for fetching test results
  * api: sort results by updated_at

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 24 Jan 2021 14:36:26 -0300

debci (2.14.1) unstable; urgency=medium

  * self_service_spec: fix test on arm64

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 21 Dec 2020 23:00:49 -0300

debci (2.14) unstable; urgency=medium

  [ Antonio Terceiro ]
  * Debci::Job: fix parameters for multiple pinned packages
  * ui: improve expansion of pinned packages
  * Drop dependency on bsdmainutils (Closes: #964525)
  * Debci::Job: fix newsworthiness check
  * debci-worker: retry result submission until it works
  * docs/HACKING.md: drop gratuitous reference to stretch

  [ intrigeri ]
  * MAINTAINERS.md: fix command that adds user to group

  [ Baptiste Beauplat ]
  * Remove redundant <code> tag in the Automate section of the history page

  [ Sebastien Delafond ]
  * Add 'worker' field to job result (Closes: #958975)

 -- Antonio Terceiro <terceiro@debian.org>  Fri, 18 Dec 2020 16:59:26 -0300

debci (2.13) unstable; urgency=medium

  [ Antonio Terceiro ]
  * Add a proper user model
  * Debci::HTMLHelpers: fix parsing invalid pinnings
  * ui: switch to escaped HTML by default (Closes: #962862)
  * Set default external encoding to UTF-8

  [ Milos Knezevic ]
  * Fix missing build dependency (debootstrap)
  * Fix issue with init script exiting prior creating dev.conf
  * Fix lintian 'spelling-error-in-changelog' warning
  * Improve slight inconsistencies in docs/HACKING.md

  [ Utkarsh Gupta ]
  * Fix broken link for feed
  * Show package details on the retry page

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 28 Jun 2020 09:36:14 -0300

debci (2.12.2) unstable; urgency=medium

  * ui: fix table header in package history page
  * Debci::Collector: update only given suite/arch
  * Drop status from package list (prefix) pages.
    Unfortunately it's too expensive to produce those pages at the moment,
    so we can't afford to rebuild them on every new job.
  * Debci.log: flush STDOUT on each message
  * Debci::HTML: avoid extra queries
  * Debci::Package.history: fix ordering
  * Debci::Job: fix definition of "previous" job
  * job_spec: fix handling of dates to not fail in the future

 -- Antonio Terceiro <terceiro@debian.org>  Fri, 15 May 2020 20:36:01 -0300

debci (2.12.1) unstable; urgency=medium

  * Debci::HTML: fix creation of global status.json
  * migrations: fix creation of Debci::PackageStatus
  * Debci::HTML: fix blacklist
  * Debci::Job.receive: handle repeating previously interrupted receivements

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 14 May 2020 14:24:48 -0300

debci (2.12) unstable; urgency=medium

  * Debci::Job.receive: support jobs with no version
  * Debci::HTML: fix usage with broken symlinks
  * Debci::Collector: handle all types of errors
  * html: drop global feed
  * Debci::HTML: use only data from the database
  * self service/jobs: drop column for "debci log"
  * ui: display migration tests in the package history page

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 13 May 2020 21:55:42 -0300

debci (2.11) unstable; urgency=medium

  * Debci::Test::Duration.duration_human: handle zero
  * Drop links to "debci log" files
  * debci-test: add buildd suite for migration tests
  * Reformulate generation of static content
  - Debci::Job: receive autopkgtest results
      - Reformulate HTML generation
      - Add new CLI `debci html`; deprecate `debci generate-html`
      - Deprecate debci-generate-index; individual package pages are now
        updated right away when results for that package arrive;
        debci-update now only updates global pages (home page, status etc)
      - move all the real logic inside Debci::HTML
      - individual .json result files and "debci log" files are not longer
        produced.
      - debci-collector has been rewritten in Ruby, and will now receive
        results from the AMQP queue and directly import them instead of saving
        them to autopkgtest-incoming for later processing.
        - Legacy jobs in autopkgtest-incoming/ are processed o upgrade.
      - The data/status/ files are now simplified. For history, we keep a single
        status file per day. Existing data is migrated on upgrade.
    This set of changes provides a good performance enhancement. For
    example, running the full integration test suite on my machine now takes
    240 seconds instead of > 300
  * Drop pointless ${shlibs:Depends} from package dependencies
  * Makefile: fix parallel builds
  * Bump debhelper compatibility level to 12
    - Drop `--with systemd`, now handled by dh_installsystemd
  * Add Rules-Requires-Root: no
  * Replace dpkg-maintscript-helper calls in maintainer scripts with
    debian/debci.maintscript

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 19 Apr 2020 16:24:52 -0300

debci (2.10) unstable; urgency=medium

  [ Abhishek Kumar ]
  * [Status]: Fix inconsistent results produced
  * [Status]: Filter blacklisted and old statuses

  [ Antonio Terceiro ]
  * Debci::DB: support ActiveRecord 6 and drop support for < 5.2
  * Add more indexes to the jobs table
  * debci-expire: use database and look only for expired jobs
  * Debci::Status: remove duplicate implementation of expired?

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 04 Apr 2020 17:53:25 -0300

debci (2.9) unstable; urgency=medium

  [ Sébastien Delafond ]
  * Detect Kali in backends/lxc/create-testbed
  * api: allow passing an extra, optional priority parameter to enqueue jobs
    with

  [ Antonio Terceiro ]
  * debci-test: optimize storage of logs
  * Add some tests for debci-test
  * lib/environment.sh: accept amqp SSL options separately
  * Debci::AMQP: add TLS support
  * Remove all remaining mentions of $ADTTMP in favor of $AUTOPKGTEST_TMP
  * debci-autopkgtest: avoid trying to write to unexisting directory

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 01 Mar 2020 11:06:40 -0300

debci (2.8) unstable; urgency=medium

  * Debci::Job#to_s: use "pending" when when status is nil
  * debci-localtest: ignore failure to record package (Closes: #950305)
  * Add configuration variable for amqp-tools options
  * debian/tests: replace deprecated $ADTTMP with $AUTOPKGTEST_TMP

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 17 Feb 2020 19:06:21 -0300

debci (2.7) unstable; urgency=medium

  * lxc: allow for some sorting of container names
  * api: fix call to check for blacklisted packages
  * api: set date of test requests for blacklisted packages
  * job history: don't link to missing files
  * Add migration to set date of jobs for blacklisted packages
  * Debci::Job: extract prefix method into shared module
  * Debci::HTML: history: don't link to missing files
  * html: history: fix HTML
  * Debci::Blacklist: fix test for blacklist on suite/arch
  * ui: job history: display duration
  * self_service_history.erb: get fields directly as method calls
  * Debci::Status.from_file: always set a package name
  * Debci::Blacklist: add support for wildcards in package names
  * self-service: job history: improve navigation links
  * Debci::SelfService: make sure @user is set when available
  * Debci::Blacklist: avoid crashes when passed nil
  * debci-autopkgtest: record package/suite/arch inside testbed
  * lxc: make testbed creation atomic
  * schroot: make test bed creation atomic
  * debci-setup: drop test bed locking (Closes: #931206)
  * debci-test: drop testbed locking
  * tests: ensure backend is 'fake'
  * debci-generate-index: rename variable
  * api: avoid data loss when enqueue fails

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 12 Jan 2020 13:46:51 -0300

debci (2.6) unstable; urgency=medium

  * lxc: generate random container names
  * Debci::Job.import: validate package name
  * Move collector-only programs to debci-collector
  * Debci::AMQP: consolidate AMQP connection logic
  * test_worker: exclude existing processes from check for leftover processes
  * ui: user job list: show a reasonable number of pagination links
  * debci-collector: override "no ruby dep" from lintian
  * Bump Standards-Version to 4.4.1; no changes needed

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 17 Nov 2019 19:28:29 -0300

debci (2.5) unstable; urgency=medium

  * Debci::Status: extract duration_human to a module
  * Debci::Data::Import: ignore unknown fields
  * Makefile: add quick-check target to run robocop and rspec
  * Debci::Job: include readable duration in JSON output
  * spec_helper: add missing require
  * Debci::Test::Expired: short circuit to false
  * ui: job history: don't link to results of unfinished tests
  * self_service: redesign authentication
  * ui: self_service: use a configured session secret key
  * ui: self_service: display custom "auth failed" page
  * Debci::TestHandler.enqueue: make priority an argument
  * ui: job history: do only exact match on package names
  * Debci::SelfService: remove pointless check
  * ui: job history: accept * as wildcard for package names
  * Revert "Debci::Repository: sort "slow packages" by duration"

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 11 Nov 2019 11:06:23 -0300

debci (2.4) unstable; urgency=medium

  * ui: pending jobs: display requestor
  * Debci::Repository: sort "slow packages" by duration
  * ui: job history: sort by date with newest first
  * ui: job history: avoid extra params in pagination links
  * ui: job history: increase num of items per page
  * Debci::Status: extract #expired? into a module
  * Debci::HTML: extract #filesize into Debci::HTMLHelpers
  * ui: job history: link to test results

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 15 Oct 2019 23:21:46 -0300

debci (2.3) unstable; urgency=medium

  * Debci::Job: extract method to produce package history
  * Debci::Job.history: omit migration tests
  * debci job latest-json: reuse Debci::Job.history
  * debci.install: install config.ru
  * config.ru: only serve static files in development mode
  * ui: history: fix reading log and artifacts size
  * ui: history: when linking to requestor, filter to match current page
  * Debci::HTML: extract method for status icons into a helper
  * ui: user job history: display test status

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 13 Oct 2019 13:14:59 -0300

debci (2.2.2) unstable; urgency=medium

  [ Paul Gevers ]
  * Fix debci-setup-chdist to use the right interface of
    debci-generate-apt-sources
  * debci-status: make robust for empty result entries

  [ Antonio Terceiro ]
  * Debci::HTML: use ERB builtin HTML escaping
  * Debci::Status: skip unescaping trigger
  * ui: always escape triggers
  * debci-status: skip empty entries
  * debci job latest-json: ignore pending jobs

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 01 Oct 2019 12:00:25 -0300

debci (2.2.1) unstable; urgency=medium

  * debci-autopkgtest: fix a regression when reading an undefined variable
    - Revert "debci-autopkgtest: skip --apt-upgrade on null backend"
    - Revert "lxc, schroot: drop explicit --apt-upgrade"
    - Revert "debci-autopkgtest: always pass --apt-upgrade"
    - qemu: pass --apt-upgrade to autopkgtest

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 24 Sep 2019 13:53:33 -0700

debci (2.2) experimental; urgency=medium

  [ Antonio Terceiro ]
  * Debci::HTML.platform_specific_issues: don't crash on date-less statuses
  * Update .rubocop_todo.yml
  * Debci::Status: read date from `created_at` as fallback
  * debci-generate-html: add option to regenerate all packages
  * Debci::Status: fix Ruby code style warnings
  * debci-setup-chdist: always updates APT configuration
  * debci-setup-chdist: workaround absence of buildd-stable-proposed-updates
  * UI: link to bug reports for source package
  * docs/HACKING.md: add some contribution guidelines
  * API doc: drop unused stylesheet inside <noscript>
  * API doc: display links to each API endpoint
  * lxc, schroot: drop explicit --apt-upgrade
  * Update .rubocop_todo.yml
  * rubocop: add proper exclusions
  * debci-worker@.service: make main service depend on individual workers
  * Don't log AMPQ password when there is one
  * .gitignore: add /config/blacklist
  * debci-generate-html: fix access to blacklisted packages
  * debci-autopkgtest: skip --apt-upgrade on null backend
  * test_helper: set additional environment variables for rabbitmq
  * debci job: avoid unnecessary parse/dump roundtrip
  * spec_helper: accept database url from environment
  * Also run Ruby tests against PostgreSQL
  * Debci::Job: increase version field to 256 characters
  * Bump Standards-Version to 4.4.0; no changes needed
  * debian/control: depend on ruby-sqlite3

  [ BhavySingh ]
  * backends/fake/debci-list-dependencies: fix Ruby code style
  * bin/debci-api: fix Ruby code style
  * bin/debci-enqueue: fix Ruby code style
  * bin/debci-job: fix Ruby code style
  * lib/debci/blacklist.rb: fix Ruby code style
  * lib/debci/db/migrations/201712290143_create_jobs.rb: fix Ruby code style
  * lib/debci/db.rb: fix Ruby code style
  * lib/debci/package.rb: fix Ruby code style
  * lib/debci.rb: fix Ruby code style
  * bin/debci-generate-history: fix Ruby code style issues
  * spec/debci/api_spec.rb: fix Ruby code style issues
  * spec/debci/data_spec.rb: fix Ruby code style issues
  * spec/debci/graph_spec.rb: fix Ruby code style
  * spec/debci/job_spec.rb: fix Ruby code style issues
  * spec/debci/package_spec.rb: fix Ruby code style issues
  * spec/debci/repository_spec.rb: fix Ruby code style issues

  [ Candy Tsai ]
  * edit Vagrantfile to setup development environment
  * api: extract test job creation
  * api: refactor authentication code
  * api: add spec mock server
  * self_service: add self service section
  * self_service: run tests from form submission
  * self_service: submit test from JSON upload
  * self_service: check empty file when test by upload
  * self_service: add docs for JSON file upload
  * self_service: add success submission UI
  * self_service: add user history page with filters
  * api: refactor batch test
  * generate latest.json from database
  * self_service: add history pagination
  * self_service: change route to user
  * history: link to job requests by each user

  [ Simon McVittie ]
  * debci-generate-apt-sources: Add and use a script to generate sources.list

  [ Raphaël Hertzog ]
  * debci-autopkgtest: always pass --apt-upgrade

  [ Abhishek Kumar ]
  * Enable suite, arch and version specific blacklisting
  * UI: Add overview, text-based filter for failing packages

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 18 Sep 2019 09:49:30 -0300

debci (2.1) experimental; urgency=medium

  [ Antonio Terceiro ]
  * gitlab-ci: upgrade before installing packages
  * docs/HACKING.md: add explicit instruction for using backports
  * debci-{api,job}: ensure scripts are run with /usr/bin/ruby
  * debci-test: add support for a backend-specified duration
  * backends/fake: generate fake test run durations
  * Add explicit dependency on debian-archive-keyring
  * tools: replace shell scripts with rerun
  * Debci::API: doc: show absolute URL of endpoints
  * debci-data: shell out to tar
  * debci data import: rewrite run_ids in history files
  * Vagrantfile: allow choosing a box with $BOX
  * tools/server.sh: set FAKE_CERTIFICATE_USER
  * test/runall.sh: explicitly list failed tests at the end
  * manpage: fix typo in short option for --backend (Closes: #925287)
  * debci-migrate: migrate database before working on data files
  * Debci::Job: add missing fields from status files
  * Debci::Job.import: read all fields from status file
  * Move data from JSON files to database
  * feeds: adapt to lack of json files for individual test runs
  * tools/indexer.sh: migrate database at the beginning
  * gitlab-ci: check Ruby code style with rubocop
  * Makefile: add check-ruby-style target
  * rubocop: ignore block length on RSpec files
  * lib/debci/html.rb: remove tab indentation
  * robots.txt: disallow /api/v1 as a whole
  * debian/rules: run Ruby tests during build

  [ Panto1212 ]
  * correct some grammatical errors

  [ Candy Tsai ]
  * unify layout for home status and api page
  * fill in neutral status data when not exist
  * add more links to package and history page
  * add requestor to results page

  [ Victor Moura ]
  * Debci::DB: add support to ActiveRecord 5.1

  [ Sébastien Delafond ]
  * Avoid categorizing Kali as pure Debian in qemu/customize.sh

  [ bhavy singh ]
  * UI: Add "Search Package" form to home page
  * UI: Fix graph overlap
  * UI:Sort status pages
  * UI: Add retry button
  * UI: Exclude blacklist packages
  * UI: Add size field
  * Fix code style on several Ruby source files

  [ Jongmin Kim ]
  * debian/control: Add netcat as debci Depends

  [ Paul Gevers ]
  * docs: needs-recommends is deprecated
  * bin/debci: Update the location of our git archive
  * debci-worker@.service: add WantedBy=debci-worker.service to support more
    workers out-of-the-box
  * robots.txt: initial version

  [ Abhishek Kumar ]
  * UI: Add filter by time for /status/platform-specific-issues/
  * UI: Adds overview for suites and latest pending jobs in /status/pending/

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 11 May 2019 10:44:05 -0300

debci (2.0) unstable; urgency=medium

  [ Paul Gevers ]
  * docs/MAINTAINERS.md: add lxc 3 syntax and consistent sudo usage

  [ Antonio Terceiro ]
  * debci-data: import and export package data
  * debci-shell: require debci/job from the start
  * add missing dependency on rsync
  * backends/qemu: use autopkgtest-build-qemu to build images
  * backends/lxc: detect bridge interface on lxc 3
  * docs/HACKING.md: improve setup instructions
  * docs/HACKING.md: drop mention to vagrant setup
  * links: require link target to exist during build
  * debian/rules: remove unused, override_dh_clean
  * debian/control: deduplicate Build-Depends and Depends
  * debci localtest: skip --shell-fail it not on a tty
  * docs/HACKING.md: be explicit about installing build dependencies
  * Make mirror setting consistent across system (Closes: #923436)
  * Add -m/--mirror parameter to most scripts
  * debian/tests/backend-lxc: update lxc networking config for lxc >= 3
  * debian/tests/backend-lxc: add new test dependency on lxc-templates

 -- Antonio Terceiro <terceiro@debian.org>  Fri, 01 Mar 2019 20:57:12 -0300

debci (1.15.1) unstable; urgency=medium

  * debci setup-chdist: fix debootstrap usage
  * debci collector: make sure a single file is used as exitcode
  * Bump Standards-Version to 4.3.0; no changes needed otherwise


 -- Antonio Terceiro <terceiro@debian.org>  Wed, 06 Feb 2019 22:56:52 -0200

debci (1.15) unstable; urgency=medium

  [ Paul Gevers ]
  * Proper support for autopkgtest exit status 14: erroneous package with
    skipped tests

  [ Antonio Terceiro ]
  * Debci::Job: order pending jobs by creation date
  * config: fix setting debci_data_retention_days
  * Debci::Config: replace conditionals with hash lookup
  * Debci::DB: add support for ActiveRecord 5.2 (Closes: #918179)
  * Add missing build dependency on ruby-rack-test
  * Add missing autopkgtest dependency on ruby-rack-test
  * Debci::Config: don't break config values containing "="
  * config: add timeout to default database config

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 07 Jan 2019 13:54:47 -0300

debci (1.14) unstable; urgency=medium

  * lxc/create-testbed: avoid cleaning up valid containers
  * README.md: point people to debian-ci@l.d.o and #debci (only)
  * docs/MAINTAINERS.md: add two new FAQs
  * debci-autopkgtest: make it work when run standalone
  * debci-localtest: remove last component from artifacts directory
  * debci-autopkgtest: don't hardcode autopkgtest arguments
  * Bump Standards-Version to 4.2.1 (no changes needed)
  * Move moreutils from Recommends: to Depends: (Closes: #910918)

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 03 Nov 2018 12:50:26 -0300

debci (1.13) unstable; urgency=medium

  [ Antonio Terceiro ]
  * debci-generate-feeds: fix link to autopkgtest log
  * api: make API self-documenting
  * config.ru: serve compressed logs inline in development
  * debci-worker: declare results queue only once
  * backends/fake: drop rmadison call
  * debci-job: rename `finished` to `import` and move logic to Debci::Job
  * api: don't crash on failed authentication
  * api: don't display retry button to unauthenticated users

  [ Paul Gevers ]
  * Add --no-apt-fallback to autopkgtest options
  * .gitlab-ci.yml: use backports for stable testing

 -- Paul Gevers <elbrus@debian.org>  Thu, 13 Sep 2018 15:34:35 +0200

debci (1.12) unstable; urgency=medium

  [ Antonio Terceiro ]
  * ui: add status name back in package history page
  * lxc, schroot: don't make `debci` a system user
  * tools/init-dev.sh: reduce number of suites
  * tools/init-dev.sh: separate config files from test requests
  * debci-collector: replace pointless loop with conditional
  * Escape triggers when enqueuing test jobs (Closes: #902337)

  [ Paul Gevers ]
  * Treat autopkgtest exit status 8 as a neutral result (Closes: #901846)
  * debci.(pre|post)(inst|rm): call dpkg-maintscript-helper to adapt for
    change of directory to link in previous version
  * backends/debci-setup-chdist: add contrib and non-free (Closes: #825488)
  * backends: add debug archive to lxc and schroot (Closes: #817080)

 -- Paul Gevers <elbrus@debian.org>  Fri, 10 Aug 2018 20:06:49 +0200

debci (1.11) unstable; urgency=medium

  [ Antonio Terceiro ]
  * ui: pending jobs: add columns for suite and architecture
  * debci-generate-index: make sure to always run
  * Remove all handling of "blame"
  * Remove generation of britney hints file
  * Fix debci-localtest
  * Build-Depends: autopkgtest
  * debci-enqueue: log suite and architecture
  * debian/tests/control: install autopkgtest to run test suite
  * Debci::API: accept only package names starting with [a-z0-9]
  * ui: Optimize HTML generation process
  * Use FontAwesome via its standard API
  * lxc: name containers ci-$EPOCH (Closes: #893595, #898875)
  * Implement test priorities
  * ui: improve "Status Alerts" table
  * ui: add status page for slow-running tests
  * Bump Standards-Version to 4.1.4, no changes needed

  [ Paul Gevers ]
  * README.md: fix insecure http URL's and fix e-mail list address

  [ Rafael Laboissiere ]
  * d/control: Change Maintainer to Debian CI team.
    Antonio Terceiro, the former Maintainer, is now an Uploader.

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 13 Jun 2018 09:51:09 -0300

debci (1.10) unstable; urgency=medium

  * api: enable retry with client certificate and add GET response
  * Minor packaging updates
  * Thanks to Chris Lamb for the patches of bugs 880804, 879655 and
    879654.

 -- Paul Gevers <elbrus@debian.org>  Wed, 25 Apr 2018 15:10:36 +0200

debci (1.9.1) unstable; urgency=medium

  * api: accept + in package names

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 07 Apr 2018 15:45:26 -0300

debci (1.9) unstable; urgency=medium

  [ Paul Gevers ]
  * Make building debci reproducible (Closes: #880804)
  * Move from http://http.debian.net to http://deb.debian.org (Closes: #879654)
  * Document the use of a local mirror (Closes: #879655)
  * Document the need for running chdist
  * docs: fix typo

  [ Antonio Terceiro ]
  * debci-setup: mention suite in the logs
  * tools/build.sh: tell rerun that `make` exits
  * tools/init-dev.sh: initialize database
  * debci-worker: refuse invalid package names
  * api: reject invalid package names
  * Use salsa.debian.org in Vcs-* fields

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 07 Apr 2018 15:24:55 -0300

debci (1.8) unstable; urgency=medium

  [ Antonio Terceiro ]
  * This release adds two major features that were developed to support
    triggering tests to speed up Debian testing migrations:
    * Added support for "migration tests", which are tests that run on testbeds
      of a given suite (e.g. testing) with some packages from another suite
      (e.g.  unstable).
    * Added an HTTP API for requesting test runs. This will be used by britney
      to test package versions from unstable against testing.
  * debci setup: pass --suite to testbed creation scripts
  * debci test: Extract autopkgtest calls into a central helper program
  * backends/lxc: drop the unstable → sid renaming
  * Add script to run a Ruby shell
  * Move enqueuing process to Ruby for performance reasons
  * debian/control
    * replace build dependency on dh-systemd with debhelper (>= 9.20160709)
    * Bump Standards-Version to 4.1.3; no changes needed
    * remove unnecessary Testsuite: field

  [ Paul Gevers ]
  * backends/fake: use month instead of minutes in the generated package name
    for non-existent packages
  * backends/fake: use rmadison get more up-to-date version numbers
  * Initial version for a page where one can see which jobs have pending
    results
  * Add retrigger end point to the API

  [ Lucas Kanashiro ]
  * Update git repository URL to point to salsa
  * UI: sort package status history based on date in descending order
  * define pipeline via gitlab-ci.yml

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 15 Mar 2018 14:52:34 -0300

debci (1.7.1) unstable; urgency=medium

  * debian/control:
    - debci: recommend `ntp | time-daemon` instead of just `ntp`
      (Closes: #870739)
  * debian/debci-worker.cron.daily: also bail out immediately if debci is not
    installed (Closes: 822896)

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 10 Sep 2017 13:35:21 -0300

debci (1.7) unstable; urgency=medium

  [ Martin Pitt ]
  * Move from obsolete adt-run to autopkgtest CLI (Closes: #866867)

  [ Antonio Terceiro ]
  * debian/NEWS: document changes to base testbed names due to the move to
    `autopkgtest` from `adt-run`.
  * debci-setup: don't mask failure of the backend create-testbed script
    (Closes: #809652)
  * backends/lxc: cleanup containers if testbed creation fails, making sure
    that calls to debci-setup will always exit cleanly.
  * New program: debci localtest. It can be used by users to reproduce locally
    the same test environment used in ci.debian.net.
    - autopkgtest calls make by backends/*/test-package will now use the
      --no-built-binaries option.
  * Add debci(1) manpage and support `debci --help` (Closes: #867891)
  * Add an experiental `qemu` backend

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 26 Jul 2017 17:44:47 -0300

debci (1.6) unstable; urgency=medium

  * docs/INSTALL.md: update rabbitmq-related instructions
  * Debci::HTML: record template filename
  * Debci::Graph: assume empty array when there is no data
  * debci-expire: control data retention
  * Drop unnecessary symlinks to autopkgtest logs
  * web UI: don't link to removed files
  * debian/rules: skip running tests during build (Closes: #841708, #848054)
  * debci-worker.cron.daily: skip if debci-worker is not installed
    (Closes: #822896)
  * debian/*.service: add Documentation entry, pointing to online debci docs

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 28 May 2017 17:22:50 -0300

debci (1.5.1) unstable; urgency=medium

  [ Brandon Fairchild ]
  * TUTORIAL.md: Add links to DDPO and package tracker

  [ Antonio Terceiro ]
  * docs/TUTORIAL.md: add link to DMD as well
  * debci-setup-chdist:
    - use $MIRROR as default mirror
  * debci-generate-index:
    - handle sub-directories of the artifacts/ directory produced by
      autopkgtest.

  [ Paul Gevers ]
  * Simplify the instructions to enable sudo to work on lxc-* now that debci
    ships an sudoers.d/debci file

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 26 Jan 2017 10:27:45 -0200

debci (1.5) unstable; urgency=medium

  * debci setup
    - add -f/--force option to force an update, ignoring the testbed timestamp
  * web UI
    - fix links to packages in "status alerts" page
  * packaging:
    + debci-worker: move `apt-cacher-ng` from Recommends: to Suggests:. In
      practice, workers should usually be close to a good mirror; having a
      local cache increases the maintenance burden as the disk usage might go
      too high.
  * lxc backend:
    + drop "adt-sid-amd64-" prefix from container names. In practice,
      container names longer than 64 characters cause problems.
  * setup-chdist:
    + drop usage of timestamp to control when to call `apt-get update`. Just
      update always. an `apt-get update` on a updated tree should be quick
      enough.

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 27 Oct 2016 19:38:44 -0200

debci (1.4) unstable; urgency=medium

  [ Antonio Terceiro ]
  * bin/debci-migrate.d/002_compress_artifacts: also remove directories after
    compressing artifacts
  * Web UI:
    - include version numbers almost everywhere.
  * lib/debci/html/package.erb: avoid crashing when installing a fresh system
    with no data, but with packages already blacklisted.
  * debian/debci.postrm: remove /var/log/debci on purge (Closes: #810701)
  * Add support for running tests for multiple suites (See: #831975).
    .
    Not that we couldn't do that already, but it would require specific
    workers for each suite. With these changes, a worker node for a given
    architecture can now run tests on any suite for that architecture.
    .
    - debci-worker will now expect the suite name as a second argument on test
      jobs (defaulting to whatever is in $debci_suite).
    - debci-enqueue will now send the suite name as a second argument on each
      test job
    - Added debci-update-worker as a wrapper for calling debci-setup for each
      supported suite.
  * backends/lxc:
    - retry `apt-get update` until it works. Most of the time when the testbed
      setup fails on production is during `apt-get update`.
  * "Platform-Specific issues" will now not consider tmpfail as an issue.
    Those are already being tracked by "Status alerts".
  * test/test_shell_best_practices.sh: start checking scripts with shellcheck;
    not failing on issues just yet.

  [ Gordon Ball ]
  * Add the concept of failure states, to distinguish between
    * tests which have never passed
    * tests which passed for a previous version, but never for the current
      version
    * tests which previously passed for the current version


 -- Antonio Terceiro <terceiro@debian.org>  Sun, 04 Sep 2016 18:27:51 -0300

debci (1.3) unstable; urgency=medium

  * debci-collector:
    - remove creation of .timestamp files under data/autopkgtest-incoming/,
      which are no longer used for anything
  * bin/debci-batch:
    - use one tmp_dir per package/suite/architecture
  * bin/debci-generate-index
    - use one tmp_dir per package/suite/architecture
    - compress artifacts (except log) in a single tarball so that instead of N
      files per test run, we only keep 2 files per test run: log.gz and
      artifacts.tar.gz. This should significantly reduce the usage of inodes.

 -- Antonio Terceiro <terceiro@debian.org>  Fri, 03 Jun 2016 16:26:11 -0300

debci (1.2) unstable; urgency=medium

  [ Antonio Terceiro ]
  * debian/debci-worker@.service: also bump LimitNPROC to infinity to avoid
    the `Cannot fork` issue.
  * backends/lxc/test-package: use adt-virt-lxc --name option to facilitate
    mapping from a running test to package names. This requires autopkgtest
    (>= 3.20).
  * bin/debci-collector, bin/debci-worker, lib/functions.sh#report_status:
    display suite and architecture together with package names
  * HTML UI:
    * add page listing Platform-specific issues, i.e. packages that passes on
      one suite/arch but fails on another suite/arch.
    * fix Status page to not hide all charts when any platform does not have
      enough data
    * rewrite Status charts page. In special, instead of loading the full
      history via AJAX, which takes quite a while, embed a reduced view of the
      data in the HTML itself.
    * remove search functionality: it was too heavy/slow. If one day the UI
      stops being only static HTML, we can a search feature again.
  * Drop debian/tests/worker-max-processes. The original issue was caused by
    (and fixed in) systemd >= 228 (see bug #823530), and the test ended up not
    being very reliable and keeps flapping on CI.
  * bin/debci-generate-index: remove call to debci-generate-html, since
    debci-update now call both debci-generate-index and debci-generate-html

  [ Jakub Wilk ]
  * public/style.css: Set correct font for alert, chart, rss, and tracker
    icons. (Closes: #821932)

  [ Brandon Fairchild ]
  * HTML UI: fix final copyright year in the footer

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 23 May 2016 10:31:19 -0300

debci (1.1.2) unstable; urgency=medium

  * debian/tests/control: restrict backend-schroot to only running on VMs
    (i.e. not on containers)
  * debian/debci-worker@.service: make sure there is no maximum number of
    processes; otherwise when using the lxc backend, we might get random
    failures saying `Cannot fork: resource temporarily unavailable` with
    systemd from stretch onwards.
    - added debian/tests/worker-max-processes as a test case
  * Add new backend `null`, which just uses the `null` virtualization regime
    in adt-run. This will be useful for running tests, but can also be used
    for running tests with zero overhead on trusted packages.
  * backends/fake: add support for executing an specific command instead of
    producing a random result if $DEBCI_FAKE_COMMAND is set.

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 12 Apr 2016 11:23:17 -0300

debci (1.1.1) unstable; urgency=medium

  * debian/sudoers.d/debci: adjust to work with autopkgtest >= 3.19.3,
    which will also call `timeout` under sudo.
  * backends/lxc/create-testbed: initialize $GUEST_PROXY before use, for the
    case when no proxy is detected.
  * Add integration tests for schroot and lxc backends
  * debian/tests/integration-test: wait until test jobs have been processed,
    to avoid failures due to not waiting long enough on slow machines.
  * debian/tests/control: force throwing away used testbed after
    integration-test and multiarch-integration-test

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 27 Mar 2016 22:42:29 -0300

debci (1.1.0) unstable; urgency=medium

  New features:

  * debci-config: added option to output only values and not keys
  * Proper support for multiple architectures.
    - list of architectures is declared in the configuration file using the
      `debci_arch_list` variable.
    - new script debci-update will call debci-generate-index for each of the
      architectures in $debci_arch_list, and them call debci-generate-html
      which was already architecture-independent.
    - systemd unit files debci-generate-index.{service,timer} renamed to
      debci-update.{service,timer}. debci-update.service and changed to call
      `debci update` instead of `debci generate-index`.

  Bug fixes:

  * remove unused debian/po directory (Closes: #813447)
  * test_helper: stop rabbitmq-server the right way

  Minor packaging updates:

  * remove deprecated and unused tools
  * debian/control: Use https URLs in Vcs-* fields
  * debian/control: Bump Standars-Version to 3.9.7; no changes needed

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 26 Mar 2016 18:59:52 -0300

debci (1.0.2) unstable; urgency=medium

  [ Martin Pitt ]
  * Fix some excessive amd64 hardcoding in the test suite. Thanks Colin
    Watson!
  * test/test_blame.sh: Sleep for one second between process() calls, to
    ensure that timestamps in run IDs are different. (Closes: #809265)

  [ Brian Murray ]
  * Include extra information in HTML <title> tags, such as package name,
    architecture, suite, etc (Closes: #811563)

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 25 Jan 2016 18:57:03 -0200

debci (1.0.1) unstable; urgency=medium

  * debian/debci-worker.cron.daily: exit immediately if debci is no longer
    installed (Closes: #807360)
  * Drop Debconf templates
  * bin/debci-batch: make sure package status directory exists before creating
    queue marker

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 14 Dec 2015 15:17:30 -0200

debci (1.0) unstable; urgency=medium

  * This is a major overhaul of the debci infrastructure. debci now works as a
    distributed system, with one or more workers that process test runs, and
    one central node that collects tests results and generates the HTML web
    UI. The nodes communicate using an AMQP server (usually rabbitmq-server),
    and test requests can be submitted from any host that can connect to the
    AMQP server. One will usually have one specific node, perhaps the one that
    runs the result collection/web UI, running `debci batch` to schedule tests.
  * New packages:
    + debci-worker: contains the systemd service units necessary to run the
      worker daemons; must be installed on worker nodes.
    + debci-collector: contains the systemd service unit necessary to run the
      debci collector daemon: will receive test results, and generate the HTML
      web interface; must be installed on a single node in the network
  * The `debci` package contains the debci core, and is still the package that
    needs to be installed for developers trying out debci locally as
    instructed the documentation.
  * Change default backend to `lxc`

  [ Martin Pitt ]
  * Initial implementation of the master/worker setup
  * Add support for importing data from test runs executed elsewhere

  [ Antonio Terceiro ]
  * Finished implementation of the master/worker setup
  * schroot/create-testbed: find usable union-type (Closes: #799760)
  * debian/debci.postrm: remove /var/lib/debci on purge (Closes: #769766)
  * added debian/tests/integration-test: full-system smoke test

  [ Chris Lamb ]
  * Document how to get started without a virtualisation regime
    (Closes: #777531)

  [ Brandon Fairchild ]
  * Several documentation and frontend updates
    + Including displaying correct failing architectures (Closes: #797198)

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 03 Dec 2015 22:15:30 -0200

debci (0.13) unstable; urgency=medium

  * debci hint: generate a britney hints file

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 18 Aug 2015 16:52:06 +0200

debci (0.12) unstable; urgency=medium

  [ Brandon Fairchild ]
  * Debci::Package#failures: Determine the test status that occurred before a
    tmpfail

  [ Antonio Terceiro ]
  * web UI: read head.html and footer.html from config dir

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 17 Dec 2014 08:45:20 -0200

debci (0.11) unstable; urgency=medium

  [ Antonio Terceiro ]
  * debci-migrate: added a data migration mechanism that is also automatically
    executed during postinst.
  * Switch data storage strategy to compress all autopkgtest logs. This will
    save huge amounts of storage space.
    - tools/server.sh adjusted to make lighttpd serve *.log.gz files as
      regular text/plain files, but with the propers headers to tell browsers
      that they are compressed so they will do the right thing.
  * debci-batch: will now stop even in the middle of a iteration when told to
    go offline.
  * backends/schroot/create-testbed, debci-setup-chdist: add buildd suites to
    sources.list so we detect newly uploaded packages faster
  * Removed embedded copy of Bootstrap, now depending on libjs-bootstrap

  [ Brandon Fairchild ]
  * Several web UI improvements
  * Documentation update on hacking the web interface

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 15 Nov 2014 14:56:14 -0200

debci (0.10.3) unstable; urgency=medium

  [ Brandon Fairchild ]
  * handle old test run data that didn't have a run_id.

  [ Antonio Terceiro ]
  * debci-status: fix generation of packages status file which was incorrectly
    repeating the status for the very first package over and over.

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 14 Oct 2014 18:55:27 -0300

debci (0.10.2) unstable; urgency=medium

  [ Antonio Terceiro ]
  * lib/functions.sh: accept any value of Testsuite matching `autopkgtest`
    instead of only exact matches when looking for source packages with test
    suites. This will allow detecting packages with specialized values such as
    autopkgtest-pkg-ruby and autopkgtest-pkg-perl.

  [ Brandon Fairchild ]
  * Detect JSON parsing errors on history files instead of silently failing
    and leaving a blank history (Closes: #759569)
  * Avoid also listing lib* packages under l/.

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 08 Oct 2014 08:53:37 -0300

debci (0.10.1) unstable; urgency=medium

  * Fix documentation build

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 30 Sep 2014 17:29:48 -0300

debci (0.10) unstable; urgency=medium

  [ Martin Pitt ]
  * Fix Makefile to be idempotent, previously it failed on already existing
    symlinks.
  * Add missing dctrl-tools build dependency, Makefile is calling grep-dctrl.
  * Makefile: Don't call "checkdeps" on "make check", the test suite doesn't
    actually need autopkgtest or the libjs packages (which are for the UI
    only).
  * test/test_helper.sh: Don't hardcode "amd64", to fix test failure when
    building on other architectures.

  [ Antonio Terceiro ]
  * debci-generate-index: update packages.json atomically
  * web UI improvements:
    - remove limit of number of items to display in the search
      (Closes: #762213)
    - trigger search immediately when there is text in the search box
      (this will happen if you reload the page)
    - store search query in the URL, and honor that when opening any page that
      contains a search box

 -- Antonio Terceiro <terceiro@debian.org>  Fri, 26 Sep 2014 18:22:06 -0300

debci (0.9) unstable; urgency=medium

  [ Antonio Terceiro ]
  * schroot/create-testbed: update existing chroots
  * debci-generate-feeds: add description to feeds
  * Incorporate results of the Google Summer of Code 2014 project by Brandon
    Fairchild, providing uncountable improvements to the web interface.
    http://lists.alioth.debian.org/pipermail/soc-coordination/2014-August/002295.html

  [ Brandon Fairchild ]
  * web UI was improved to support multiple suites and architectures, reduce
    the dependency the UI had on Javascript, and provide more information to
    package maintainers. The documentation was also worked on to provide
    information to people interested in working on debci (specifically the web
    UI)

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 23 Aug 2014 18:10:04 -0300

debci (0.8.1) unstable; urgency=medium

  * Documentation updates
  * Fix obtaining the finish date of tests. Parsing the adt-run log started
    producing bad dates when adt-run changed to displaying only the time
    without the date. debci now uses the timestamp of when adt-run finished
    instead.
  * debci-batch: store offline mark in persistent storage to avoid going back
    online after a reboot.
  * debci-test: revert to updating only package-specific data; it turns out
    that updating global data after every package is too expensive.
  * debci-batch: update global data every 1 hour or so
  * debci-generate-index: avoid crash when regenerating data for external
    consumption from scratch. This process is not completely idempotent yet,
    so it needs more work.

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 18 Aug 2014 08:25:23 -0300

debci (0.8) unstable; urgency=medium

  * debci-test: update global data files, not only package-specific data file,
    after each successful test run.
  * debci-generate-index: ensure that no two instances can run at the same
    time.

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 31 Jul 2014 11:55:27 -0300

debci (0.7.3) unstable; urgency=medium

  * debci-generate-feeds:
    - always update the global feed.
    - Point main link of feed entries to the debci log instead of the package
      page.
  * debci-generate-index:
    - report duration of each test run together with the status
  * debci-test:
    - fix regression with new packages caused by not mkdir'ing the full path
      to the adt-run output directory. `fake` backend adapted to emulate the
      behaviour of adt-run so that the tests would now fail without the fix.

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 18 Jun 2014 14:29:46 +0200

debci (0.7.2) unstable; urgency=medium

  * Fix calculation of test elapsed time. We can't store the beginning
    timestamp at the adt-run output directory because that will be wiped out
    by adt-run before running the test.
  * public/index.html: fix source code URL to point to the collab-main
    repository which is the canonical one.

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 10 Jun 2014 17:30:41 -0300

debci (0.7.1) unstable; urgency=medium

  * Fix handling of blame with "unknown" as value. Will avoid crashing when
    generating indexes

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 09 Jun 2014 11:07:11 -0300

debci (0.7) unstable; urgency=medium

  [ Antonio Terceiro ]
  * debci-batch: put packages with fastest testsuites first in the queue
  * debci-generate-feeds: allow generating feeds for specific packages
  * debci-generate-index: update package feed right away when indexing
    individual packages
  * public/app.js: Adjust the "Pass percentage" Y axis labels so that chart is
    actually a percentage chart.
  * public/index.html: add link to global Atom feed in the home page.
  * debci-test, debci-generate-index: more robust way of calculating test run
    duration. Parsing the autopkgtest log is just not good enough.

  [ Martin Pitt ]
  * Fix report_status() to work for bash scripts.
  * debci-test: Add --print-output option to write output directory to stdout.
    With that the caller can easily check the result.
  * debci, tools/server.sh: Exec the target program instead of running in a
    subprocess, for efficiency and proper SIGTERM handling.
  * Drop tools/convert-data. We only needed it for version 0.6, and we're
    going to need a different conversion script after the next data/ dir
    reorganization.
  * Reorganize data directory to move the "categories" packages/,
    autopkgtest/, status/, and feeds/ to the top level; they contain
    subdirs for all releases and architectures. This makes autopkgtest/ fully
    rsyncable and also makes it easier to the web UI to browse/present data
    for multiple releases and architectures. Also split release-arch/ into
    release/arch/.
  * Add tools/convert-data-0.7: Convert data directory to changed format from
    above.
  * Fix debci-status -l if there is just one package.
  * Add tests for debci-batch, covering skipping/re-running of tests under
    appropriate conditions and showing the cause for re-run in the log.
  * Replace test/json_validity (in ruby) with test/test_json.sh (shell with
    just calling ruby for the actual JSON validation). With that we can reuse
    test_helper's test bed setup instead of having to replicate it all in
    ruby.
  * Make test/runall.sh executable for convenience, and make it only run
    test_* scripts.
  * debci-batch: remove reading configuration from /etc/default/debci
  * lib/environment.sh: read configuration from $debci_basedir/config/debci.conf
  * Add debci_mirror config variable to configure an archive mirror. Use it
    for chdist and schroot setup.
  * Drop unnecessary faketime build dependency.
  * Add LXC backend.

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 03 Jun 2014 22:36:44 -0300

debci (0.6.3) unstable; urgency=medium

  * debian-status: avoid generating invalid JSON in the presence of packages
    without status files

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 29 May 2014 12:48:48 -0300

debci (0.6.2) unstable; urgency=medium

  * debci-generate-index: don't try merging dependencies diff when no package
    has been blamed before.

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 28 May 2014 18:14:06 -0300

debci (0.6.1) unstable; urgency=medium

  * Fix chdist calls on stable (See #736504)

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 15 May 2014 12:51:25 -0300

debci (0.6) unstable; urgency=medium

  [ Martin Pitt ]
  * Move schroot creation from bin/debci-setup to
    backends/schroot/create-testbed, as it is schroot backend specific and
    other backends will need different setup.
  * process-package: Call backend test-package with second argument that
    specifies the adt-run output directory. Implement that in schroot backend
    with adt-run --output-dir, and fake backend when passing $DEBCI_FAKE_DEPS.
    This will be used to collect and present log files, artifacts,
    package/version lists, etc.
  * Eliminate list-base-system and use autopkgtest's testbed-packages output
    file instead. This will also work with remote workers and other virt
    servers.
  * Eliminate check_version() and take this information from autopkgtest's
    output.
  * Move report_status() into lib/functions.sh as we'll need it in more places
    than just process-package.
  * Move "run needed" policy from process-package to bin/debci. With this,
    debci-test can be called manually at any time to retry tests or get called
    by e. g. britney which already evaluates when to run tests. Remove the
    "run test at most once a day" check completely as package updates can
    happen several times a day. As a by-product this also fixes debci's -f
    option to force a test run.
  * backends/schroot/list-dependencies: Ignore individual apt-get failures as
    that gets called for binaries which don't exist on the selected
    architecture. Fixes operation for e. g. glib2.0.
  * Use chdist instead of the local schroot for package queries:
    - Add scripts/setup-chdist to create/update a chdist for the selected
      release.
    - Use that in list-dependencies instead of querying the schroot. Move that
      script to scripts/ as it is now not backend specific any more.
    - Update lib/functions.sh to use chdist instead of the schroot.
    - Add devscripts dependency for chdist, and demote schroot dependency to
      recommends.
    This allows us to use other backends, like QEMU or remote ones.
  * Reorganize data directory:
    - Split out autopkgtest output into ${debci_data_dir}/autopkgtest/:
      This now contains a full directory for each test run with all of
      adt-run's --output-dir files. This provides access to individual test
      stdout/err logs, the package version lists, and additional artifacts
      that tests produce. With this, autopkgtest/ becomes eligible for being
      on a remote file system and can be synced/rebuilt independently of the
      metadata.
    - Use run IDs with format YYYYMMDD_HHMMSS[machine or tags] instead of the
      old YYYYMMDD-n as the former works for a distributed file system and
      remote workers.
    - base.txt is now replaced with adt-run's testbed-packages output file.
    - test-packages.txt gets dropped as there is no need to keep it around
      permanently. Build it from the per-test -packages logs from adt-run.
    - Move status.json into status/ directory and remove the redundant
      latest.json.
    - Move packages.json into status/ directory.
  * Add tools/convert-data: Convert data/ directory to changed format from
    above. This can be dropped again after running it on the production debci
    instance.
  * app.js: Filter out query strings from URL for constructing the .json URLs.
    Fixes wrong URLs after using the package search field.
  * backends/schroot/test-package: Drop unused temporary dir.
  * backends/*/test-package: Write exit code into "exitcode" file in output
    dir, so that we retain it even when we switch to asynchronous/remote
    processing.
  * backends/fake/test-package: Write log file into output dir, like adt-run.
  * Move test result evaluation, log and meta data creation from debci-test to
    debci-generate-indexes. This prepares the way for running adt-run
    asynchronously or remotely, and picking up the results from the
    autopkgtest/ data directory.
  * Reduce the per-test run <timestamp>.log files to the debci metadata
    (triggers, package versions, package diffs, overall result), as the actual
    autopkgtest log is now kept in data/*/autopkgtest/. This avoids
    duplicating the log contents.
  * app.js: In the per-package test list, add link to latest autopkgtest log
    and artifacts (other output files).
  * debci-status --all: Output a list also if there is only one package.
  * debci-status --all: Sort package names so that they appear sorted in the
    web UI.
  * Avoid some error messages noise when calling generate-index without any
    existing test data.
  * Drop debci-test --reason option and make debci-batch put the reason into
    the status directory directly.
  * Fold debci-cleanup into debci-generate-index.

  [ Antonio Terceiro ]
  * schroot backend: pass --session-id to adt-virt-schroot. This makes it
    easier to debug test suite that leave rogue schroot sessions behind.
  * rename `debci` binary to `debci-batch`. `debci` stays reserved for
    providing a entry point binary like `git` that will invoke subcommands
    that are kept out of $PATH to avoid cluttering the namespace.
  * debci-batch: make batch locking suite- and architecture-specific
  * debci-batch: add --offline and --online options. --offline will prevent
    new test runs from being started, and --online will revert to normal
    operation.
  * Rename scripts/*:
    - scripts/process-package: absorbed by the previously almost empty
      bin/debci-test
    - scripts/list-dep8-packages: absorbed by the previously almost empty
      bin/debci-list-packages
    - scripts/list-dependencies  → bin/debci-list-dependencies
    - scripts/setup-chdist       → bin/debci-setup-chdist
    - scripts/blame              → bin/debci-blame
    - scripts/cleanup            → bin/debci-cleanup
    - scripts/generate-index     → bin/debci-generate-index
  * add `debci` binary to not clutter the namespace. When you call `debci
    COMMAND` it will set PATH to include the debci bin/ and then call
    `debci-COMMAND` with the supplied arguments.
  * debci-blame: replace usage of deprecated IO#lines method with IO#each_line
  * debci-generate-index: accept duration as command line switch
  * backends/schroot/create-testbed: drop usage of eatmydata to avoid breaking
    test suites that actually depend on a real fsync(). To compensate the
    performance loss when installing packages, set dpkg `--force-unsafe-io`
    option in a configuration file (Closes: #747308).
  * Added Ruby bindings and the corresponding documentation
  * Dropped usage of faketime in the test suite (Closes: #747715)
  * backends/fake: output a timestamp like the ones adt-run outputs
  * Added new debci-config, a helper to output value of debci configuration
    values
  * debci-generate-feeds: added generation of per-package and global Atom
    feeds. Called from debci-batch
  * public: now using FontAwesome from fonts-font-awesome package
  * public/app.js: add a link to the per-package Atom feed
  * public/style.css: make the status indicators use FontAwesome icons

 -- Antonio Terceiro <terceiro@debian.org>  Thu, 15 May 2014 12:34:33 -0300

debci (0.5.2) unstable; urgency=medium

  * scripts/process-package: skip blame check without a dependencies diff
  * lib/*.sh: guard `set -eu` to avoid doing that on interactive shells
  * lib/functions.sh: fix list_binaries to work against the sources index
    - This fixes listing binaries coming from packages that were binNMUed

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 05 Apr 2014 20:03:22 -0300

debci (0.5.1) unstable; urgency=medium

  * etc/schroot/debci/fstab: improve schroot isolation
    - do not share /tmp with host
    - mount tmpfs at /dev/shm as quite some software needs it
  * test_shell_best_practices.sh: skip when checkbashisms is not available.
    - You don't want to install devscripts and all its dependencies when
      running as-installed tests
    - checking for best practices is only useful in development environments.
  * Use unified diff in "Change in the base system since last run"
  * debian/source/options: fix to include publib/data in the source tarball,
    but not data/*

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 01 Apr 2014 12:23:15 -0300

debci (0.5.0) unstable; urgency=medium

  [ Martin Pitt ]
  * Add missing dctrl-tools dependency.
  * Use "dpkg --print-architecture" instead of dpkg-architecture, to avoid a
    dependency on dpkg-dev and the (undeclared) dependency on gcc.
  * Fix grep_packages() to actually use the configured architecture instead of
    the host architecture.
  * Add --help output to debci-{list-packages,setup,test}, instead of failing
    with an "usage: not found" error.

  [ Antonio Terceiro ]
  * Initial upload to Debian (Closes: #736416)
    The API is not set yet, but I am uploading anyway to allow for early
    testing, improve contribution opportunities, to get a BTS etc.
  * Updated documentation
    - instructions for setting up a development instance.
    - Point traffic at debian-qa
  * modularize behaviour of a backend
    - existing implementation extracted as the `schroot` backend
    - added a `fake` backend that helps with testing
  * schroot backend optimization: always run with eatmydata
  * Add blame support: when tests of a package start failing after some
    dependencies were updated, those dependencies will be "blamed" for the
    failure.
  * improvements on autopkgtest usage:
    - debci now uses the autopkgtest support for downloading the source
      package instead of downloading manually and them calling adt-run
    - debci now differentiates between the non-zero adt-run exit codes, so
      that skipped tests will not count as failures. Also added a `tmpfail`
      status, to be used when for some reason the tests could not be run for
      some external failure (e.g. mirror failures, broken dependencies etc).
  * debci now keeps track of the base system. Tests will be run again every 2
    weeks even if no explicit dependency changes. Test logs will also display
    the changes in the base system since the last run.
  * Add DEP-8 support to debci itself \o/
  * extra safety: add `set -u` to all shell scripts

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 24 Mar 2014 20:06:56 -0300

debci (0.4.0) unstable; urgency=medium

  * Package renamed to debci
  * Require a newer autopkgtest.
    - In general we should always be using a backport of the most recent
      version in unstable.
  * Visual facelift
    - embedding a copy of bootstrap 3 for now :-(
  * Add backend support for multiple architectures. For now unstable/amd64 is
    hardcoded, but reading them from the command line or from the environment
    will not require a large change.

 -- Antonio Terceiro <terceiro@debian.org>  Tue, 28 Jan 2014 14:40:22 -0300

dep8 (0.3.1) unstable; urgency=medium

  * Explicitly set PATH in crontab

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 12 Jan 2014 22:52:00 -0300

dep8 (0.3.0) unstable; urgency=medium

  * record duration of each run, and record more tham one status entry per
    day.

 -- Antonio Terceiro <terceiro@debian.org>  Sun, 12 Jan 2014 19:40:23 -0300

dep8 (0.2.3) unstable; urgency=medium

  * Makefile: fix creating symlinks for JS files

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 11 Jan 2014 15:47:00 -0300

dep8 (0.2.2) unstable; urgency=medium

  * check_version: handle package with more than 1 version

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 11 Jan 2014 15:41:00 -0300

dep8 (0.2.1) unstable; urgency=medium

  * environment.sh: print error when dep8_base_dir is not set
  * cron-wrapper: change to base directory before loading environment

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 06 Jan 2014 16:22:18 -0300

dep8 (0.2.0) unstable; urgency=medium

  * keep track of the archive-wide status
  * process-package: set directory for schroot invocation
  * generate-index: better naming for status entries
  * cron-wrapper: fix user detection
  * Move web UI to public/ subdirectory
  * add test to check for bashisms
  * major reorganization for reuse and consolidation
  * webui: display global status in time series chart
  * Use explicit directory for gnupg home
  * Also install a config directory in /etc
  * ignore new top-level directories

 -- Antonio Terceiro <terceiro@debian.org>  Mon, 06 Jan 2014 15:44:29 -0300

dep8 (0.1.1) unstable; urgency=medium

  * Add basic test suite
  * add `set -e` to all shell scripts

 -- Antonio Terceiro <terceiro@debian.org>  Sat, 04 Jan 2014 14:20:53 -0300

dep8 (0.1.0) unstable; urgency=low

  * Initial Release.

 -- Antonio Terceiro <terceiro@debian.org>  Wed, 01 Jan 2014 01:35:14 -0300
