diff --git a/.github_changelog_generator b/.github_changelog_generator
index c468433c..2b0b2fc4 100644
--- a/.github_changelog_generator
+++ b/.github_changelog_generator
@@ -1,7 +1,7 @@
unreleased=true
-future-release=3.0.0
+future-release=3.1.0
since-tag=2.2.5
exclude-tags=Continuous
-exclude_labels=duplicate,question,invalid,wontfix,rejected,infrastructure,technical task,packaging
+exclude_labels=duplicate,question,invalid,wontfix,rejected,infrastructure,technical task,packaging,news
issues-wo-labels=false
enhancement-labels=feature
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 17270434..21f42e14 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,49 @@
# Change Log
+## [3.1.0](https://github.com/ColinDuquesnoy/MellowPlayer/tree/3.1.0) (2017-10-21)
+[Full Changelog](https://github.com/ColinDuquesnoy/MellowPlayer/compare/3.0.0...3.1.0)
+
+**Implemented enhancements:**
+
+- Add ambiance theme for ubuntu [\#138](https://github.com/ColinDuquesnoy/MellowPlayer/issues/138)
+- Add support for ympd [\#118](https://github.com/ColinDuquesnoy/MellowPlayer/issues/118)
+- Add a dustbin icon where users can drag a service icon to disable the service [\#116](https://github.com/ColinDuquesnoy/MellowPlayer/issues/116)
+- Add ability to specify list of supported platforms for a plugin [\#115](https://github.com/ColinDuquesnoy/MellowPlayer/issues/115)
+- \[Feature request\] Zoom [\#114](https://github.com/ColinDuquesnoy/MellowPlayer/issues/114)
+- Integrate Catalan translation [\#111](https://github.com/ColinDuquesnoy/MellowPlayer/issues/111)
+- Integrate Spanish translation [\#110](https://github.com/ColinDuquesnoy/MellowPlayer/issues/110)
+- Add a function to change the user agent in the settings [\#102](https://github.com/ColinDuquesnoy/MellowPlayer/issues/102)
+- Add Radionomy [\#100](https://github.com/ColinDuquesnoy/MellowPlayer/issues/100)
+- Add JAMENDO MUSIC [\#83](https://github.com/ColinDuquesnoy/MellowPlayer/issues/83)
+- Add shortcut to open web developer tools [\#80](https://github.com/ColinDuquesnoy/MellowPlayer/issues/80)
+- MPRIS: Use favorite song info [\#79](https://github.com/ColinDuquesnoy/MellowPlayer/issues/79)
+- Add hearthis.at [\#75](https://github.com/ColinDuquesnoy/MellowPlayer/issues/75)
+- Add support for user scripts [\#69](https://github.com/ColinDuquesnoy/MellowPlayer/issues/69)
+
+**Fixed bugs:**
+
+- Drag & Drop to trash icon does not always work [\#136](https://github.com/ColinDuquesnoy/MellowPlayer/issues/136)
+- TuneIn integration broken [\#133](https://github.com/ColinDuquesnoy/MellowPlayer/issues/133)
+- Mixcloud integration plugin broken [\#108](https://github.com/ColinDuquesnoy/MellowPlayer/issues/108)
+
+**Closed issues:**
+
+- Deezer - playback switches to random songs [\#127](https://github.com/ColinDuquesnoy/MellowPlayer/issues/127)
+- mellowplayer.desktop does not pass desktop-file-validate [\#104](https://github.com/ColinDuquesnoy/MellowPlayer/issues/104)
+- Buttons not translatable [\#101](https://github.com/ColinDuquesnoy/MellowPlayer/issues/101)
+
+**Merged pull requests:**
+
+- Add favorites support to soundcloud plugin [\#134](https://github.com/ColinDuquesnoy/MellowPlayer/pull/134) ([Cogitri](https://github.com/Cogitri))
+- GPM: improve playback status detection [\#129](https://github.com/ColinDuquesnoy/MellowPlayer/pull/129) ([terinjokes](https://github.com/terinjokes))
+- Add Wynk Music plugin [\#125](https://github.com/ColinDuquesnoy/MellowPlayer/pull/125) ([shreyanshk](https://github.com/shreyanshk))
+- Update Readme.md [\#123](https://github.com/ColinDuquesnoy/MellowPlayer/pull/123) ([ZeroDot1](https://github.com/ZeroDot1))
+- README.md updated [\#122](https://github.com/ColinDuquesnoy/MellowPlayer/pull/122) ([ZeroDot1](https://github.com/ZeroDot1))
+- Anghami [\#120](https://github.com/ColinDuquesnoy/MellowPlayer/pull/120) ([mahmoudhossam](https://github.com/mahmoudhossam))
+- Add a Gitter chat badge to README.md [\#119](https://github.com/ColinDuquesnoy/MellowPlayer/pull/119) ([gitter-badger](https://github.com/gitter-badger))
+- Feature pocketcasts plugin [\#117](https://github.com/ColinDuquesnoy/MellowPlayer/pull/117) ([kolletzki](https://github.com/kolletzki))
+- Fix Buttons not translatable / archlinux-env-setup.sh [\#103](https://github.com/ColinDuquesnoy/MellowPlayer/pull/103) ([ZeroDot1](https://github.com/ZeroDot1))
+
## [3.0.0](https://github.com/ColinDuquesnoy/MellowPlayer/tree/3.0.0) (2017-08-13)
[Full Changelog](https://github.com/ColinDuquesnoy/MellowPlayer/compare/2.99.0...3.0.0)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4675f331..f5c86ed1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@ if (NOT BUILD_NUMBER)
endif()
-project(MellowPlayer VERSION 3.0.50.${BUILD_NUMBER})
+project(MellowPlayer VERSION 3.1.0.${BUILD_NUMBER})
set(CMAKE_VERBOSE_MAKEFILE FALSE)
# cache version in CMakeCache.txt, so that script can easily query current version
set(MELLOWPLAYER_VERSION "${MellowPlayer_VERSION}" CACHE STRING "")
diff --git a/README.md b/README.md
index 06133510..bd669a80 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,10 @@ notifications and more).
- [Anghami](https://www.anghami.com/)
- [Pocket Casts](https://play.pocketcasts.com/)
- [HearThisAt](https://hearthis.at/)
+- [Jamendo](https://www.jamendo.com/start)
+- [Radionomy](https://www.radionomy.com/)
+- [Wynk](https://www.wynk.in/music)
+- [ympd](https://github.com/notandy/ympd)
# User Scripts:
With MellowPlayer 3.1 you have the possibility to use user scripts.
diff --git a/scripts/promotion/promotions.py b/scripts/promotion/promotions.py
index 4dcbb3e4..c83bfae7 100644
--- a/scripts/promotion/promotions.py
+++ b/scripts/promotion/promotions.py
@@ -2,7 +2,6 @@
import re
import subprocess
from enum import Enum
-from github3 import login
class Type(Enum):
@@ -24,42 +23,6 @@ def __eq__(self, other):
return self.major == other.major and self.minor == other.minor and self.patch == other.patch
-class Git:
- @staticmethod
- def get_branch():
- return subprocess.check_output(['git', 'branch']).decode().replace('* ', '').splitlines()[0]
-
- @staticmethod
- def commit_and_push():
- subprocess.check_output(["git", "commit", "-a", "-m", "Prepare release"])
- Git.push()
-
- @staticmethod
- def create_tag(tag_name):
- subprocess.check_output(["git", "tag", "-a", tag_name, '-m', tag_name])
- subprocess.check_output(["git", "push", 'origin', tag_name])
-
- @staticmethod
- def checkout(branch):
- subprocess.check_output(['git', 'checkout', branch])
-
- @staticmethod
- def merge(branch):
- subprocess.check_output(['git', 'merge', branch])
-
- @staticmethod
- def push():
- subprocess.check_output(["git", "push"])
-
-
-class Github:
- @staticmethod
- def create_release(name, description, prerelease):
- gh = login(username='ColinDuquesnoy', token=os.environ['CHANGELOG_GITHUB_TOKEN'])
- repo = gh.repository('ColinDuquesnoy', 'MellowPlayer')
- repo.create_release(name, name=name, body=description, prerelease=prerelease)
-
-
class Promotion:
def __init__(self, promotion_type, required_branch, prerelease=False):
self.prerelease = prerelease
@@ -70,9 +33,6 @@ def __init__(self, promotion_type, required_branch, prerelease=False):
def execute(self):
self.new_version = self.read_cmake_version()
- git_branch = Git.get_branch()
- if git_branch != self.required_branch:
- raise RuntimeError("Cannot perform promotion on %s branch" % git_branch)
self.new_version = self.bump_version(self.initial_version)
print('Promoting v%s to v%s' % (self.initial_version, self.new_version))
self.write_cmake_version(self.new_version)
@@ -83,38 +43,6 @@ def execute(self):
input("check cmake changes and updated changelog and press ENTER if everything is OK")
- Git.commit_and_push()
-
- if self.required_branch == "develop" and not self.prerelease:
- # merge develop into master
- Git.checkout("master")
- Git.merge("develop")
-
- Git.create_tag(str(self.new_version))
- Github.create_release(str(self.new_version), self.get_latest_changelog_entry(), prerelease=self.prerelease)
- self.update_website()
-
- Git.checkout("develop")
- if self.required_branch == 'master':
- # switch back to develop and merge master into develop
- Git.merge("master")
-
- def get_latest_changelog_entry(self):
- with open('CHANGELOG.md') as f:
- lines = f.read().splitlines()
-
- record = False
- recorded_lines = []
- for l in lines:
- if l.strip().startswith('##'):
- record = not record
- if record is False:
- break
- else:
- if record:
- recorded_lines.append(l)
- return '\n'.join(recorded_lines)
-
def update_change_log(self):
print('Updating Changelog...')
changelog_generator_cfg = '.github_changelog_generator'
@@ -130,32 +58,6 @@ def update_change_log(self):
f.write('\n'.join(updated_lines))
subprocess.check_call(['github_changelog_generator'])
- def update_website(self):
- branch = Git.get_branch()
- Git.checkout('gh-pages')
- with open('index.html') as f:
- lines = f.read().splitlines()
- app_image = ' '
- dmg = ' '
- windows_installer = ' '
- updated_lines = []
- for l in lines:
- if l.strip().startswith('