Brussels / 1 & 2 February 2025

schedule

Persistent Copyright & Licensing Information in Client-side JS, CSS &sim. (proposal)


License information in source code is best stored in each file of the source code as a comment, if at all possible. That way the license metadata travels with the file even if it was copied from its original package/repository into a different one.

Client-side JavaScript, CSS and similar languages that make up a large chunk of the web are often concatenated, minified and even uglified in an attempt to make the website faster to load. In this process, most often, the comments get culled the first to reduce the number of characters that serve no function to the program code itself.

The problem therefore is that typically when JavaScript, CSS (or similar client-side code) is being built, it tends to lose not just comments that describe the code’s functionality, but also comments that carry licensing and copyright information. And since licenses (FOSS or not) typically require the text of the license and copyright notices to be kept with the code, such removal can be problematic.

A few months ago I proposed a way to preserve SPDX tags even in minified code. This proposal relies solely on commonly used tooling and existing wide-spread standards/specs (SPDX and REUSE), but applies the SPDX-Snippet-* tags in an inventive way to achieve this.

In this talk I will briefly present that proposal, followed by the feedback I received up until FOSDEM, and – most importantly – a hopefully lively discussion to come up with a much better proposal.

The ultimate goal is to finally figure out how to make the client-side web JS/CSS easy to reuse and ship in a license-compliant way. Ideally with relying on commonly used tools and specs, unchanged.

Speakers

Photo of Matija Šuklje Matija Šuklje