protected function renderVersion(Version $version, $previous, $callback = null, $force = false) { if (null === $this->renderer) { throw new \LogicException('You must set a renderer.'); } $frozen = $version->isFrozen() && $this->renderer->isRendered($this) && $this->version === file_get_contents($this->getBuildDir() . '/PROJECT_VERSION'); if ($force && !$frozen) { $this->flushDir($this->getBuildDir()); } if ($previous && !$this->renderer->isRendered($this)) { $this->seedCache($previous, $this->getBuildDir()); } $diff = $this->renderer->render($this, $callback); if (null !== $callback) { call_user_func($callback, Message::RENDER_VERSION_FINISHED, $diff); } }