← Back to team overview

kicad-developers team mailing list archive

Revisiting the Git decision (I come in peace! - with a patch)

 

Hi Guys,

I'm new to this project - though not to open source in general. I'm the
author of PulseView - a GUI for logic analyzers and oscilloscopes; part
of the sigrok project.

I've been trying to get started making contributions to your project,
building from source, fixing problems etc. and I feel like I've
encountered an unusually large number of hurdles to me a would-be casual
contributor.

I'll just mention one of them in this message, and that is the project's
usage of Bazaar. I understand some discussion has already taken place
about this, and the project authors wish to stay with Bazaar - and I
respect that decision. As a project author myself, I agree with the
principle that the authors can do whatever they damn well like.

But...

Here's the thing: I really think it's the wrong call.

Though I'm not at all happy to say it, Bazaar is dead. You can see that
clearly here: www.ohloh.net/p/bazaar - bazaar has not had a single
commit in 3 months. In that time Git has had literally hundreds. Or try
reading this blog post from a former developer:
http://stationary-traveller.eu/pages/bzr-a-retrospective.html

But Bazaar is still usable - it still works - right? Of course this is
true, one can still get work done with it, and will be able to for some
time to come. But at this point - in my opinion - it's a dead horse.

Rightly or wrongly, Bazaar has lost the mindshare battle, and now very
few developers have any familiarity with it at all. Whereas with a Git
project, I can grab the code, make a local branch, start hacking, make
some commits, tidy them up with rebase, shove them up on a github
account (that I already have ready to go), and notify the maintainer -
all without learning anything new. And I think this is true for many
other developers. But in kicad using bazaar there is significant
friction involved in every single one of the above steps for the newcomer.

Of course someone sufficiently motivated can overcome these things. But
I think there is a significant constituency of good contributors who
just have very little time to spare, but who have good things to offer,
and who you never hear from because they were discouraged by the friction.

For myself, overcoming this friction has definitely kept me away from
hacking on Kicad for some time.

So I'm asking what you think?

Of course I totally respect the project author's right to decide, and I
really respect this project - it is an amazing piece of work. Which is
why I really want to see it continue to grow and prosper.

I consider myself somewhat knowledgeable about Git, usage, migration
etc., so if I can help with some transition work, or clarify anything I
would be happy to help.

On the subject of Launchpad - it seems to me like a fine project system,
so if everyone is happing using it, I see no need to migrate away from
it - unless you want to. And there are several high quality Git hosting
platforms available, some have wikis and bug trackers etc. - if you ever
want to do an import to them at some point in the future.

Also, I've been doing a little work on scripts/libary-repos-install.sh,
see the attached patch, would someone be willing to review it/commit it?

Best Regards
Joel Holdsworth
=== modified file 'scripts/library-repos-install.sh'
--- scripts/library-repos-install.sh	2013-12-13 15:35:05 +0000
+++ scripts/library-repos-install.sh	2014-02-01 11:00:13 +0000
@@ -22,6 +22,9 @@
 #
 #    This will use the KiCad plugin against the *.pretty dirs in that base dir.
 
+set -e
+set -o pipefail
+
 
 # Set where the library repos will go, use a full path
 WORKING_TREES=~/kicad_sources
@@ -114,8 +117,18 @@
 }
 
 
+check_prerequisite()
+{
+    which $1 > /dev/null || (echo "Error: $1 is not installed"; exit 1)
+}
+
+
 checkout_or_update_libraries()
 {
+    check_prerequisite curl
+    check_prerequisite git
+    check_prerequisite sed
+
     if [ ! -d "$WORKING_TREES" ]; then
         sudo mkdir -p "$WORKING_TREES"
         echo " mark $WORKING_TREES as owned by me"

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups