anaynayak / buildnotify Goto Github PK
View Code? Open in Web Editor NEWA system tray based build status notification app for cctray.xml feeds.
Home Page: https://anaynayak.github.io/buildnotify/
License: Other
A system tray based build status notification app for cctray.xml feeds.
Home Page: https://anaynayak.github.io/buildnotify/
License: Other
Originally reported by: Michael Grosser (Bitbucket: grosser, GitHub: grosser)
I installed via apt, then ran buildnotifyapplet.py
Then the process hangs but no panel icon is displayed
/usr/lib/pymodules/python2.7/gtk-2.0/gtk/init.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
set_interactive(1)
Originally reported by: Anay Nayak (Bitbucket: Anay, GitHub: Anay)
With Ubuntu 14.04 the intent is to have only Python 3 on the desktop CD images.
Incorporate changes and test application in Python 3.3 and 2.7. This should also provide an opportunity to refactor most of the code and write more tests.
Sometimes (usually after suspending and then waking my computer), BuildNotify's menu becomes so small that it's nearly invisible. This makes it impossible to quit BuildNotify by normal means (no "Exit" menu item). It has to be killed from the command line.
See https://i.imgur.com/m9PesEv.png
That small white stripe is the menu.
Originally reported by: Anonymous
The "Add server" dialog is resizable, but all the elements are fixed size/location. This makes it awkward to handle servers with lots of projects. It would be nicer if resizing the dialog would resize the list of projects. It's annoying to have to scroll a 400 x 300 list on a 27-inch screen.
Also, resizing the dialog down looks silly and the buttons become invisible and unclickable.
Not being a keyring user (i3wm) and never having used python-keyring, this requirement was a bit troublesome for me. It seems that the keyring usage should be optional, only when a username and password have actually been used.
Most of the CI endpoints for open source projects can be read without authentication.
Hi,
I've just installed the program in ubuntu 18 using apt-get. I seem to have version 0.3.5-1
(from apt show buildnotify)
I get the following messages. It then stays running but nothing happens:
Gtk-Message: 09:26:11.273: Failed to load module "canberra-gtk-module"
No systemtrayicon available
I was expecting something to appear in the gnome system tray.
Could you help?
Cheers
Jonny
Originally reported by: Anonymous
I tried installing on both Ubuntu 12.04 and 13.10 using the instructions on the wiki, but was getting this error: "ImportError: No module named generated.preferences_ui".
Cloning the repo, and modifying setup.py to include 'buildnotifylib.generated' seems to have fixed this.
Here's the full stack trace:
$ /usr/bin/buildnotifyapplet.py
Traceback (most recent call last):
File "/usr/bin/buildnotifyapplet.py", line 2, in
import buildnotifylib
File "/usr/local/lib/python2.7/dist-packages/BuildNotify-0.3.4-py2.7.egg/buildnotifylib/init.py", line 1, in
from buildnotify import BuildNotify
File "/usr/local/lib/python2.7/dist-packages/BuildNotify-0.3.4-py2.7.egg/buildnotifylib/buildnotify.py", line 3, in
from app_ui import AppUi
File "/usr/local/lib/python2.7/dist-packages/BuildNotify-0.3.4-py2.7.egg/buildnotifylib/app_ui.py", line 3, in
from app_menu import AppMenu
File "/usr/local/lib/python2.7/dist-packages/BuildNotify-0.3.4-py2.7.egg/buildnotifylib/app_menu.py", line 7, in
from preferences import PreferencesDialog
File "/usr/local/lib/python2.7/dist-packages/BuildNotify-0.3.4-py2.7.egg/buildnotifylib/preferences.py", line 3, in
from buildnotifylib.generated.preferences_ui import Ui_Preferences
ImportError: No module named generated.preferences_ui
Our CI server (Hudson 3.2.2) returns a cc.xml that looks like this:
<Projects><Project webUrl="10.69.194.15:8080/job/delete_002/" name="delete_002" lastBuildLabel="6" lastBuildTime="2016-11-24T12:39:19Z" lastBuildStatus="Unknown" activity="Sleeping"/></Projects>
This may be the cause why clicking on any job in the drop-down menu results in an error popup:
Unble to detect the URI-scheme of "10.69.194.15:8080/job/delete_002/"
#31 was meant to represent this, but I wasn't clear enough. It's not about the missing scheme in the server URL. It's about the missing scheme in the URLs of individual jobs.
As far as I can see, buildnotify does the right thing in project.py, calling urlparse(props['url'], 'http')
. Still, clicking on any job on the drop-down menu fails with the "Unable to detect URI-scheme" error.
I tried to debug buildnotifyapplet.py but pudb crashed :(
Every time my machine goes through a susped/resume, BuildNotify dies:
$ tail -15 /tmp/buildnotify.log
processed http://hudson.internal:8080/cc.xml
checking http://hudson.internal:8080/cc.xml
<urlopen error [Errno -3] Temporary failure in name resolution>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/buildnotifylib/buildnotify.py", line 45, in update_projects
self.app_notification.update_projects(integration_status)
File "/usr/local/lib/python2.7/dist-packages/buildnotifylib/app_notification.py", line 13, in update_projects
ProjectStatusNotification(self.config, self.integration_status, new_integration_status, self.notification).show_notifications()
File "/usr/local/lib/python2.7/dist-packages/buildnotifylib/project_status_notification.py", line 21, in show_notifications
self.timed_project_filter.filter(map(lambda server: server.url, self.current_integration_status.unavailable_servers())), "Connectivity issues")
File "/usr/local/lib/python2.7/dist-packages/buildnotifylib/project_status_notification.py", line 27, in show_notification_msg
self.notification.show_message(message, "\n".join(builds))
File "/usr/local/lib/python2.7/dist-packages/buildnotifylib/notifications.py", line 22, in show_message
self.widget.showMessage(title, text, QtGui.QSystemTrayIcon.Information, 3000)
AttributeError: 'module' object has no attribute 'QSystemTrayIcon'
Aborted (core dumped)
The same happens if I disconnect from the network.
If there's a "Temporary failure in name resolution", buildnotify should display the grey "connection problem" icon, not abort with a coredump.
Originally reported by: Anonymous
When using the option to display last build time in the dropdown, the times there are very off.
My CI server is a modified version of cc.rb (though nothing that messes with time, just added some security, and a few css changes).
My server is in UTC, I am in EST.
Changing the drop down in the server configuration dialog does nothing.
Originally reported by: Anonymous
We don't seem to have a cctray.xml and using the rssAll feed for Jenkins does not show any projects to select. The xml seems to parse correctly though,
Originally reported by: Anonymous
It would be nice buildnotify offered an option to accept invalid/self-signed certificates
Originally reported by: Mark Robinson (Bitbucket: MarkRobinson, GitHub: MarkRobinson)
My project list is absolutely massive but I don't care about most of them.
I would like to be to bulk enable/disable elements in the list.
ATM only basic auth is supported, but e.g. semaphoreci requires an auth token, thus requiring to store it in plaintext in buildnotify's config.
How is this supported by ccmenu et.al.?
If nothing else comes up, I'd suggest some support for string interpolation using e.g. %u
, or { user }
as placeholders for the username and %p
, or { password }
as placeholders for the password.
Also the URL parser should be fixed to support normal user:pw
syntax for basic auth, e.g. https://myuser:[email protected]:1234/path?query=val
. It seems to simply split on the first colon atm., treating this as port.
Once that is fixed, a { user }:{ password }@
prefix could become implicit when a username or password was given, thus preserving the current basic auth scheme.
Presence of { password }
in the URL would also signify that a (possibly empty) password is stored in the keyring (also see #51).
Originally reported by: Joe Merten (Bitbucket: Joe-Merten, GitHub: Unknown)
This seems to be because circleci.com don't provides a lastBuildTime
in their cc.xml
Originally reported by: Anonymous
Go Continuous Delivery (https://go.cd/) has the feed URL protected by basic authentication, and currently I have to add that information to the URL in the form of http://user:password@hostname:8153/.
That's not very nice, because now the debugging output to the console contains my password.
It would be nice if buildnotify offered a separate dialog for entering the basic auth credentials, and did not show the password unless when prompted for it.
Originally reported by: Saager Mhatre (Bitbucket: dexterous, GitHub: dexterous)
Tested on following configuration- Jenkins 1.409.1 on Ubuntu Lucid Lynx (10.04) & buildnotify on Maverick Meerkat (10.10). Installs from PPA without a hitch and runs pretty well. I have it set up as a Startup App and reports well. Although it freezes up sometime and I need to kill-restart it.
Using the cctray-xml-ccxml-plugin (https://github.com/jenkinsci/cctray-xml-plugin/blob/master/README.md#cctray-xml-ccxml-plugin) for Jenkins in conjunction with multi-branch jobs crashes the buildnotify while importing the entries the first time.
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/buildnotifylib/preferences.py", line 65, in configure_projects
File "build/bdist.linux-x86_64/egg/buildnotifylib/server_configuration_dialog.py", line 110, in open
File "build/bdist.linux-x86_64/egg/buildnotifylib/server_configuration_dialog.py", line 103, in get_server_config
UnicodeEncodeError: 'ascii' codec can't encode character u'\xbb' in position 17: ordinal not in range(128)
Aborted (core dumped)
The character in question is '»'.
With a fresh install of BuildNotify on my Arch system (from the AUR), the app crashes immediately on start with the following trace:
Traceback (most recent call last):
File "/bin/buildnotifyapplet.py", line 2, in <module>
import buildnotifylib
File "/usr/lib/python2.7/site-packages/buildnotifylib/__init__.py", line 1, in <module>
from buildnotifylib.buildnotify import BuildNotify # NOQA
File "/usr/lib/python2.7/site-packages/buildnotifylib/buildnotify.py", line 6, in <module>
from buildnotifylib.app_ui import AppUi
File "/usr/lib/python2.7/site-packages/buildnotifylib/app_ui.py", line 6, in <module>
from buildnotifylib.app_menu import AppMenu
File "/usr/lib/python2.7/site-packages/buildnotifylib/app_menu.py", line 8, in <module>
from buildnotifylib.preferences import PreferencesDialog
File "/usr/lib/python2.7/site-packages/buildnotifylib/preferences.py", line 5, in <module>
from buildnotifylib.server_configuration_dialog import ServerConfigurationDialog
File "/usr/lib/python2.7/site-packages/buildnotifylib/server_configuration_dialog.py", line 6, in <module>
from buildnotifylib.config import Config
File "/usr/lib/python2.7/site-packages/buildnotifylib/config.py", line 3, in <module>
from buildnotifylib.core.keystore import Keystore
File "/usr/lib/python2.7/site-packages/buildnotifylib/core/keystore.py", line 1, in <module>
import keyring
ImportError: No module named keyring
Originally reported by: Anonymous
We have a large number of builds, so ordering by last modified does not suit our use case very well. Either a way to specify an order or an option to sort alphabetically would be an improvement.
$ python -V
Python 2.7.14
$ sudo -H pip install buildnotify --upgrade --no-clean
[sudo] password:
Collecting buildnotify
Downloading BuildNotify-1.0.1.tar.gz
Building wheels for collected packages: buildnotify
Running setup.py bdist_wheel for buildnotify ... error
Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9KxW3h/buildnotify/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpZ94Amppip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/project_status_notification.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_menu.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/build_icons.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/preferences.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/server_configuration_dialog.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/serverconfig.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/config.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/notifications.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/version.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/buildnotify.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_notification.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib
creating build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/project.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/continous_integration_server.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/timed_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/repeat_timed_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/keystore.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/filtered_continuous_integration_server.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/background_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/http_connection.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/distance_of_time.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/projects.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/response.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
creating build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/preferences_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/icons_rc.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/server_configuration_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
running build_scripts
creating build/scripts-2.7
copying and adjusting buildnotifyapplet.py -> build/scripts-2.7
changing mode of build/scripts-2.7/buildnotifyapplet.py from 644 to 755
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/project_status_notification.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
creating build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/project.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/continous_integration_server.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/timed_event.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/repeat_timed_event.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/keystore.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/filtered_continuous_integration_server.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/background_event.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/http_connection.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/distance_of_time.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/projects.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/response.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/__init__.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_menu.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
creating build/bdist.linux-x86_64/wheel/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/preferences_ui.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/icons_rc.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/__init__.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/server_configuration_ui.py -> build/bdist.linux-x86_64/wheel/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/build_icons.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/preferences.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/server_configuration_dialog.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/serverconfig.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/config.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/notifications.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_ui.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/version.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/buildnotify.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_notification.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/__init__.py -> build/bdist.linux-x86_64/wheel/buildnotifylib
running install_data
creating build/bdist.linux-x86_64/wheel/BuildNotify-1.0.1.data
creating build/bdist.linux-x86_64/wheel/BuildNotify-1.0.1.data/data
creating build/bdist.linux-x86_64/wheel/BuildNotify-1.0.1.data/data/share
creating build/bdist.linux-x86_64/wheel/BuildNotify-1.0.1.data/data/share/applications
error: can't copy 'buildnotify.desktop': doesn't exist or not a regular file
----------------------------------------
Failed building wheel for buildnotify
Running setup.py clean for buildnotify
Failed to build buildnotify
Installing collected packages: buildnotify
Found existing installation: BuildNotify 1.0.0
Uninstalling BuildNotify-1.0.0:
Successfully uninstalled BuildNotify-1.0.0
Running setup.py install for buildnotify ... error
Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9KxW3h/buildnotify/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ypEgr8-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/project_status_notification.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_menu.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/build_icons.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/preferences.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/server_configuration_dialog.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/serverconfig.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/config.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/notifications.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/version.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/buildnotify.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/app_notification.py -> build/lib.linux-x86_64-2.7/buildnotifylib
copying buildnotifylib/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib
creating build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/project.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/continous_integration_server.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/timed_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/repeat_timed_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/keystore.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/filtered_continuous_integration_server.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/background_event.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/http_connection.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/distance_of_time.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/projects.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/response.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
copying buildnotifylib/core/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib/core
creating build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/preferences_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/icons_rc.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/__init__.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
copying buildnotifylib/generated/server_configuration_ui.py -> build/lib.linux-x86_64-2.7/buildnotifylib/generated
running build_scripts
creating build/scripts-2.7
copying and adjusting buildnotifyapplet.py -> build/scripts-2.7
changing mode of build/scripts-2.7/buildnotifyapplet.py from 644 to 755
running install_lib
copying build/lib.linux-x86_64-2.7/buildnotifylib/project_status_notification.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/project.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/continous_integration_server.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/timed_event.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/repeat_timed_event.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/keystore.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/filtered_continuous_integration_server.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/background_event.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/http_connection.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/distance_of_time.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/projects.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/response.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/core/__init__.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/core
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_menu.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
creating /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/preferences_ui.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/icons_rc.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/__init__.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/generated/server_configuration_ui.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated
copying build/lib.linux-x86_64-2.7/buildnotifylib/build_icons.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/preferences.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/server_configuration_dialog.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/serverconfig.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/config.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/notifications.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_ui.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/version.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/buildnotify.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/app_notification.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
copying build/lib.linux-x86_64-2.7/buildnotifylib/__init__.py -> /usr/local/lib/python2.7/dist-packages/buildnotifylib
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/project_status_notification.py to project_status_notification.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/project.py to project.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/continous_integration_server.py to continous_integration_server.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/timed_event.py to timed_event.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/repeat_timed_event.py to repeat_timed_event.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/keystore.py to keystore.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/filtered_continuous_integration_server.py to filtered_continuous_integration_server.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/background_event.py to background_event.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/http_connection.py to http_connection.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/distance_of_time.py to distance_of_time.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/projects.py to projects.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/response.py to response.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/core/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/app_menu.py to app_menu.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated/preferences_ui.py to preferences_ui.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated/icons_rc.py to icons_rc.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/generated/server_configuration_ui.py to server_configuration_ui.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/build_icons.py to build_icons.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/preferences.py to preferences.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/server_configuration_dialog.py to server_configuration_dialog.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/serverconfig.py to serverconfig.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/config.py to config.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/notifications.py to notifications.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/app_ui.py to app_ui.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/version.py to version.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/buildnotify.py to buildnotify.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/app_notification.py to app_notification.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/buildnotifylib/__init__.py to __init__.pyc
running install_data
error: can't copy 'buildnotify.desktop': doesn't exist or not a regular file
----------------------------------------
Rolling back uninstall of BuildNotify
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9KxW3h/buildnotify/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ypEgr8-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-9KxW3h/buildnotify/
And indeed there's no such file:
$ sudo su
# cd /tmp/pip-build-9KxW3h/buildnotify
# ls -lR | grep desktop
#
At least semaphore CI only has a single cc.xml endpoint that lists build statuses for all branches (https://github.com/renderedtext/semaphore-docs-new/blob/a9a2f51eca9f624a8a8d00ba320b7a87c467d544/source/docs/cctry.md).
If you're only interested in master and stable, but not in pull requests, then it's possible to only select those.
Unfortunately at the time new pull requests are opened, they are listed by the endpoint and buildnotify automatically selects/subscribes to those.
I'd suggest that the All state should be saved separately (if not already done) and be used to decide whether or not to auto-subscribe to new branches.
Originally reported by: Anonymous
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/init.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
set_interactive(1)
and nothing happen !!!
As the title says. Apparently this issue is not unique to this little widget. It's a common enough problem with app indicators that there's an issue for it already, with an extensive comment thread: ubuntu/gnome-shell-extension-appindicator#75
From what I've gleaned in that thread, it should be possible to update buildnotify to use newer gnome APIs that detect when session has been restarted or when it's been unlocked such that you can re-populate the top bar with the status icon.
For now, you can work around this issue by just restarting gnome-shell while logged in. But this is very disruptive since doing so can either close certain windows or cause them to move around, requiring readjustment.
Originally reported by: Joe Merten (Bitbucket: Joe-Merten, GitHub: Unknown)
Unfortunately, some build servers are delivering sometimes buggee cc.xml
For this example, circleci has a bug were the lastBuildTime
sometimes is set to an empty string.
Executing this bash oneliner:
while true; do wget "https://circleci.com/gh/Joe-Merten/Mpjoe.cc.xml" -o /dev/null -O -; echo; done
gives:
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="2015-02-13T10:12:43.635Z" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="2015-02-13T10:12:43.635Z" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="2015-02-13T10:12:43.635Z" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="2015-02-13T10:12:43.635Z" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
<?xml version="1.0" encoding="UTF-8"?><Projects><Project lastBuildTime="2015-02-13T10:12:43.635Z" lastBuildLabel="174" lastBuildStatus="Success" name="Joe-Merten/Mpjoe" activity="Sleeping" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
The toggle of lastBuildTime
between »correctly set« versus »empty string« causes buildnotify to trigger a Yet another successful build
notification even if the lastBuildLabel
has not changed.
Originally reported by: Anonymous
Terminal log:
/usr/lib/python2.7/site-packages/gtk-2.0/gtk/init.py:122: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
set_interactive(1)
checking http:///guestAuth/app/cctray-standalone/cctray/projects.xml
processed http:///guestAuth/app/cctray-standalone/cctray/projects.xml
Traceback (most recent call last):
File "/tmp/buildnotify/buildnotifylib/buildnotify.py", line 47, in update_projects
self.app_ui.update_projects(integration_status)
File "/tmp/buildnotify/buildnotifylib/app_ui.py", line 16, in update_projects
self.tray.setIcon(self.build_icons.for_aggregate_status(integration_status.get_build_status(), count))
File "/tmp/buildnotify/buildnotifylib/projects.py", line 43, in get_build_status
map = self.to_map()
File "/tmp/buildnotify/buildnotifylib/projects.py", line 62, in to_map
status[project.get_build_status()].append(project)
KeyError: u'Success.Has pending changes'
Seems to be a case of Teamcity using non "standard" activity status http://svn.jetbrains.org/teamcity/plugins/rest-api/trunk/contrib/cctray-extension/server/src/jetbrains/buildServer/server/restcontrib/cctray/model/Project.java
Originally reported by: Anonymous
I updated to the latest Ubuntu distro (Lucid) a few weeks ago, and since then my build notify applet has stopped having icons next to the builds in the drop-down menu. The actual applet's icon (in the tray) continues to show normally; it's only when you right-click on that icon, and get the list of builds, that the icons are missing.
Oh, and the only output at the command line that might matter is:
Xlib: extension "RANDR" missing on display ":0.0".
/usr/lib/pymodules/python2.6/gtk-2.0/gtk/init.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
set_interactive(1)
Any thoughts?
Not sure if this should be reported here, but if I install this in Ubuntu (18.04) the module canberra-gtk-module is not listed as a dependency, so it gives warnings on startup.
Failed to load module "canberra-gtk-module
No systemtrayicon available
Originally reported by: Stephan Sokolow (Bitbucket: ssokolow, GitHub: ssokolow)
My notification tray follows an aesthetic where everything is monochrome unless it wants attention, which means that BuildNotify keeps catching my eye because I've trained myself to see any color (green included) as an indication that it needs attention.
At present, I'm in the absurd situation of having to build from hg tip just to change a few icons. Could you please provide a mechanism to customize them?
(And, to add insult to injury, just changing the colors in inkscape threw off some other bit of metadata that resulted in the rendered tray icon being a corner of a rounded rectangle rather than the whole rectangle.)
Originally reported by: Anonymous
Hudson 3.2.2 writes cc.xml like this:
#!xml
<Project webUrl="10.10.10.10:8080/job/delete_002/" name="delete_002" />
Clicking on any entry on the tray menu results only in an error popup:
Unable to detect uri-scheme of "10.10.10.10:8080/job/delete_002/"
It would be nice if buildnotify could recognize if the scheme was omitted, or it would punt and assume HTTP.
The buildnotify icon stopped displaying red or green, and displays some sort of "unavailable" icon, as can be seen here. The drop-down menu and the notifications continue to function.
In the Preferences dialog, the Servers tab is fixed size even though the dialog itself is resizable. It would be nice if the list of monitored servers resized itself to fill the dialog.
This is less important than #30 (thanks for fixing that), because it's unlikely that there will be more monitored servers than would fit in the dialog. But this looks ugly.
Additionally, the OK button (and the other buttons in the Servers tab) can become invisible if the Preferences is resized to be more narrow than its original size. Perhaps resizing down should be forbidden.
I'm using Drone CI for my personal development, which uses a Bearer token associated to the user account to authenticate and access the CCMenu entrypoint:
curl --request GET \
--url https://example.com/api/badges/Me/Project/cc.xml \
--header 'authorization: Bearer aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789'
From a point of view of security, using a Bearer token is not a bad idea. Is it possible to add support for Bearer tokens instead of the classic user/password?
Originally reported by: Anay Nayak (Bitbucket: Anay, GitHub: Anay)
Given a user needs to monitor a secure CruiseControl instance using BuildNotify
When the user provides basic authentication information in the cctray url (http://user:password@host:port/dashboard/cctray.xml),
Then BuildNotify should be able to access and monitor the CruiseControl instance.
Originally reported by: benjaminoakes (Bitbucket: benjaminoakes, GitHub: benjaminoakes)
I've followed the steps at https://bitbucket.org/Anay/buildnotify/wiki/Installation, but they didn't work. When I updated, I got:
W: Failed to fetch http://ppa.launchpad.net/anay/ppa/ubuntu/dists/precise/main/source/Sources 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/anay/ppa/ubuntu/dists/precise/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Would it be possible to get a build for Precise? If you want some help, let me know. :)
Originally reported by: Brad Buchanan (Bitbucket: bradley_c_buchanan, GitHub: Unknown)
Some of my cruise control feeds have the same embedded project name (for example, when subscribing to Travis-CI feeds for different branches). If would be really nice if I could override the project names (or maybe add a supplemental label) from within buildnotify so that I could tell them apart in the dropdown menu.
Originally reported by: Jereme Claussen (Bitbucket: jereme, GitHub: jereme)
On Ubuntu 10.04 the images appear to be missing from the build list in the tray menu. I have attached a screenshot. This is 32-bit installed via deb. If I run the app from console I do not see any warnings.
Other features seem to work fine.
Originally reported by: Joe Merten (Bitbucket: Joe-Merten, GitHub: Unknown)
Hey Anay,
could you tell me what the Server Timezone
configuration field is used for?
ccmenu
on mac or cctray
on windowslastBuildTime
including time zone (UTC for this 4 servers, see below)Server Timezone
to something else than UTC
, then the … hours ago
in the buildnotify's
popup shows wrong informationServer Timezone
field is defaulted to US/Central
; so I got wrong values until I set this to the correct value (IMHO, the user should not be interested about the buildserver's timezone)Using this tiny bash script, I got this responses from the above mentioned 4 ci servers:
========== https://snap-ci.com/Joe-Merten/Mpjoe/branch/master/cctray.xml ==========
<Projects><Project activity="Sleeping" lastBuildLabel="202" lastBuildStatus="Success" lastBuildTime="2015-02-14T13:25:53Z" name="Joe-Merten/Mpjoe (master) :: Build-and-Test" webUrl="https://snap-ci.com/Joe-Merten/Mpjoe/branch/master/logs/defaultPipeline/202/Build-and-Test"></Project></Projects>
========== https://api.travis-ci.org/repos/Joe-Merten/Mpjoe/cc.xml ==========
<Projects><Project activity="Sleeping" lastBuildLabel="155" lastBuildStatus="Success" lastBuildTime="2015-02-14T13:27:20.000+0000" name="Joe-Merten/Mpjoe" webUrl="https://travis-ci.org/Joe-Merten/Mpjoe"></Project></Projects>
========== https://circleci.com/gh/Joe-Merten/Mpjoe.cc.xml ==========
<Projects><Project activity="Sleeping" lastBuildLabel="175" lastBuildStatus="Success" lastBuildTime="2015-02-14T13:24:37.605Z" name="Joe-Merten/Mpjoe" webUrl="https://circleci.com/gh/Joe-Merten/Mpjoe/tree/master"></Project></Projects>
========== https://semaphoreapp.com/api/v1/projects/ed34e48b-8b31-4d78-a3cd-0730d586feaa/cc.xml?auth_token=hrY18iHUrtHtSyXC5Z3K&ccmenu=cc.xml ==========
<Projects><Project activity="Sleeping" lastBuildLabel="74" lastBuildStatus="Success" lastBuildTime="2015-02-14T13:23:20+00:00" name="Mpjoe - master" webUrl="https://semaphoreapp.com/joe-merten/mpjoe/branches/master/builds/74"></Project></Projects>
As I try to guess why you introduced the Server Timezone
configuration field, I think it's for the case that the ci server just deliveres it's local time without timezone in lastBuildTime
(what - for my opinion - might be a very uncommen behavior for a server). (Isn't it?)
At least, if the server provides lastBuildTime
with timezone included, it goes close to a bug if buildnotify
ignores the timezone from lastBuildTime
and replaces it with the configured Server Timezone
value.
Finally, I vote for changing Server Timezone
to be an optional config field and defaulting that to don't use
. Leaving the both questions open:
cc.xml
lastBuildTime
contains a timezone and also Server Timezone
is configured?
lastBuildTime
timezone be ignored / replaced by the Server Timezone
configuration valueServer Timezone
only be a fallback if the lastBuildTime
comes without timezoneServer Timezone
is not configured and lastBuildTime
comes without timezone (what seems very uncommon)?
(BTW: I'll be also agree if you decide to remove the Server Timezone
config field completely.)
Cheers, Joe
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.