August is Rust month (No. 6)

Engineering Counsel ❤️s open source

I can’t even calculate the many ways open source has benefitted my life and career (not to mention helping to pay my salary for a number of years).  I remember what writing software was like before SourceForge even existed, let alone GitHub, and it was pretty dismal.  

In fact, it was those dismal, boring, Death March-style days that prompted me to “get out” and go law school in the first place. Software got cool while I was in school, go figure, so I came back home.

Because open source is so vital, I thought it would be fun and interesting for my readers to explore what’s going on in specific open source communities and, short of offering legal advice of course, offering some of my own personal contributions where I think they make sense. 

By specific communities, I’m thinking of, say, starting with a language. For example, this month we’ll spotlight Rust. But, as every software engineer knows, there’s a LOT more to using a particular language than just the language; there is a lot of extra tooling and frameworks to consider. There are frameworks for running certain types of applications, like web sites. And there are tools like package management and distribution systems (such as npm for Javascript). All these things bring with them legal implications.

We might also dive into other communities, like the Linux community (which might take more than just a month to cover!!) or things like open software defined networking. Or, maybe we’ll explore what’s going on with other important applications like Redis, Mongo, or MySql.

I think these letters could be useful insights for software engineers using a particular language, tool, or framework to get a sense of the some the legal issues swirling around any given project, whether they’re like just wisps of steam or the smoke from full blown dumpster fires.

Some of the things I think we can talk about or explore include, at least:

  • what licensing regimes the projects use and explore those licenses a bit

  • how the projects and communities handle inbound contributions

  • terms of use

  • community guidelines

  • stuff that’s going on in the community that might be interesting

  • commercialization vs. true free software issues in the community, and

  • whatever else we can come up with!

Let’s Start with Rust

I’m pretty excited about the Rust community. While I don’t really use it and couldn’t code much more than a hello world, it’s a modern language that, at least appears to be, a vibrant, community driven, welcoming project. 

By this I mean, unlike older languages like Java, C++, or even Ruby, Rust seems to have been born into a world of not only of Github and “social coding,” but also a fairly evolved (to the extent we have “evolved,” do you feel me?) understanding of diversity and other cultural issues in our developer communities.

(If you’re active in the Rust community and think my first blush assessment is wrong, by all means please let me know!!)

Early Days

So we’re just getting started—but a few things jumped out right away.

First, the biggest thing that jumped out to me right away is that Rust says it is “primarily” dual licensed under MIT and Apache 2. I mentioned that on Twitter and got almost instant feedback that they chose those two licenses to (1) be compatible with other projects using the really permissive MIT License and (2) to get some of the patent protections of Apache. I mentioned I had some confusion about the term “primarily,” because as a software engineer I’m not sure what it is.

Second, looking at their repos, it does seem like they are pretty good about (a) including both license texts in there and (b) recreating the licenses of the other projects they use. I know a lot of projects do the dual license thing, but I wonder if it’s ever been reviewed by a court. I remember writing about one of the few open source cases over ten years ago. I wonder what’s changed, if anything.

And, third, speaking of contributions, last night, on a wild hair, I sent in pull request 63,187 to alter the contributor readme to mention the licensing scheme that Rust uses. Not saying, by any means, that this is something that’s legally sufficient (which it’s probably not). Just seems like a good idea to mention it somewhere, short of having people sign a true contributor agreement, which would be probably be a lot better—but might be a serious speedbump to getting people to send PRs. 

National IPA Day 🍻

Finally, today is National IPA Day, so enjoy!

Did you know there’s a podcast too?

Give it a listen!

Did a friend forward this to you?

Why don’t you get on the list yourself?

*LEGAL DISCLAIMERS AND OTHER MUMBO JUMBO: since this is a newsletter from an attorney, it is possible that this could be construed as attorney advertising (in blinking lights, of courts). I should also tell you that anything I say or opinions I offer in the list should never be construed as legal advice — even if you think the facts from some case or situation I discuss are pretty close to yours, small details make a big difference. And besides, since I’m just broadcasting information without seeing your individual situation, how could I possibly be giving you legal advice? Never forget the lesson of the Selfish Giant. And finally, my name is Michael Rice, I wrote this content, I’m licensed in California, and, with rare exception, can only work with clients in California.