This week I took a break from coding to write about some non-coding ways I’ve been thinking about to modernize the Subversion project’s communications and reach, and encourage its community.
Here’s a snapshot of “What’s In My Head” copied from Subversion’s Wiki.
In a later post I write about some potential svn code developments in my head.
Community
Ways to modernize the Subversion project’s communications and reach, and encourage its community.
Communication technology
General
- keep using Open technologies
- keep plain email the baseline standard of communication
- integrate ‘forum’ and ‘mailing list’ forms of access
- integrate long-form and chat-form if possible
- integrate archives / logs, permalinks, searching
Email: Forums and Mailing Lists
Problem: Simple old mailing lists are inconvenient for new and occasional users. They have weak or no integration with their own archives, our issue tracker, etc.
Some proprietary forums e.g. Google groups already attempt to mirror and integrate with our lists, with some degree of success, but we are mainly ignoring it.
We should seek to integrate better with forums. For a start: let users know that it’s an option for them (on our ‘mailing-lists’ web page); and see if we can make some better steps of integration (such as unified permalinks).
For a longer term solution, I wonder if any suitable open source software exists, or if an ASF group might consider developing/adapting something.
- Pony Mail can substitute as a simple forum interface. See, for example, https://lists.apache.org/list.html?users@subversion.apache.org If you log in, you can post messages directly from the web UI.
Chat (IRC, Matrix)
Problem: The IRC chat systems we use are inconvenient for new and occasional users. They have weak integration with archives, issue tracker, etc.
Use Matrix as an upgrade path from IRC. That is my strong recommendation.
Matrix is Open, bridges to existing IRC channels, has good UI on mobile and desktop, is simple enough for newbies, has permalinks and can act as an archive, can be self-hosted.
Matrix is ready for immediate ad-hoc use by individual participants in our IRC channels, through the Freenode bridge operated by matrix.org, and is being used in this way by at least two svn-dev members.
In future the ASF should run its own Matrix infrastructure: server, bridges, etc. The ASF would then control its own data, its own user accounts, and its own integrations with archives, commits, issue trackers, etc. Usability advantages: use ASF single-sign-on; install specialist bridges/integrations.
Examples of migration to Matrix in other IRC-based communities: Wikimedia, Drupal
Tasks:
- encourage users to consider using Matrix to access #svn-dev and #svn
- share with the rest of the ASF – on users@infra.apache.org or dev@community.apache.org?
Integrate archives / logs, permalinks, searching
Problem: Past communications are scattered across systems and storage locations, with no consistent archives or permalinks, so cross-referencing is difficult and non-permanent. Our issue tracker and wiki provide only links that are tied to their current provider technology.
The types of information include:
- Short-form chat (IRC) archives: Matrix-Static, irclogger, ASF Wilderness IRC logs.
- Email/forum archives: haxx.se, ASF Pony Mail, the old Tigris lists. (The old Tigris mailing-lists system used to provide a permalink to the archived version at the bottom of each mail delivered.)
- Issue Tracker: the current Jira issues, the old issuezilla.
- Wiki pages: the current Confluence, the old MoinMoin.
An
important step is to develop a URL “permalink” scheme to refer to our
various resources. These would be technology-ignorant URLs, all under subversion.apache.org
, like “/issue/1234
“.
A baby step is the ‘.message-ids.tsv’ file in our web site directory, holding a mapping from haxx archive URLs used in our web pages to email message ids, with (in the commit log message) a script to generate it. There is, as yet, no automation to use the mapping in any way.
Initial tasks:
- start documenting a URL-space map for our resources
- populate one entry, e.g. “/issue/<number> → issue <number>”
- implement some simple automated handling (e.g. redirects) for that
- well, well… we already have this in our .htaccess which covers that exact case along with some aliases:
"RedirectMatch ^/issue[^A-Za-z0-9]?(\d+)$ https://issues.apache.org/jira/browse/SVN-$1"
- start using it: update existing direct links to point here instead; publicize it
Deeper integration: A permalink URL should not merely redirect the user to its technology-specific target URL, but present the target in such a way that other inbound and outbound URLs also use the permalink form. With a big third-party system like Jira or Confluence the feasibility of that is going to depend entirely on whether the system has built-in support for that usage.
Software Distribution
Problem: Subversion packages are outdated or unavailable for many platforms, especially server/cloud environments (e.g. Docker) and mobile (e.g. Android).
Examples:
- For Ubuntu trusty (14.04LTS): 1.8.8; for xenial (16.04LTS): 1.9.3; for bionic (18.04LTS): 1.9.7
- For OpenSUSE Tumbleweed: 1.7.4; for Leap 15.0: 1.10.0; for Leap 42.3: 1.9.7
- For Android: OAsvn, based on svnkit 1.7.5
- NAS: Synology svn server pkg 1.9.7; QNAP svn server pkg 1.7
What could we do?
- reach out to individual maintainers and ask if they need any help or just a ping?
- encourage companies to take on packaging (Assembla?)
- make dedicated efforts to establish builds that may be important
Traditional OS / Desktop
(Windows, Linux, BSD, Solaris)
pkgs.org lists the current package versions for many traditional Linux/BSD distributions.
Some companies maintain up to date package builds for several platforms, notably WANdisco & CollabNet.
Cloud / Server / Containers
(Docker, SNAP, VM, etc.)
On Docker Hub the most comprehensive svn server seems to be elleflorio/svn-server (http + svnserve). Next is garethflowers/svn-server (very simple; svnserve only). None seem to be an enterprise-grade installation.
There are no ‘subversion’ or ‘svn’ packages in the SNAP store.
Mobile (client)
(Android, IOS)
We should be able to have functional svn client apps on Android and IOS. The libs and bindings might be the best focus. The command-line client won’t so often be wanted, but no reason it should not be available.
For Android, the only open-source client is OAsvn, based on svnkit 1.7.5. It works, but is unmaintained and primitive.
Small / Personal Servers
(Home NAS; Raspberry Pi, etc.; also personal server software platforms like Sandstorm, UBOS, Yunohost, etc.)
Integrations with IDEs etc.
(Visual Studio, Netbeans, IntelliJ, XCode, etc.)
Documentation
The Svn Book
The authors of the Svn Book no longer maintain it have recently been offering to hand its ownership to the Subversion project.
What should we do with it?
Man Pages and Help Text
The built-in help is half way between a summary and a detailed reference. The Book contains an index which is a variation on this. We never got around to generating man pages or other formatted help.
Tasks:
- Generate svn help and man pages from common source: there is an old patch as a starting point