function getReleaseConfig(PluginRelease $release, PluginProject $pluginProject) { //FIXME need way better guessing of title (manifest id and dir name) $title = elgg_get_friendly_title($project->title); $owner = $release->getOwnerEntity(); if (!($name = guessName($release, $extension))) { return false; } $versions = $release->elgg_version; if (!is_array($versions) && $versions) { $versions = array($versions); } // var_dump($versions); //filter out invalid values like '1' for very old plugins foreach ($versions as $key => $version) { if (strlen($version) >= 3) { $versions[$key] = '~' . $version; } else { unset($versions[$key]); } } // var_dump('FILTERED', $versions); $requires = array("composer/installers" => ">=1.0.8"); if (count($versions)) { $requires['elgg/elgg'] = implode('|', $versions); } $arr = array('type' => 'package', 'package' => array('name' => $owner->username . '/' . $name, 'homepage' => $pluginProject->homepage, 'version' => $release->version, "type" => "elgg-plugin", "description" => $pluginProject->summary, "dist" => array("url" => elgg_normalize_url("plugins/download/" . $release->guid), "type" => $extension), 'authors' => array(array('name' => $owner->name, 'homepage' => $owner->getURL(), "role" => "Maintainer")), "require" => $requires)); return $arr; }