From 0a2f984c52d182184206232f4d364818991ea355 Mon Sep 17 00:00:00 2001 From: Simon Karman Date: Fri, 3 Jan 2025 22:37:59 +0100 Subject: [PATCH 1/5] Add LGPL-3.0-or-later license --- LICENSE | 165 +++++++++++++++++++++++++++ README.md | 4 + base/package-lock.json | 2 +- base/package.json | 2 +- client-react/package-lock.json | 8 +- client-react/package.json | 2 +- client/package-lock.json | 6 +- client/package.json | 2 +- docs/package-lock.json | 2 +- docs/package.json | 2 +- package-lock.json | 14 +-- package.json | 2 +- server/package-lock.json | 4 +- server/package.json | 2 +- state/base/package-lock.json | 50 ++++---- state/base/package.json | 2 +- state/client-react/package-lock.json | 8 +- state/client-react/package.json | 2 +- state/package-lock.json | 4 +- state/package.json | 2 +- state/server/package-lock.json | 54 ++++----- state/server/package.json | 2 +- 22 files changed, 255 insertions(+), 86 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index 6799c63..e65afa4 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,7 @@ If you find any issues when using Krmx, then please create a ticket here: [krmx/ ### Contributors - [Simon Karman](https://www.simonkarman.nl) - *creator of Krmx* + +## License + +This project is licensed under the GNU Lesser General Public License v3.0 or later - see the [LICENSE](LICENSE) file for details diff --git a/base/package-lock.json b/base/package-lock.json index 75394bc..b51c424 100644 --- a/base/package-lock.json +++ b/base/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/base", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", diff --git a/base/package.json b/base/package.json index cca2f2a..35a210a 100644 --- a/base/package.json +++ b/base/package.json @@ -26,7 +26,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/client-react/package-lock.json b/client-react/package-lock.json index 3f71960..1da7048 100644 --- a/client-react/package-lock.json +++ b/client-react/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/client-react", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "@krmx/client": "file:../client" @@ -40,7 +40,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", @@ -58,7 +58,7 @@ "../client": { "name": "@krmx/client", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base" }, @@ -82,7 +82,7 @@ "name": "@krmx/server", "version": "0.6.7", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" diff --git a/client-react/package.json b/client-react/package.json index dfbdf02..1d02fc2 100644 --- a/client-react/package.json +++ b/client-react/package.json @@ -41,7 +41,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/client/package-lock.json b/client/package-lock.json index afe2ba4..9db54ed 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/client", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base" }, @@ -30,7 +30,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", @@ -49,7 +49,7 @@ "name": "@krmx/server", "version": "0.6.7", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" diff --git a/client/package.json b/client/package.json index 0d25b76..be64b96 100644 --- a/client/package.json +++ b/client/package.json @@ -31,7 +31,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/docs/package-lock.json b/docs/package-lock.json index d3eabbb..3c9dbef 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/docs", "version": "0.6.0", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "next": "^13.4.12", "nextra": "^2.10.0", diff --git a/docs/package.json b/docs/package.json index 1478247..7d43342 100644 --- a/docs/package.json +++ b/docs/package.json @@ -25,7 +25,7 @@ "tailwindcss": "^3.3.3", "typedoc": "^0.25.9" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/package-lock.json b/package-lock.json index e3c65cc..bb5f038 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@krmx/root", "version": "0.6.0", "hasInstallScript": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "husky": "^4.3.8", "npm-run-all": "^4.1.5" @@ -337,9 +337,9 @@ } }, "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "license": "MIT", "dependencies": { "nice-try": "^1.0.4", @@ -1173,7 +1173,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1577,7 +1577,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver" } @@ -1919,7 +1919,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "isexe": "^2.0.0" }, diff --git a/package.json b/package.json index d701ad4..6a7d567 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "pre-commit": "npm run validate" } }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/server/package-lock.json b/server/package-lock.json index b635265..cfbc7ea 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/server", "version": "0.6.7", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" @@ -31,7 +31,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.3", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", diff --git a/server/package.json b/server/package.json index f0fad94..a93cb0a 100644 --- a/server/package.json +++ b/server/package.json @@ -33,7 +33,7 @@ "ts-node": "^10.9.1", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/base/package-lock.json b/state/base/package-lock.json index 2d3e7f8..f98676f 100644 --- a/state/base/package-lock.json +++ b/state/base/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state", "version": "0.0.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "immer": "^10.1.1", @@ -112,7 +112,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -155,7 +155,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -790,7 +790,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1837,7 +1837,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2080,7 +2080,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -2355,7 +2355,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3043,7 +3043,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -3348,7 +3348,7 @@ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "reusify": "^1.0.4" } @@ -3401,7 +3401,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3551,7 +3551,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -3623,7 +3623,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3644,7 +3644,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "is-glob": "^4.0.1" }, @@ -3910,7 +3910,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5137,7 +5137,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "yallist": "^3.0.2" } @@ -5221,7 +5221,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5396,7 +5396,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "wrappy": "1" } @@ -5869,7 +5869,7 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "glob": "^7.1.3" }, @@ -5946,7 +5946,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" }, @@ -6321,7 +6321,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -6692,7 +6692,7 @@ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -6717,7 +6717,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "isexe": "^2.0.0" }, @@ -6805,7 +6805,7 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -6819,7 +6819,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">=10" } @@ -6855,7 +6855,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">=12" } diff --git a/state/base/package.json b/state/base/package.json index 6bcf9c4..7283287 100644 --- a/state/base/package.json +++ b/state/base/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.1.0", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/client-react/package-lock.json b/state/client-react/package-lock.json index 30a3bcb..a32f984 100644 --- a/state/client-react/package-lock.json +++ b/state/client-react/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-client-react", "version": "0.0.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "@krmx/client": "^0.6.3", @@ -2707,7 +2707,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/@krmx/client/-/client-0.6.3.tgz", "integrity": "sha512-KBVo20sPSIOHyxip0Oj5QJ3as358M18+mc7JvYws5N+J5rXf2WT4zUINaRdzSFbxMqbunq1kNoZqbXu+Z8tUwA==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3" } @@ -2717,7 +2717,7 @@ "resolved": "https://registry.npmjs.org/@krmx/server/-/server-0.6.7.tgz", "integrity": "sha512-0nKjOhtK2+c7eSx+IjzfqoIuWwBRmCzRwzxawCiH2iVbcAQ+JD6mrrS9z0/CANn68Y/6R2x+eFnTJEpp4ixdrQ==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "ws": "^8.13.0" @@ -2727,7 +2727,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@krmx/state/-/state-0.0.4.tgz", "integrity": "sha512-QNKAiBehCkaQ4kslL6zGsCdlzMnpwd69MS/Pviwbjk3dS5VNAChaag015b+5nlOSdwidTd39Rw40BToRcAD1VQ==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "immer": "^10.1.1", diff --git a/state/client-react/package.json b/state/client-react/package.json index 0bb1785..3c24f07 100644 --- a/state/client-react/package.json +++ b/state/client-react/package.json @@ -41,7 +41,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/package-lock.json b/state/package-lock.json index 3783bbd..d708914 100644 --- a/state/package-lock.json +++ b/state/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-root", "hasInstallScript": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "husky": "^4.3.8" } @@ -568,7 +568,7 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">= 6" } diff --git a/state/package.json b/state/package.json index a59a786..f9ecae1 100644 --- a/state/package.json +++ b/state/package.json @@ -16,7 +16,7 @@ "pre-commit": "npm run validate" } }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/server/package-lock.json b/state/server/package-lock.json index 42baee3..538282b 100644 --- a/state/server/package-lock.json +++ b/state/server/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-server", "version": "0.0.5", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "@krmx/server": "^0.6.7", @@ -112,7 +112,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -155,7 +155,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -790,7 +790,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1177,7 +1177,7 @@ "version": "0.6.7", "resolved": "https://registry.npmjs.org/@krmx/server/-/server-0.6.7.tgz", "integrity": "sha512-0nKjOhtK2+c7eSx+IjzfqoIuWwBRmCzRwzxawCiH2iVbcAQ+JD6mrrS9z0/CANn68Y/6R2x+eFnTJEpp4ixdrQ==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "ws": "^8.13.0" @@ -1187,7 +1187,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@krmx/state/-/state-0.0.4.tgz", "integrity": "sha512-QNKAiBehCkaQ4kslL6zGsCdlzMnpwd69MS/Pviwbjk3dS5VNAChaag015b+5nlOSdwidTd39Rw40BToRcAD1VQ==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "immer": "^10.1.1", @@ -1853,7 +1853,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2096,7 +2096,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -2371,7 +2371,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3059,7 +3059,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" } @@ -3364,7 +3364,7 @@ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "reusify": "^1.0.4" } @@ -3417,7 +3417,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3567,7 +3567,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -3639,7 +3639,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3660,7 +3660,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "is-glob": "^4.0.1" }, @@ -3926,7 +3926,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5153,7 +5153,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "yallist": "^3.0.2" } @@ -5237,7 +5237,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5412,7 +5412,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "wrappy": "1" } @@ -5885,7 +5885,7 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "glob": "^7.1.3" }, @@ -5962,7 +5962,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver.js" }, @@ -6337,7 +6337,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -6708,7 +6708,7 @@ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -6733,7 +6733,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "isexe": "^2.0.0" }, @@ -6821,7 +6821,7 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -6856,7 +6856,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">=10" } @@ -6892,7 +6892,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">=12" } diff --git a/state/server/package.json b/state/server/package.json index 25e43e9..f2f3260 100644 --- a/state/server/package.json +++ b/state/server/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.1.0", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { From 96f49217dd518ed14f5347985515a69f3ecb4a50 Mon Sep 17 00:00:00 2001 From: Simon Karman Date: Thu, 9 Jan 2025 17:49:46 +0100 Subject: [PATCH 2/5] Added CONTRIBUTING and CODE_OF_CONDUCT files --- CODE_OF_CONDUCT.md | 132 +++++++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 73 +++++++++++++++++++++++++ README.md | 14 +++-- 3 files changed, 215 insertions(+), 4 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5757e28 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[this form](https://www.simonkarman.nl/contact). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a9d56ac --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,73 @@ +# Contributing Guidelines + +Thank you for your interest in contributing to our project! This document provides guidelines and instructions for contributors to help maintain code quality and ensure smooth collaboration. + +## Getting Started + +1. Fork the repository +2. Clone your fork: `git clone https://github.com/yourusername/krmx.git` +3. Create a new branch: `git checkout -b feature/your-feature-name` +4. Run `npm install` to install dependencies +5. Make your changes +6. Test your changes thoroughly (run `npm run validate`) +7. Write documentation for you changes +8. Push your branch to your fork: `git push origin feature/your-feature-name` +9. Create a pull request to the main repository +10. Wait for your PR to be reviewed by maintainers + +### Reporting Bugs + +If you find a bug, please create an issue following these steps: +1. Check if the bug has already been reported +2. Include a clear title and description +3. Add steps to reproduce the bug +4. Include expected and actual behavior +5. Add relevant system information + +### Pull Requests + +When submitting a pull request: +1. Update documentation as needed +2. Add tests for new features +3. Follow the existing code style +4. Keep your changes focused and atomic +5. Link any related issues +6. Write a clear PR description + +## Development Process +After installing the project with `npm install`, linting and tests will run automatically on every commit. Make sure that all steps succeeded before submitting a PR. + +### Testing + +- Write tests for new features +- Ensure all tests pass before submitting +- Update existing tests as needed +- Include both unit and integration tests where appropriate + +## Documentation + +- Update README.md if needed +- Document new features in the [docs](./docs) directory +- Update API documentation +- Include inline documentation for complex code +- Add examples for new functionality + +## Review Process + +1. Maintainers will review your PR +2. Address any requested changes +3. Once approved, your PR will be merged +4. Your contribution will be acknowledged + +## Questions? + +If you have questions: +1. Check existing documentation +2. Search closed issues +3. Open a new issue with the question label +4. Join our community chat/forum + +## License +By contributing, you agree that your contributions will be licensed under the [project's license](./LICENSE). + +Thank you for contributing to our project! Your efforts help make this project better for everyone. diff --git a/README.md b/README.md index e65afa4..5f2a350 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ Krmx is a network protocol for realtime multi-user interactions. ## Getting Started If you want to build your own application using Krmx, you should start be reading the [Krmx documentation](https://simonkarman.github.io/krmx). -## Contributing -If you want to help improve Krmx or add new features. You can create a pull request. You can find the different components in these directories: + +## Project Structure +You can find the different components in these directories: - [docs/](./docs): documentation of both the Krmx protocol and the reference implementations - [base/](./base): shared code between the Krmx client and Krmx server in TypeScript @@ -17,13 +18,18 @@ If you want to help improve Krmx or add new features. You can create a pull requ The base, server, client, client-react, and state implementations are published on npm under the [krmx](https://www.npmjs.com/org/krmx) npmjs organisation. +## Contributing +If you want to help improve Krmx or add new features., then please read the [Contributing Guidelines](./CONTRIBUTING.md) before submitting pull requests or reporting issues. + +By contributing to this project, you agree to abide by the [Code of Conduct](./CODE_OF_CONDUCT.md) and [license](./LICENSE) terms. + > Possible upcoming features and ideas can be found in [features.md](./features.md). -If you find any issues when using Krmx, then please create a ticket here: [krmx/issues](https://github.com/simonkarman/krmx/issues). +If you find any issues or bugs when using Krmx, then please create a ticket here: [krmx/issues](https://github.com/simonkarman/krmx/issues). ### Contributors - [Simon Karman](https://www.simonkarman.nl) - *creator of Krmx* ## License -This project is licensed under the GNU Lesser General Public License v3.0 or later - see the [LICENSE](LICENSE) file for details +This project is licensed under the GNU Lesser General Public License v3.0 or later - see the [LICENSE](./LICENSE) file for details From c95e079efa057aee3449fcf0d750ebc6c20073ef Mon Sep 17 00:00:00 2001 From: Simon Karman Date: Thu, 9 Jan 2025 18:24:57 +0100 Subject: [PATCH 3/5] Create a git tag when publishing a new version of a package --- .github/tools/version.sh | 18 ++++++++++++++++++ .github/workflows/publish.yml | 3 +++ .github/workflows/version.yml | 20 +------------------- features.md | 2 +- package.json | 2 +- 5 files changed, 24 insertions(+), 21 deletions(-) create mode 100755 .github/tools/version.sh diff --git a/.github/tools/version.sh b/.github/tools/version.sh new file mode 100755 index 0000000..8110428 --- /dev/null +++ b/.github/tools/version.sh @@ -0,0 +1,18 @@ +#!/bin/bash +echo "Verifying that all packages have the same major and minor version (patch version can be different)..." +version_base=$(cat package.json | jq '.version' --raw-output) +version_base=${version_base%.*} +echo "Base Version: $version_base" + +find . -name "package.json" -type f -not -path "*/node_modules/*" -not -path "*/.next/*" -not -path "*/state/*" | sort | while read -r file; do + name_pkg=$(cat $file | jq '.name' --raw-output) + full_version_pkg=$(cat $file | jq '.version' --raw-output) + version_pkg="${full_version_pkg%.*}" + + if [ "$version_base" != "$version_pkg" ]; then + echo "- $name_pkg: mismatch! (at $full_version_pkg)" + exit 1 + else + echo "- $name_pkg: correct ($full_version_pkg)" + fi +done diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4e49a27..0fb4818 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -81,4 +81,7 @@ jobs: # Publish the package npm publish --provenance --access public + + # Create a new tag for the published version of the package + git tag -a "${{ matrix.package }}@v$LOCAL_VERSION" -m "${{ matrix.package }}@v$LOCAL_VERSION" fi diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml index c2ed9e5..4ca2754 100644 --- a/.github/workflows/version.yml +++ b/.github/workflows/version.yml @@ -12,23 +12,5 @@ jobs: steps: - uses: actions/checkout@v4 - name: Check versions - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | - echo "Verifying that all packages have the same major and minor version (patch version can be different)..." - version_base=$(cat package.json | jq '.version' --raw-output) - version_base=${version_base%.*} - echo "Base Version: $version_base" - - find . -name "package.json" -type f -not -path "*/node_modules/*" -not -path "*/.next/*" -not -path "*/state/*" | sort | while read -r file; do - name_pkg=$(cat $file | jq '.name' --raw-output) - version_pkg=$(cat $file | jq '.version' --raw-output) - version_pkg="${version_pkg%.*}" - - if [ "$version_base" != "$version_pkg" ]; then - echo "- $name_pkg: mismatch! (at $version_pkg)" - exit 1 - else - echo "- $name_pkg: correct" - fi - done + .github/tools/version.sh diff --git a/features.md b/features.md index 981c099..b87031d 100644 --- a/features.md +++ b/features.md @@ -14,4 +14,4 @@ To see what Krmx currently has to offer read the [Krmx documentation](https://si 2. Class Serialization - Allow serialization of data that contains classes with custom toJson and fromJson implementations ### Krmx Starter -1. Npx Command - Publish a `npx create krmx-app` command that bootstraps a new Krmx application with a basic setup including Krmx State. +1. Npx Command - Publish a `npx create krmx-app` command that bootstraps a new Krmx application with a basic setup including Krmx State. See [Krmx Starter](https://github.com/simonkarman/krmx-starter) for the starter application. diff --git a/package.json b/package.json index 6a7d567..0427ac3 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "dev:client": "sleep 500 && npm run --prefix client dev", "dev:client-react": "sleep 750 && npm run --prefix client-react dev", "dev:docs": "npm run --prefix docs dev", - "versions": "npm install && npm --prefix base run postversion && npm --prefix server run postversion && npm --prefix client run postversion && npm --prefix client-react run postversion && npm --prefix state run versions" + "versions": "npm install && npm --prefix base run postversion && npm --prefix server run postversion && npm --prefix client run postversion && npm --prefix client-react run postversion && npm --prefix state run versions && .github/tools/version.sh" }, "dependencies": { "npm-run-all": "^4.1.5", From 302b633f35f444ddaf9b21fcdb194a7106b6813c Mon Sep 17 00:00:00 2001 From: Simon Karman Date: Sat, 1 Mar 2025 23:16:05 +0100 Subject: [PATCH 4/5] Apply suggestions from Copilot review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9d56ac..5d91461 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ Thank you for your interest in contributing to our project! This document provid 4. Run `npm install` to install dependencies 5. Make your changes 6. Test your changes thoroughly (run `npm run validate`) -7. Write documentation for you changes +7. Write documentation for your changes 8. Push your branch to your fork: `git push origin feature/your-feature-name` 9. Create a pull request to the main repository 10. Wait for your PR to be reviewed by maintainers diff --git a/README.md b/README.md index 5f2a350..3275546 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,7 @@ You can find the different components in these directories: The base, server, client, client-react, and state implementations are published on npm under the [krmx](https://www.npmjs.com/org/krmx) npmjs organisation. ## Contributing -If you want to help improve Krmx or add new features., then please read the [Contributing Guidelines](./CONTRIBUTING.md) before submitting pull requests or reporting issues. - +If you want to help improve Krmx or add new features, then please read the [Contributing Guidelines](./CONTRIBUTING.md) before submitting pull requests or reporting issues. By contributing to this project, you agree to abide by the [Code of Conduct](./CODE_OF_CONDUCT.md) and [license](./LICENSE) terms. > Possible upcoming features and ideas can be found in [features.md](./features.md). From 4e361435adc6151e96ac647f4b32b319932f0aca Mon Sep 17 00:00:00 2001 From: Simon Karman Date: Sat, 3 May 2025 14:54:24 +0200 Subject: [PATCH 5/5] Test Tag Push --- .github/workflows/publish.yml | 4 +++- .github/workflows/validate.yml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0fb4818..feb5d6f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: publish: runs-on: ubuntu-latest permissions: - contents: read + contents: write id-token: write strategy: max-parallel: 1 # has to be 1 (one) as there are dependencies between the published packages @@ -33,6 +33,7 @@ jobs: - name: Publish Packages env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | cd ${{ matrix.package }} echo "-- @krmx/${{ matrix.package }} --" @@ -84,4 +85,5 @@ jobs: # Create a new tag for the published version of the package git tag -a "${{ matrix.package }}@v$LOCAL_VERSION" -m "${{ matrix.package }}@v$LOCAL_VERSION" + git push origin "${{ matrix.package }}@v$LOCAL_VERSION" fi diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index f8d8033..756e730 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -19,3 +19,34 @@ jobs: node-version: '22.x' - name: Validate Packages run: npm run validate + + # Test tag creation and push + - name: Test Tag Push + run: | + # Set Git identity for the tag + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + + # Create a test tag with timestamp to ensure uniqueness + TIMESTAMP=$(date +%s) + TEST_TAG="test-tag-${TIMESTAMP}" + + echo "Creating test tag: ${TEST_TAG}" + git tag -a "${TEST_TAG}" -m "Test tag ${TEST_TAG}" + + # Push the tag using explicit credentials + echo "Pushing test tag to origin..." + git push https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "${TEST_TAG}" + + # Verify tag was pushed successfully + echo "Tag pushed successfully!" + sleep 15 # Wait for a few seconds to ensure the tag is available + + # Delete the tag both locally and remotely + echo "Deleting test tag..." + git tag -d "${TEST_TAG}" + git push https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git :refs/tags/${TEST_TAG} + + echo "Tag test completed successfully!" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}