First, let me just say you guys have put together an excellent
project. Once one gets everything up and running, it truly is a
fantastic piece of software and I am really thankful that you decided
to share it with the community.
However I did hit some major snags. More likely than not, they are
due to my own ignorance, but I figured I would just share them with
you anyway in case you found the information useful.
Major Snags:
- The Ruby stompserver project appears to be incompatible with
Gitorious, at least when run under Ruby 1.9. It crashes with the
following message:
err: Invalid stompframe (missing null term) /var/lib/gems/1.9.1/gems/
stompserver-0.9.9/lib/stomp_server/stomp_frame.rb:40:in `parse_body'
Another person seems to have encountered this issue and got around it
by running stompserver under Ruby 1.8.
http://groups.google.com/group/gitorious/browse_thread/thread/25137900c4b19e3a
- Paperclip processor crashes when attempting to add a new ssh key.
For some reason, I had to modify paperclip slightly in the vendor
directory to prevent a specific value from being passed as null to
Tempfile.
diff --git a/vendor/plugins/paperclip/lib/paperclip/processor.rb b/
vendor/plugins/paperclip/lib/paperclip/processor.rb
index 9082bfd..d72a5b4 100644
--- a/vendor/plugins/paperclip/lib/paperclip/processor.rb
+++ b/vendor/plugins/paperclip/lib/paperclip/processor.rb
@@ -42,7 +42,7 @@ module Paperclip
# Replaces Tempfile's +make_tmpname+ with one that honors file
extensions.
def make_tmpname(basename, n)
extension = File.extname(basename)
- sprintf("%s,%d,%d%s", File.basename(basename, extension), $$,
n, extension)
+ sprintf("%s,%d,%d%s", File.basename(basename, extension), $$, n
|| 1, extension)
end
end
end
This happened prior to me figuring out all the issues with messaging,
so this may be unnecessary.
- ActiveMQ, at least of version 5.4.2, does not support Stomp
messaging out of the box. The following needs to be added to "/conf/
activemq.xml" in order for it to function properly with Gitorious.
<transportConnectors>
...
<transportConnector name="stomp" uri="stomp://localhost:61613"/>
</transportConnectors>
- If your poller is inactive, Gitorious at some points appears to
simply hang, like when one tries to create a new repository.
There are two ways you can end up receiving this error. One is if you
don't have your poller running, in which case you won't see a new
repository being created. If you do have your poller running and see
a repository being created, then most likely you have the poller
running under the wrong environment.
- I can push to a git repository with the git-daemon active, but I
have to use the fully-qualified hash to push to the git repository.
If the user is running Gitorious as themselves (my use case for this
is I wanted to set up a demo to help convince my company's sys-admin
to adopt it) the fact that your ~/.ssh/authorized_keys is modified is
not made obvious in the documentation. Furthermore, this entry must
come before your standard ssh key. Unfortunately, that means that
keyless ssh entry will fail when the order is changed as it will
assume that I'm trying to execute the gitorious script without a ssh
command and fail, but I can accept this as running the daemon as
myself is a poor use case.
- Even if authorized_keys is setup properly, if gitorious_client_host
has to be set properly or the gitorious script will fail with a
"temporary" error.
I left the gitorious_client_host setting to localhost as I figured
that would be guaranteed to work, but I instead had to set it to the
actual DNS name of the server I was using in order to get things to
function properly. However running the git-daemon on something other
than localhost would cause it not to accept commands from the
gitorious script.
- Git hooks will fail if required gems (like stomp) are not installed
for the system.
For this I tried setting up RVM to execute automatically if using a
non-interactive shell (I use zsh, so I basically setup rvm's
initialization in .zshenv) and sadly that didn't seem to fix the
issue. It makes all of the gemspecs output on my screen stating that
they are all invalid for some reason. I haven't been able to figure
out a way around this one yet, but it doesn't seem to break anything
major.
Looking around at the form posts after the fact, it seems like I
essentially hit every major snag that people have encountered before.
I think better error handling and/or documentation of these possible
snags in the README file may help the situation significantly. I'd be
happy to help create a patch for these issues if you just let me know
which method of addressing them you prefer.