Skip to content

Make the license and commercial terms visible everywhere - #71

Open
venkat1701 wants to merge 4 commits into
mainfrom
chore/licensing
Open

venkat1701 wants to merge 4 commits into
mainfrom
chore/licensing

Conversation

@venkat1701

Copy link
Copy Markdown
Collaborator

Please merge this last, after #64, #67 and the #65/#66/#69 stack. It touches the top of every source file. Once the others are in, I'll rebase it and add headers to the files they introduce (NodeCacheTest, WriteAheadLogTest).

What it does, all in the open:

  1. SPDX headers in every source file we wrote (216 Java and JS files, plus the CSS, the HTML, 3 shell scripts and the Dockerfile):
    SPDX-FileCopyrightText: Metacog Labs
    SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
    
    Each file uses its own comment style. They go after the shebang in shell scripts, after the # syntax directive in the Dockerfile, and after <!doctype html> in the HTML. The Maven wrapper keeps its own license.
  2. License notice: hstore version and the startup log both say Licensed under PolyForm Noncommercial 1.0.0. Commercial use needs a license from Metacog Labs: krish@getmetacognition.com.
  3. Commercial licensing: the README explains that anything the noncommercial license doesn't cover can be licensed commercially, and where to ask.
  4. Metadata that travels with copies:
    • the parent POM declares the organization and the license
    • every jar manifest carries Implementation-Vendor, License, License-Contact and Source
    • the runtime image gets the OCI vendor, licenses and source labels

Please have someone check one line in CONTRIBUTING.md. For dual licensing to work, contributors have to allow Metacog Labs to license their contributions commercially too. I added: By contributing you agree that your contributions are licensed under the PolyForm Noncommercial License 1.0.0, and that Metacog Labs may also license them to others under its commercial license terms. That's a legal commitment, so it's worth a look by whoever handles that for you. Many projects use a CLA instead.

Tested:

  • full ./mvnw install passes (92 tests), the benchmarks module builds, all Studio JS passes node --check, and each commit compiles on its own
  • all three jar manifests have the new entries; the server jar keeps its Main-Class
  • JVM: hstore version and the startup log show the notice
  • native Docker image:
    • labels set
    • docker run <image> version prints the notice
    • the container is healthy and logs the notice
    • Studio's page is served with the header after the doctype
    • clean shutdown

Every source file we wrote now names its copyright holder and license
(PolyForm-Noncommercial-1.0.0). The Maven wrapper keeps its own license.
Both now say the server is licensed under PolyForm Noncommercial 1.0.0
and that commercial use needs a license from Metacog Labs, with the
contact address.
…abels

The parent POM declares the organization and license, every jar manifest
carries the vendor, license, contact and source URL, and the runtime
image gets the matching OCI labels.
The README says commercial use needs a separate license and where to ask.
CONTRIBUTING says contributions may also be licensed commercially and
that new files carry the SPDX header.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant