copyright licensing public-domain
Can I &quot;license&quot; my project under the public domain if it uses MIT licensed NPM packages?
<p>I'm creating a project in <a href="https://www.npmjs.com/package/typescript" rel="nofollow noreferrer">TypeScript</a> with <a href="https://www.npmjs.com/package/express" rel="nofollow noreferrer">express</a> right now, which I would like to pulish under the public domain once I release it. However, express is <a href="https://choosealicense.com/licenses/mit/" rel="nofollow noreferrer">MIT</a> licensed, and the TypeScript NPM package is licensed under <a href="https://choosealicense.com/licenses/apache-2.0/" rel="nofollow noreferrer">Apache-2.0</a>.</p>
<p>As I don't include any code from the packages themselves (I only include the name in package.json), I don't think I have to use the MIT or Apache-2.0 either, but I'm not sure.</p>
<p>Can anyone confirm my thoughts?</p>
<p>Kind regards,
Bram</p>

<p>You can dedicate a creative work to the public domain if you are the sole author/copyright holder, and if your jurisdiction recognizes public domain dedications.</p>
<p>Here, the relevant question is where your creative work ends and other's creative works begin. Your running software as a whole clearly includes other's components, so you have no right to dedicate the copyright to the running software as a whole into the public domain. In contrast, you're the copyright holder for all the code that you wrote yourself, and can therefore dedicate its copyright into the public domain.</p>
<p>You mention that your software relies on other components, but I don't think they would be a problem here.</p>
<ul>
<li>You are referencing Express, but you are arguably not creating a derived work from Express. If it is not a derived work, then the Express license is irrelevant. It would clearly be a derived work if you were to modify the Express software, or if you incorporate snippets of the Express code into your software. However, this can be argued differently as well, that by using the Express APIs in your code you are copying copyrightable aspects.</li>
<li>If the MIT license of Express would matter, it wouldn't be a problem since the MIT license does not impose any restrictions other than keeping the copyright and license notice of the original intact. The MIT license does not enforce that the components written by you use any particular license, or that they shall be covered by copyright at all.</li>
<li>The Typescript compiler is not part of your software. Your software is just data to the Typescript compiler. It is common to compile public-domain software with copyright-covered compilers, for example when compiling the public-domain SQLite database with the GPL-licensed GCC compiler.</li>
<li>If Apache license of the Typescript compiler were to apply, it would have generally similar consequences as the MIT license, though Apache-2.0 has more complex notice requirements.</li>
</ul>
<p>A note on NPM licenses: the metadata is not always fully correct. More importantly, the license metadata only relates to a particular package, not to the entire dependency tree. You must comply with the licenses of all your dependencies, even if they are just indirect dependencies. Similarly, if you were to upload your public domain code to NPM, this wouldn't imply that your Express dependency would now be public domain as well.</p>
<p>In summary, you probably can dedicate your own code into the public domain, if your jurisdiction recognizes this act. The CC0 instrument might be worth looking at, as it includes a public domain dedication (where possible), and an ultra-permissive fallback license if a public domain dedication is not possible. However, public domain dedications are not recommended for software since they only indicate the absence of copyright restrictions, but do not indicate a right to use the software. In particular, others might not be able to legally use the software if you hold relevant patents.</p>
