/**
     * Loads the real package.
     *
     * @param LazyPackageInterface $package
     *
     * @return CompletePackageInterface|false
     */
    protected function loadRealPackage(LazyPackageInterface $package)
    {
        $realPackage = false;

        try {
            $data = $this->driver->getComposerInformation($this->identifier);
            $valid = is_array($data);
            $data = $this->preProcess($this->driver, $this->validateData($data), $this->identifier);

            if ($this->verbose) {
                $this->io->write('Importing ' . ($valid ? '' : 'empty ') . $this->type . ' '.$data['version'].' ('.$data['version_normalized'].')');
            }

            /* @var CompletePackageInterface $realPackage */
            $realPackage = $this->loader->load($data);
        } catch (\Exception $e) {
            if ($this->verbose) {
                $filename = $this->assetType->getFilename();
                $this->io->write('<'.$this->getIoTag().'>Skipped ' . $this->type . ' '.$package->getPrettyVersion().', '.($e instanceof TransportException ? 'no ' . $filename . ' file was found' : $e->getMessage()).'</'.$this->getIoTag().'>');
            }
        }
        $this->driver->cleanup();

        return $realPackage;
    }
 /**
  * Initializes the root identifier.
  *
  * @param VcsDriverInterface $driver
  */
 protected function initRootIdentifier(VcsDriverInterface $driver)
 {
     try {
         if ($driver->hasComposerFile($driver->getRootIdentifier())) {
             $data = $driver->getComposerInformation($driver->getRootIdentifier());
             $sc = new SemverConverter();
             $this->rootPackageVersion = !empty($data['version']) ? $sc->convertVersion(ltrim($data['version'], '^~')) : null;
             $this->rootData = $data;
             if (null === $this->packageName) {
                 $this->packageName = !empty($data['name']) ? $data['name'] : null;
             }
         }
     } catch (\Exception $e) {
         if ($this->verbose) {
             $this->io->write('<error>Skipped parsing ' . $driver->getRootIdentifier() . ', ' . $e->getMessage() . '</error>');
         }
     }
 }