<feed xmlns='http://www.w3.org/2005/Atom'>
<title>spdxconv/spdxconv.go, branch main</title>
<subtitle>Program to convert existing licenses and copyrights into SPDX format.</subtitle>
<id>http://git.kilabit.info/spdxconv/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/spdxconv/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/'/>
<updated>2026-01-15T16:25:43Z</updated>
<entry>
<title>Release spdxconv v1.0.0 (2026-01-15)</title>
<updated>2026-01-15T16:25:43Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-15T16:23:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=89af20afc873e44a744af7be8e83730c2f24606d'/>
<id>urn:sha1:89af20afc873e44a744af7be8e83730c2f24606d</id>
<content type='text'>
spdxconv is a program to insert or convert existing licenses and copyrights
into SPDX formats.

This program works in tandem with [REUSE software](https://reuse.software).

Features:

- *REUSE Integration:* Detects annotations from `REUSE.toml`.
- *Customizable Defaults:* Set default license identifiers and copyright
  holders.
- *Smart Comments:* Customizable patterns to set comment syntax based on
  file names.
- *Regex Extraction:* Capture existing licenses, years, authors, and
  contact info using regex.
- *Git Integration:* Automatically derives the copyright year from the
  first commit in git history.
</content>
</entry>
<entry>
<title>spdxconv: set the SCM only during scan command, not on New</title>
<updated>2026-01-15T12:26:39Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-15T12:26:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=6b4b38ada45cd5b108ec6ecda680cb32d33542ea'/>
<id>urn:sha1:6b4b38ada45cd5b108ec6ecda680cb32d33542ea</id>
<content type='text'>
The Apply command does not require SCM, so no need to initialize it in
New.
</content>
</entry>
<entry>
<title>all: move checking REUSE annotation after all files listed</title>
<updated>2026-01-15T07:39:39Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-15T07:39:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=9be132113a261309f73aaddbb83af898a88db385'/>
<id>urn:sha1:9be132113a261309f73aaddbb83af898a88db385</id>
<content type='text'>
Use case: on the first scan, the file result in group unknown.
User then modify the spdxconv.cfg to add or update the match-file-pattern.
The next scan should check again the files in unknown group, in case
its match with updated config.
</content>
</entry>
<entry>
<title>all: add group "done" in the report</title>
<updated>2026-01-14T19:05:21Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-14T19:05:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=9a34a0e949a04c4b885314222e46c918a6f9f2dc'/>
<id>urn:sha1:9a34a0e949a04c4b885314222e46c918a6f9f2dc</id>
<content type='text'>
The done group contain list of file that has been processed.
File from group regular and binary that has been modified or added with
SPDX format will be moved to here.
</content>
</entry>
<entry>
<title>all: improve the scan by loading the existing report</title>
<updated>2026-01-14T18:44:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-14T18:44:47Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=d0cb81287185db0c0fb088da5c35004af315cd42'/>
<id>urn:sha1:d0cb81287185db0c0fb088da5c35004af315cd42</id>
<content type='text'>
In the second or next scan, load the existing spdxconv.report and check
if the file is already scanned before.
If the file is in group regular or binary, skip the scan; otherwise
re-scan it again.
</content>
</entry>
<entry>
<title>all: detect annotation from REUSE configuration</title>
<updated>2026-01-14T10:00:11Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-14T08:41:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=a6f72c549c43ae9d2d74946769221cb3431e9458'/>
<id>urn:sha1:a6f72c549c43ae9d2d74946769221cb3431e9458</id>
<content type='text'>
During scan, the program will read the REUSE.toml configuration.
File that is already annotated inside REUSE.toml will be ignored during
scan.
</content>
</entry>
<entry>
<title>all: get the copyright year from git history</title>
<updated>2026-01-13T21:10:44Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-13T14:08:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=a2bfa5ec9539f9063e33519e245ae00193783750'/>
<id>urn:sha1:a2bfa5ec9539f9063e33519e245ae00193783750</id>
<content type='text'>
If the line that match with pattern on match-copyright does not contains
year, or there is no match, try to get the year from the first commit of
the file using "git log --follow ..." command.

If no commit history or its not using git, use default copyright year from
configuration.
</content>
</entry>
<entry>
<title>spdxconv: remove unused apply method</title>
<updated>2026-01-12T18:51:26Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-12T18:49:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=e1a3b3b44a9daeee1aeac6fdea869a4e8458ec4a'/>
<id>urn:sha1:e1a3b3b44a9daeee1aeac6fdea869a4e8458ec4a</id>
<content type='text'>
This method has been replaced when we implement the new Apply function.
</content>
</entry>
<entry>
<title>all: implement match-file-comment for seting comment based on file name</title>
<updated>2026-01-12T14:22:24Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-12T13:22:20Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=1d6f8cfc60be1ada414ac1a9ce8eb6f61a527a0f'/>
<id>urn:sha1:1d6f8cfc60be1ada414ac1a9ce8eb6f61a527a0f</id>
<content type='text'>
The first thing that the program do is to detect which comment string to
be used when inserting SPDX identifiers in the file.

For each pattern in the "match-file-comment" section, the program will
match it with file name to get the comment prefix and suffix to be used
later.

User can add their own "match-file-comment" section as they like or modify
the existing one.

The "match-file-comment" can have empty prefix and suffix.
That means, if the file name match, it will create new file with
".license" suffix that contains SPDX identifiers only, instead of
inserting to the file.
</content>
</entry>
<entry>
<title>all: ignore symlink, COPYING, LICENSE, and LICENSES</title>
<updated>2026-01-11T14:36:20Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-11T13:36:38Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/spdxconv/commit/?id=e5daeb13cbd446a4fe882fb722d8d3359dd9bef9'/>
<id>urn:sha1:e5daeb13cbd446a4fe882fb722d8d3359dd9bef9</id>
<content type='text'>
For symlink, we ignore for now.

COPYING, LICENSE, and LICENSES are common files part of SPDX/reuse
specifications.

While at it, fix checking if path is ignored by git by passing the
relative path instead of base name.
</content>
</entry>
</feed>
