When users are having troubles with setting up the source integration plugin with their repositories, I’ve
found that there is a common set of pain points. I’m going to list them here, along with their respective
solutions, in hopes that users can more easily find the fixes in the future. This post will be updated as
new tips or advice arrive.
Linking changesets to issues requires commit messages to match the regular expressions specified in the
source integration configuration page. By default, phrases like “fixes #123” or “resolved #123, #123”
are supported, in present, past, singular, and plural forms.
Remote checkin must be enabled for use by post-commit hooks that don’t use an API key to authenticate,
and must list the IP addresses or blocks for any repository server that will push commit data to Mantis.
Remote imports must be enabled for use by cronjob-based scripts that will trigger Mantis to pull in new
changeset data for a given repository.
Your web server needs to have the SVN client binaries installed, and they must be accessible by the
account that your web server uses. Similarly, if the binaries are in a directory that’s not included in
your web server’s default path, you will need to specify the directory path in your source integration
configuration. On Linux, this is usually
/usr/local/bin — on Windows, something like
c:/path/to/subversion/bin is likely required.
For Windows servers, you may also need to enable the “Windows start” source integration option.
Make sure that the individual repository URL that you use for Mantis is the same URL you would use to
checkout the repository when using an SVN client.
When using repositories that require authentication, make sure the username and password you enter in
Mantis has read access to the entire repository.
If your repositories are hosted using HTTPS/SSL, and your server is using self-signed certificates, you
will need to have SVN version 1.6 or newer installed, and you will need to enable the “Trust all SSL
certs” option from source integration.
If your commit messages contain UTF-8 or other non-ASCII characters, or your system’s locale is not set
to “en_US”, then you may need to look at issue #93 and #130 on my bug tracker
for help modifying your server or SourceSVN plugin to use an appropriate encoding or locale.
If using Gitweb, versions newer than 1.6 may not work correctly, as the Gitweb plugin is scraping HTML
from the viewer, and changes to the HTML structure will break the Gitweb plugin. The version of Gitweb
in use on MantisForge is known to work with the plugin.
Using Github with private organization repositories is not yet supported. Private repositories for
normal user accounts, however, is supported. Enter the username and API key from any Github account
with access to the repository, and it should import correctly.
Using branches other than “master” will require you to modify the individual repository configuration in
Mantis to list any branches that you want to be imported.
This past Friday, I bought the new Samsung Galaxy Tab 10.1, and I absolutely love it.
The new Honeycomb interface looks amazing, and is quite an improvement over what’s available on my
Nexus S with Gingerbread. I love that the back, home, and task switching buttons are now rendered
on the screen instead of having hardware buttons, and combining those buttons into the notification
and status bar means you don’t even lose screen space compared to previous versions. The new
application switcher looks really nice, but does seem to have some odd behaviors, like not showing
the browser that I just switched away from, or seemingly choosing at random whether to display the
list from the top instead of from the bottom where you would expect.
There are a lot of applications that don’t yet take advantage of what’s offered by the Honeycomb
APIs, but still tend to work really well. It mainly depends on how well the author designed the
application to scale with the user’s screen size and density. An example of doing it wrong is the
official Facebook app; it’s still usable mind you, but it certainly looks dumb in process,
showing the main menu as a large grid of tiny icons with massive amounts of whitespace between
them. It would have gone a long way if they had simply scaled the images to fill the screen.
I’ve been meaning to write about some of my most cherished apps, and seeing them in new form has
given me an even better reason to get to it. Some of them really only work well on a phone, and
others have only gotten better than ever when given a tablet form factor to call their own. So
in no particular order, here are my favorite apps for Android. All prices are rounded up from
Market estimates at time of writing, and all screenshots are taken from my devices:
Continue reading »
Today marks an incremental release to the Source Integration plugin framework for MantisBT, now at version
0.16.3. This marks the introduction of support for using an API key to authorize inbound changeset data
from repository data sources. It is initially supported for integration with Github, where large array of
servers made it all but impossible to whitelist allowed IPs for remote commit data.
Future plans for the feature include support for configuring multiple API keys simultaneously, as well as
adding support for using the API keys from other data sources, such as SVN or Gitweb repositories.
Additionally, the old options for listing allowed IP addresses is now considered deprecated, and will likely
be removed entirely at the next major release.
To set up an API key in your MantisBT instance, visit the Repository Configuration page, where you will find
a new option labelled, strangely enough, “API Key”. You will need to generate your own key; the best way to
do this is on a machine with OpenSSL by running the following command to create a secure, random string of
hexadecimal digits, and then copying the resulting string to MantisBT:
$ openssl rand -hex 12
Once this is done, you can enable this on your Github projects by visiting the Service Hooks admin page for
your repositories, activating the MantisBT hook, and copying the same key string into the “Api Key” field
there. Any future pushes to your Github repo should send data to your MantisBT install using the API key to
authorize the data submission.