summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@gmail.com>2017-01-18 22:52:56 +0000
committerRichard Maw <richard.maw@gmail.com>2017-01-18 22:52:56 +0000
commitd2cf167d3409ff1aa5f6971479bb3bc8ef8cafee (patch)
tree6aecc5207de082a64eb84993ea828257aa766de4
downloadgitano-talk-d2cf167d3409ff1aa5f6971479bb3bc8ef8cafee.tar.bz2
Check in release talk
-rw-r--r--Makefile5
-rw-r--r--interfaces.dot10
-rw-r--r--logo-front.jpgbin0 -> 96665 bytes
-rw-r--r--masthead.jpgbin0 -> 706855 bytes
-rw-r--r--release.pin176
5 files changed, 191 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f6c33e9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+
+all: interfaces.png
+
+%.png: %.dot
+ dot -Tpng $< >$@
diff --git a/interfaces.dot b/interfaces.dot
new file mode 100644
index 0000000..63eda72
--- /dev/null
+++ b/interfaces.dot
@@ -0,0 +1,10 @@
+digraph interfaces {
+ gitano_auth -> git_repos
+ git_hook -> gitano_auth
+ ssh -> gitano_commands -> gitano_auth
+ ssh -> git_commands -> git_hook
+ http -> gitano_command_cgi -> gitano_auth
+ http -> gitano_smart_http_cgi -> git_http_backend -> git_hook
+ git -> git_daemon -> git_repos
+}
+
diff --git a/logo-front.jpg b/logo-front.jpg
new file mode 100644
index 0000000..428e64a
--- /dev/null
+++ b/logo-front.jpg
Binary files differ
diff --git a/masthead.jpg b/masthead.jpg
new file mode 100644
index 0000000..efaa1ba
--- /dev/null
+++ b/masthead.jpg
Binary files differ
diff --git a/release.pin b/release.pin
new file mode 100644
index 0000000..bf08780
--- /dev/null
+++ b/release.pin
@@ -0,0 +1,176 @@
+#!/usr/bin/env pinpoint
+
+--[logo-front.jpg]
+
+--[logo-front.jpg]
+
+Gitano
+
+<b>Git</b> with <b>A</b>ugmented <b>N</b>etwork <b>O</b>peration
+
+--
+
+Gitano
+
+Backronym for a word meaning gypsy.
+
+--
+
+Gitano
+
+A Git server with:
+
+1. Its configuration stored in git.
+2. An ACL engine for deciding which actions are permitted by who.
+3. Sandboxed hooks.
+4. Rules and hooks delegable to authorised users.
+
+--
+
+How does it work?
+
+-- [interfaces.png]
+
+# Accessible over the git, ssh and HTTP protocols.
+# Uses the contents of the master branch of gitano-admin.git
+# or the refs/gitano-admin ref of the operated on repository,
+# but most cannot modify the gitano-admin.git repository.
+# ssh and HTTP expose extra commands for management though
+# and ACLs can be made to delegate access to those commands.
+
+--
+
+Why?
+
+# Other Git servers already exist, why invent another?
+
+--
+
+Blame Daniel and Rob Taylor
+
+# Probably better in their own words.
+# My understanding is it came about of "scratching one's own itch".
+# Codethink sponsored the initial development
+# we use it as our git server, and it's a key component of Trove.
+# Daniel, I and a few others have continued development,
+# and recently we've made the 1.0 release for the next Debian release.
+
+--
+
+Version 0.1 to version 1.0
+
+1. git-upload-archive support
+1. Squashed bugs found by having a real test suite.
+2. Shallow repository push
+3. Internationalisation support.
+4. Authorisation based on GPG keys
+5. Setup documentation, ACL documentation and a wiki.
+6. A back-door key to recover from broken rules.
+7. Git-annex.
+8. Maintained Debian packages.
+
+--
+
+The future
+
+# What does the future hold?
+
+--
+
+1.0.x
+
+Inevitable bugfixes!
+
+# Who knows. It's part of Debian now,
+# so we may have extra users to worry about
+# finding bugs we didn't think of checking for.
+
+--
+
+1.1
+
+1. Tidy ups
+2. More testing
+3. Two factor authentication
+
+--
+
+1.x
+
+# Generally any new features that don't cause ABI changes.
+
+1. ACL result caching
+2. Signed push validation
+3. Switch to lua-http
+
+# We want to cache since it takes a while to do `ls`
+# We can currently require that a commit or tag is signed,
+# but not that the push is.
+# We'd like to switch to lua-http for providing http access for hooks
+# it would also be useful in the test suite
+# and we could provide a simple alternative httpd for easier setup and testing.
+
+--
+
+2.x
+
+# We have other changes we'd like to make that would break compatibility.
+
+--
+
+2.x
+
+1. Move refs/gitano-admin to a separate branch namespace.
+
+# Not so much for security,
+# but to prevent accidental mirroring or manipulation.
+# This requires a way to access it differently though,
+# so this would also allow user-defined branch namespaces.
+# Could also be used to make cheap repository forks.
+# This depends on changes to cgit to be able to display it,
+# and changes to git so we're not just doing our own weird thing.
+
+--
+
+2.x
+
+2. Anonymous signed push
+
+# This would allow someone to push if their push is signed by a key in gitano.
+# This would require changes to the git protocol to make it reasonable
+# since the signature check currently happens after objects are transferred.
+
+--
+
+2.x
+
+3. gitano-monitor
+
+# This would let a program subscribe to an event stream of the server
+# so they could know real-time and in what order repositories changed
+# so you could have a program monitor a gitano repository to sync a mirror.
+
+--
+
+<b>NEVER</b>
+
+# There's things some git servers do which we do not want to do.
+
+1. Become a sprawling web-application.
+2. Add an issue tracker.
+3. Add a slack clone.
+4. Add a patch tracker.
+5. Add a CI/CD system.
+
+# We'd much rather describe how to integrate it with another project.
+# We're far too small a project to have the manpower to develop all that
+# if we were to attempt it we'll end up with something half-baked.
+
+--[masthead.jpg]
+
+Any questions?
+
+Home page: https://www.gitano.org.uk/
+Repo: https://git.gitano.org.uk/gitano.git
+Kanban: https://trello.com/b/l4Id6iiC/gitano
+Wiki: https://wiki.gitano.org.uk/