-
-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unlicense is flawed enough to scare me off #26
Comments
I'm sympathetic to your concerns. Hopefully we can work something out. I'm quite familiar with all the material you've linked, but to my knowledge, neither the CC0 nor the Unlicense have actually been tested in a jurisdiction like Germany, so I'm skeptical of claims that one is better than the other. The CC0 FAQ admits that they aren't sure it works everywhere. There are also some comments by the creator of the Unlicense which indicate that jurisdictions like Germany were clearly on his mind when he wrote it: https://groups.google.com/forum/#!topic/unlicense/GrjYlqmF92Q I can appreciate the notion that the CC0 feels less risky than the Unlicense, but there are no guarantees associated with using it in all jurisdictions. I take this risk knowingly and purposefully, mostly because I am against copyright law. (I consider the Unlicense to be an explicit declaration of this fact, which is why I use it.) However, I hate that this may alienate some users. Is there anything I can do to convince you to use I might consider dual licensing too, although that seems a bit ridiculous. Finally, consider that there exists other popular software that is used internationally that is also under the public domain. For example, SQLite. |
Keeping track of a specific permission grant would be more hassle and bother than just using the uglier APIs offered by bswap (MIT) or endian (LGPL3) so I'd rather avoid that option. My preference for the CC0 over the Unlicense stems from the fact that:
(Plus, for point 2, the fallback clause has its own internal fallback that says "if any of this can't be applied, the grants that can be applied are still valid" and includes something similar to a patent pledge but for copyright non-enforcement.) As for SQLite, I do tend to develop against SQL expression generation shims so swapping in PostgreSQL and/or MySQL is an option, both for scalability and protection's sake, but it's also something of a special case for a variety of reasons I'd rather not exhaustively enumerate unless necessary. |
I've given this a lot of thought over the past few days and allowed myself to sleep on it. I am considering dual licensing under both the Unlicense and the MIT license. I think this maximizes expression (hate copyright) and use (MIT is battle tested (more so than CC0) with nominal requirements). Would that be enough to set you at ease? (Sorry about taking so long. But I wanted to be sure I was OK with this, as I'll probably extend this licensing scheme to most other projects I own.) |
I'd definitely be satisfied with that and I don't mind you taking however long you feel you need. "Probably extend[ing it] to most other projects I own" is something that's definitely worth the wait. (I filled the time by translating I was already interested in QuickCheck for Rust and, looking through your repo listing, erd, pdoc, tabwriter, xsv, rust-csv, and qcsv also look interesting. (Do your CSV-related projects have support for processing TSV? I have a tendency to use that over CSV in my creations since it dramatically reduces the likelihood that quoting will be necessary and it would be a bit awkward and silly to write ungainly scaffolding just to flip from TSV to CSV and then back again after the processing was done... especially if it's Python scaffolding for something like rust-csv.) |
Yeah of course! My CSV parser in Rust is meant to be the real deal. You can twiddle a lot more than just the delimiter. It's just that the default is
It's probably worth supporting an environment variable or something that sets the default delimiter. |
For xsv, an environment variable probably would be a good idea but I'm glad to hear it nonetheless. :) I've been working on defining a stricter code quality policy for my projects and, given how much of applying it to Python is just reinventing Rust's type system and manually taking on the role of tools like QuickCheck, I suspect I'll be moving a lot of my data processing stuff to Rust as the APIs stabilize and the ecosystem matures. (Especially if I can find a good way to incrementally migrate the larger stuff with the help of |
Given that I'm usually the opening these kinds of tickets[1], I just wanted to say that the dual licensing option sounds 👍, especially as I do support your views on public domain/copyright. [1]: /u/fgilcher on reddit |
Done in eb4486b I'm in the process of doing the same for the rest of my crates. |
I'd like to depend on this for an experiment where I'm rewriting a Python script which examines GIF files in a performance-optimized manner.
However because of flaws in the Unlicense, it's on my blacklist to ensure proper safety for my users, regardless of the jurisdiction they're in.
Is there any chance you'd be willing to offer byteorder under something more carefully designed like the Creative Commons CC0 public domain dedication?
(CC0 is also what the FSF recommends if you want to release your code into the public domain.)
The text was updated successfully, but these errors were encountered: