Subversion 1.11 Released

Subversion 1.11 is the first of the new 6-month regular releases with an emphasis on introducing new features more quickly and a shorter support period. For those requiring stability we have Long-Term Support releases; this is not one of those. For details see How We Plan Releases.

Changes I was involved with are:

Most interesting from my point of view is the already considerable enhancement of shelving compared with 1.10. No longer do we store the shelf as a patch file, but as complete before-and-after content, and we apply it in the same way ‘svn update’ or ‘svn merge’ would, except without (yet) any conflict handling.

The 1.11 version of shelving also adds a limited form of checkpointing, in the form of multiple versions of a shelf. It is analogous to how we might manually save “my-change-1.patch” and then a later version as “my-change-2.patch”. Shelving in Svn-1.11 summarizes the changes and gives an overview.

I should point out that while shelving is enhanced, it still has a substantial gap: it lacks support for copies and moves, and mkdir and rmdir. To fill this gap I am working now to put in place consistent internal APIs through which to push and pull changes into and out of the working copy storage layer. With those in place, an implementation of shelving that supports the full range of WC operations should be as simple as a glue layer that plugs a “pull from WC” API into a “push to shelf” API, and vice-versa.

The other notable improvement listed in the 1.11 release notes is one that Stefan Sperling has been devoting a lot of effort to:

That one is all about offering the user some sensible and useful options when tree conflicts occur.

Now I’ve got this release out the door I am looking forward to continuing development.

Home User Seeks Modular Matrix Hosting

This week the Matrix core team launched hosted Matrix servers at Modular.im.

This is excellent news as I expect it will boost the take-up of Matrix. I would like to see organizations using Matrix in place of IRC, Slack, etc. The early adopters are likely to be those into open source such as (I hope) the Apache Software Foundation, although perhaps commercial organizations are more likely to pay somebody else to run a hosted service.

But there is a catch, at present. Using your own domain name is only offered on Modular’s large plans. I think this is a mistaken policy.

My reasons for embracing Matrix can be summarized as “Own Your Own Identity and Data“. It is essential to identify myself using my own domain name — @julian:foad.me.uk — and not by choosing a username or subdomain in a domain controlled by the provider company.

I believe it is essential for the future health of Matrix that we encourage users to bring their own domain name. That will teach users about decentralization, empower them to change their hosting provider, and encourage developers of other software in the ecosystem to embrace decentralized design. If we expect users to default to registering on a large central server, then the system is in danger of degenerating into an almost centralized future where many bridges, integrations, and other ecosystem components would only support the the large central servers, and most users would feel like it was just another silo. That would be a failure.

If you register your interest in Modular’s future smaller plans, you may receive a survey invitation, as I just did. I took the opportunity to let them know my thoughts. If you care about this sort of thing, perhaps you could do so too.

How Firefox Login Could Teach Own-Your-Identity

If there’s one thing that reinforces the expectation that BigCorp controls my data, it’s a login like this:

You can use your own sync server if you are prepared to configure the sign-in procedure like this:

To configure desktop Firefox to talk to your new Sync server, go to “about:config”, search for “identity.sync.tokenserver.uri” and change its value to the URL of your server with a path of “token/1.0/sync/1.5”:

identity.sync.tokenserver.uri: http://sync.example.com/token/1.0/sync/1.5

That’s if you ever guessed it was possible and went looking.

I would love to see Firefox promote owning one’s own identity and data, by prominently displaying the option to use one’s own server. An example from Matrix:

Matrix login

Matrix: click my user id to contact me

I was mentioning my Matrix user id in my last blog post, and I wanted to mark it up as a hyperlink so that readers could click on it to contact me through Matrix. Or rather I want that to be possible in general.

Shall I use a “matrix:” URL scheme?

    matrix:@julian:foad.me.uk

or microformats?

    <span class="p-matrix">@julian:...</span>

Perhaps a URL scheme is a good place to start. How will software know to act on it? Before it’s universally implemented, we might expect to install a browser plug-in to act on it. What should it do? Bring up the user’s preferred Matrix message composer, if and when such a thing is configured in the user’s operating system (as is nowadays common for email links and some other kinds of links). Alternatively, bring up a “compose” action in some web UI that the plug-in knows about, such as https://riot.im/app/ .

Has anything like this been declared or implemented yet?

A partial answer:

    https://matrix.to/#/@julian:foad.me.uk

brings up a web site offering ways to connect to my user id in Riot (using a direct link) and others that don’t support direct links. The Riot link is

    https://riot.im/app/#/user/@julian:foad.me.uk

and the page has a link to issue #455 tracking this problem.

My own Matrix id

Another step in my personal quest to own my own (online) identity and control my own data.

One of the most important Internet developments these days is the Matrix. Think about how email is not controlled by any single provider: you can message any other user of the system, no matter which company you choose to host your account, and no matter what software you use to access it, commercial or open-source, free or paid. Matrix is like that, but for instant messaging and voice/video calls (and potentially much more).

This week I set up my own copy of the Matrix server software at home. Why? Not because I like running servers — I’d rather somebody else did it for me. What I do want is ownership of my user identifier. Just as now I use an email address
    julian@foad.me.uk
instead of one like …@gmail.com that’s totally under the control of a third party, so too I now have a Matrix id in my own domain
    @julian:foad.me.uk

Right now, running my own server is the way to achieve that. In future it should be possible to register an account with my own user identity on a server run by somebody else. For email, I use julian@foad.me.uk but I don’t run the email server software on my own domain, I pay another company to host it for me. That option is not yet mature in Matrix.

I would like to detail how I set up my server but although I got it working I can’t recommend the way I did it this time. I’m going to set it up again, and this time I will use https://github.com/spantaleev/matrix-docker-ansible-deploy which appears to be by far the best available guide or method.