Skip to content

Add open source LICENSE file and update contributing documentation #2

Description

@koraytaylan

Add Open Source License (LICENSE file) and Update Contributing Documentation

Summary

The repository currently has no LICENSE file. This is a significant oversight for a project that has:

  • An extremely detailed README.md with "Contributing", "Definition of Done", and "Rules" sections
  • 500+ tests and professional-grade security claims
  • Clear intention that others will read, use, and potentially contribute to the code

Without a license, the legal status of the code is ambiguous. Technically, under copyright law, no one is allowed to copy, modify, or distribute the code (even for personal use in many jurisdictions) without explicit permission.

What is the problem?

  • There is no LICENSE or LICENSE.md file at the repository root.
  • README.md never mentions licensing terms.
  • The "Contributing" section talks about "Definition of Done" and rules as if this is a collaborative project, but the legal foundation is missing.
  • Anyone who forks, copies code snippets, or wants to learn from the architecture has unclear rights.

Why this matters

  • Legal risk for users and contributors: Companies and individuals are often forbidden by policy from using unlicensed code.
  • Blocks adoption and learning: The project has excellent educational value (trait-based storage backends, SolidJS context architecture, SQLCipher + keyring pattern, virtualized file UI, etc.). Lack of license discourages people from studying or reusing the ideas.
  • Inconsistent with project maturity: We have 84% test coverage, clippy -D warnings, detailed security model, and a 800+ line README — but no license. This looks unprofessional.
  • Contributor confusion: A junior developer (or even a senior one) who wants to send a PR doesn't know whether their contribution will be accepted under what terms.

How to solve it (clear, junior-dev friendly steps)

Recommended License: MIT

Why MIT?

  • Permissive (easy for companies and individuals to adopt)
  • Very short and easy to understand
  • The most common license for Rust + Tauri + modern frontend projects
  • Compatible with almost every other open source license

(Apache-2.0 is also acceptable if the maintainer prefers patent protection language.)

Step-by-step execution

  1. Create the LICENSE file (do not use the year range trick unless you are the sole copyright holder)

    The simplest correct form for 2025 onward:

    MIT License
    
    Copyright (c) 2025 Koray Taylan
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    

    Save this as LICENSE (no extension) in the repository root.

  2. Update the README.md

    Add a new small section near the top (after the title and one-line description, before Table of Contents) or at the bottom:

    ## License
    
    This project is licensed under the [MIT License](LICENSE).

    Also update the "Contributing" section to include a sentence like:

    By contributing to this repository, you agree that your contributions will be licensed under the MIT License.

  3. (Optional but nice) Add a license badge or link in the README header.

  4. Verify

    • Run ls -l LICENSE to confirm the file exists
    • The file must be plain text (GitHub will automatically detect it and show a nice banner on the repo page)

Acceptance Criteria

  • LICENSE file exists at repository root with valid MIT (or Apache-2.0) text
  • Copyright holder name and year are correct (ask maintainer if unsure)
  • README.md contains a clear "License" section that links to the file
  • "Contributing" section mentions that contributions are licensed under the same terms
  • GitHub repository page shows the license badge in the "About" section on the right (after the PR is merged and GitHub rescans)
  • You have read and understood the difference between MIT and Apache-2.0 (write one sentence in the PR description)

Learning Goals for This Task

  • Understand open source licensing and why it matters even for small/personal projects
  • Learn the practical difference between permissive (MIT) and copyleft licenses
  • Practice clear technical writing in documentation
  • Experience how legal clarity enables collaboration

Relevant Files

  • README.md (multiple sections: Contributing, Definition of Done, Roadmap)
  • Current lack of any license file at root

Out of Scope

  • Choosing a different license (MIT is the recommendation; discuss with maintainer before using anything else)
  • Adding Contributor License Agreement (CLA)
  • License header in every source file (that can be a follow-up "cleanup" issue)

This is an excellent "good first issue" — it is low-risk, high-visibility, teaches an important real-world concept (licensing), and has a very clear finish line. A junior developer who completes this will have made the entire project legally usable by others for the first time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationgood first issueGood for newcomershelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions