v0.12.1
=======

- Fix serving packages with URI-escaped names in the request-URI.

- Remove RPMS directory when reseting 'rotate' state. This fixes YUM problem
  when rebuilding dual-lived packages and their reverse dependencies in
  parallel.

v0.12.0
=======

- Fix an important race condition when createing and removing directories by
  File::Path is not thread-safe. This caused spurious failures reporting
  missing working directory.

- Significant performance improvement in the dependency solver by
  implementing a reverse cache for RPM package provides.

- New rebuildreset(1) tool which allows to reset packages into intial state.
  Use --changed option to reset only packages whose remote git repository has
  been updated. This allows to synchronize local git repositories with remote
  ones.

- POD documentation for Fedora::Rebuild::Solver.

v0.11.0
=======
- Fix Fedora::Rebuild::Mock install_group default value to `buildsys-build'.

- Fix updating local repository by remove stray symbolic links.

- Various Fedora::Rebuild::Package methods accept
  Fedora::Rebuild::Package::Config object now to deliver constant build
  configuration.

- Fedora::Rebuild::Package methods creating source or binary packages accepts
  Fedora::Rebuild::Mock objects to use them instead of temporary mock
  environments. This speeds up a lot because of caching. However it delays
  start up due precreating pool of mock environments. This also consumes more
  disk space.

- The Fedora::Rebuild::Mock shared attribute has changed semantics. It
  controlls caching now and the mock identifier is never reused.

v0.10.0
=======
- Fix local repozitory initialization if the repozitory is empty.

- Increasing package NEVRA while building SRPM only if not yet updated.

- Fix counting failures.

- Add `verbosesolver' configuration atribute to disable tracing dependency
  solver. This is useful if the dependency tree is big and the solver consumes
  a lot of memory due the tracing.

- Document `mock' mode.

- Fix scheduler in in select_rebuildable().

- Apply threaded glob() crash work-around. See Perl bug report
  <https://rt.perl.org/rt3/Ticket/Display.html?id=117823> for more details.

- Add `mock_install_group' configuration attribute to control which yum group
  to install into mock environment. Default value is `buildsys-build'.

v0.9.1
======

- Do not cache mock environment when building a package because each package
  uses different environment.

- Share mock environment when building source packages in single thread. This
  is the fastest method now.

v0.9.0
======

- Add new building mode `mock'. It builds source and binary packages using
  mock tool. You need to specify where the mock can take packages by ne
  `repourls' attribute. Already rebuilt packages get available as additional
  repository automatically.

- Source packages are built using mock in `koji' mode either. This allows
  influence generated build-requires during SRPM build phase by build root
  environment (RPM macros, external tools).

- It's necessary to define build architecture with `architecture' attribute.
  This is needed for mock mode.

- It's possible to retrieve source repositories by anonymous git access if new
  attribute `anonymous' is true.

- It's possible to override fedpkg dist name value by new `pkgdist' attribute.
  This allows building packages from private git branch locally.

v0.8.0
======

- Fix progress bar while selecting rebuildable packages.

- rebuildperl can read configuration for ~/.rebuildperlrc.

- New comparebuildroots tool. It compares latest build of source package in
  given koji build root specified by tag.

v0.7.0
======

- Draw progress bar for each parallelized task (e.g. loading dependencies,
  selecting buildable packages). Please note there is no overall progress bar.

v0.6.0
======

- Unordered build mode added (set ordered to false in Fedora::Rebuild
  constructor). This allows to build packages disregarding dependencies.

v0.5.1
======

- Handle exception in scheduler jobs.

- Add work-around for fedpkg output bug
  (https://bugzilla.redhat.com/show_bug.cgi?id=721389).

v0.5.0
======

- Incompatible change: Format of binary package provides and requires has
  changed. Please remove `.runrequiresstore' and `.providesstore' lock files.
  The dependencies cache will be regenerated from already downloaded binary
  packages.

- When selecting packages to rebuild, run-time dependenices of build-time
  requirements of the package in question are considered too. Unfortunatelly
  the dependency solver misbehaves in more than one thread.

- The number of solver threads is controlled by `selectthreads' attribute of
  Fedora::Rebuild contructor. Please set it to 1.

- Computed recursive build-time dependecies are reported to
  `.is_installable.log' files. Their's corresponding lock files are ignored.

v0.4.1
======

- Fix storing and retrieving Koji task ID in submitbuild and build states.

v0.4.0
======

- Record current time for each log message. (Requires DateTime Perl module.)

- Split `build' state to `submitbuild' and `build' state. The first submits
  build to Koji and stores Koji task ID. It submits even if build exists in
  Koji. This is needed to redo failed builds. Then it created state lock and
  resubmit never more. Remove the lock to force resubmit. Second state just
  waits to finishing build. In case of local build, remove submitbuild is
  skipped always and rebuild is performed in build state. This approach is
  still not ideal. We must found better heuristics to differentiate our and
  others building failures and redoable failures.

- Retrieve requires of binary rebuilt packages. This is preparation for future
  support of indirect build-time dependencies. It will process old done binary
  packages automatically.

v0.3.0
======

- Wait for build root ration after rebuilding current set of rebuildable
  packages. This allows to utilize whole Koji power with low local thread
  number.

- Fix logging at providesstore phase 

v0.2.1
======

- Fix undefined Fedore::Rebuild->last_fail()

- Recreate SRPM package if missing when getting build requires

- Close state log file when state finishes successfully

v0.2.0
======

- Fix build root identification when watching a koji for rotation.

- Fix child exit status decoding. You get exit code or signal name into log
  now.

- Die optionally in case a lot of consequent failures. Driven by
  `failurelimit' attribute. Default is 0 (i.e. do not die).

- Cache build requires and binary provides. You can run this script on v0.1.0
  directory tree, the cache will be generated from RPM packages automatically.

v0.1.0
======

- Introduce `loadthreads' attribute to tune number of threads distilling
  dependencies to supress local I/O load.
