Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add recuperation of the current version from git if available. #731

Merged
merged 3 commits into from
Jun 30, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion index.php
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@
echo $inactiveBridges;
?>
<section class="footer">
<a href="https://github.com/RSS-Bridge/rss-bridge">RSS-Bridge 2018-06-10 ~ Public Domain</a><br />
<a href="https://github.com/RSS-Bridge/rss-bridge">RSS-Bridge ~ Public Domain</a><br />
<p class="version"> <?= Configuration::getVersion() ?> </p>
<?= $activeFoundBridgeCount; ?>/<?= count($bridgeList) ?> active bridges. <br />
<?php
if($activeFoundBridgeCount !== count($bridgeList)) {
Expand Down
14 changes: 14 additions & 0 deletions lib/Configuration.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
class Configuration {

public static $VERSION = "2018-06-10";

public static $config = null;

public static function verifyInstallation() {
Expand Down Expand Up @@ -102,4 +104,16 @@ public static function getConfig($category, $key) {

}

public static function getVersion() {

$revisionHashFile = '.git/refs/heads/master';

if(file_exists($revisionHashFile)) {

return 'git.' . trim(file_get_contents($revisionHashFile));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe include $VERSION as well?

return Configuration::$VERSION . ' (' . trim(file_get_contents($revisionHashFile)) . ')';

=> 2018-06-10 (937ea492716b9251211a2a0f73f3afd1ac871505)


.git/refs/heads/master always returns the latest commit in master! It wouldn't show branches. Here is an alternative implementation for consideration:

Notice: It uses exec to extract the latest commit hash in short form and reads the hash file only if that operation fails. This is purely cosmetic.

	public static function getVersion() {
		$headFile = '.git/HEAD';

		$version = Configuration::$VERSION;

		exec('git log --pretty="%h" -n1 HEAD', $output, $return);

		if(!$return) {
			$version .= ' (' . trim($output[0]) . ')';
		} elseif(file_exists($headFile)) {
			$head = trim(explode(':', file_get_contents($headFile))[1]);
			$revisionHashFile = '.git/' . $head;
			if(file_exists($revisionHashFile)) {
				$version .= ' (' . trim(file_get_contents($revisionHashFile)) . ')';
			}
		}

		return $version;
	}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason I decided to read the .git/refs/heads/master is for simplicity: I know it only shows the master revision, but if we have a bug report, we only consider it for the version we maitain, that is master. Moreover, a lot of shared hosts do not allow exec, which is why I decided to go for simplicity.

However I believe that we could include the branch name in the version string.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including the branch name sounds like a much simpler alternative.

Using exec was just for cosmetic reasons (the full hash is quite long), as you can see it'll fall back to reading files if exec isn't working. But I'm not fixated on making this more complex than need be, so just leave it out 😄


} else return Configuration::$VERSION;

}

}
5 changes: 4 additions & 1 deletion lib/Exceptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,10 @@ function buildBridgeException($e, $bridge){
$body = 'Error message: `'
. $e->getMessage()
. "`\nQuery string: `"
. $_SERVER['QUERY_STRING'] . '`';
. $_SERVER['QUERY_STRING']
. "`\nVersion: `"
. Configuration::getVersion()
. '`';

$link = buildGitHubIssueQuery($title, $body, 'bug report', $bridge->getMaintainer());

Expand Down
5 changes: 5 additions & 0 deletions static/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ section.footer:hover {

}

section.footer .version {

font-size: 80%;

}

section > h2 {

Expand Down