Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7b8c5b7
Add RockspecHandler base and parser
SLASH217 Feb 13, 2026
51a7122
Implement parser logic in handler
SLASH217 Feb 13, 2026
9a71b2c
Add unit tests for RockspecHandler
SLASH217 Feb 13, 2026
8cdc7b5
Integrate RockspecHandler into __init__
SLASH217 Feb 13, 2026
74d7aae
Fix dead documentation links
SLASH217 Feb 13, 2026
3827242
Fix luaparser version specifier #3526
SLASH217 Feb 13, 2026
b152816
Add LuaRocks rockspec package handler to plugins list.
SLASH217 Feb 14, 2026
97b695b
Fix auto-formatter changes in .txt file
SLASH217 Feb 14, 2026
2dcab3c
Fix auto-formatter changes in .txt file
SLASH217 Feb 14, 2026
151b5e5
Fix updated docstrings to be clear and concise.
SLASH217 Feb 20, 2026
ef39a82
Add todo for parsing build table.
SLASH217 Feb 20, 2026
ceef804
Add test file source links.
SLASH217 Feb 20, 2026
7cd1b46
Fix remove unparsed modules from test files
SLASH217 Feb 20, 2026
4eeb9e6
Add transitive dependencies of luaparser
SLASH217 Feb 20, 2026
08717b3
Fix unpin luaparser dependency
SLASH217 Feb 20, 2026
afc3799
Fix tests to follow scancode format
SLASH217 Feb 20, 2026
2a447a2
Fix auto-formatter changes in .txt file
SLASH217 Feb 20, 2026
df09c77
Fix plugins_list for formatter mistakes
SLASH217 Feb 21, 2026
57bf647
Missed one /n causing the ci/cd to fail
SLASH217 Feb 21, 2026
20ecc8d
Removed old test files and expected JSONs
SLASH217 Jun 1, 2026
9886860
Updated test files to be package names and regenerated expected JSON.
SLASH217 Jun 1, 2026
9637987
Updated rockspec parser to parse detailed descriptions and not includ…
SLASH217 Jun 1, 2026
d89ac45
Updated rockspec test file to remove redundant test and update file n…
SLASH217 Jun 1, 2026
b9be3b5
Add luaparser to pyproject.toml dependencies to fix CI/CD failure
SLASH217 Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ template. Your help and contribution make ScanCode docs better, we love hearing

The ScanCode documentation is hosted at `scancode-toolkit.readthedocs.io <https://scancode-toolkit.readthedocs.io/en/latest/>`_.

If you want to contribute to Scancode Documentation, you'll find `this guide here https://scancode-toolkit.readthedocs.io/en/latest/getting-started/contribute/contributing-docs.html`_ helpful.
If you want to contribute to Scancode Documentation, you'll find `this guide here <https://scancode-toolkit.readthedocs.io/en/latest/getting-started/contribute/contributing-docs.html>`_ helpful.

Development
===========
Expand Down Expand Up @@ -123,7 +123,7 @@ To set up ScanCode for local development:

git checkout -b name-of-your-bugfix-or-feature

4. Check out the Contributing to Code Development `documentation <https://scancode-toolkit.readthedocs.io/en/stable/contribute/contrib_dev.html>`_, as it contains more in-depth guide for contributing code and documentation.
Comment thread
SLASH217 marked this conversation as resolved.
4. Check out the Contributing to Code Development `documentation <https://scancode-toolkit.readthedocs.io/en/latest/getting-started/contribute/contributing-docs.html>`_, as it contains more in-depth guide for contributing code and documentation.

5. To configure your local environment for development, locate to the main
directory of the local repository, and run the configure script.
Expand Down
1 change: 1 addition & 0 deletions pyproject-scancode-toolkit-mini.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ dependencies = [
"jsonstreams >= 0.5.0",
"license_expression >= 30.4.4",
"lxml >= 5.4.0",
"luaparser >= 4.0.0",
"MarkupSafe >= 2.1.2",
"multiregex >= 2.0.3",
"normality <= 2.6.1",
Expand Down
1 change: 1 addition & 0 deletions pyproject-scancode-toolkit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ dependencies = [
"jsonstreams >= 0.5.0",
"license_expression >= 30.4.4",
"lxml >= 5.4.0",
"luaparser >= 4.0.0",
"MarkupSafe >= 2.1.2",
"multiregex >= 2.0.3",
"normality <= 2.6.1",
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ dependencies = [
"jsonstreams >= 0.5.0",
"license_expression >= 30.4.4",
"lxml >= 5.4.0",
"luaparser >= 4.0.0",
"MarkupSafe >= 2.1.2",
"multiregex >= 2.0.3",
"normality <= 2.6.1",
Expand Down
3 changes: 3 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
antlr4-python3-runtime == 4.13.2
attrs==25.4.0
babel==2.17.0
banal==1.0.6
Expand Down Expand Up @@ -42,8 +43,10 @@ jsonstreams==0.6.0
keyring==23.7.0
license-expression==30.4.4
lxml==6.1.0
luaparser==4.0.0
Comment thread
AyanSinhaMahapatra marked this conversation as resolved.
MarkupSafe==3.0.3
more-itertools==10.8.0
multimethod==2.0.2
Comment thread
SLASH217 marked this conversation as resolved.
multiregex==2.0.3
normality==2.6.1
openpyxl==3.0.10
Expand Down
240 changes: 240 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
[metadata]
name = scancode-toolkit
version = 32.5.0
license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft

# description must be on ONE line https://github.com/pypa/setuptools/issues/1390
description = ScanCode is a tool to scan code for license, copyright, package and their documented dependencies and other interesting facts.
long_description = file:README.rst
long_description_content_type = text/x-rst
url = https://github.com/aboutcode-org/scancode-toolkit

author = nexB. Inc. and others
author_email = info@aboutcode.org

classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Programming Language :: Python :: 3
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3.14
Topic :: Software Development
Topic :: Utilities

keywords =
open source
scan
license
package
dependency
copyright
filetype
author
extract
licensing
scan
sca
SBOM
spdx
cyclonedx

license_files =
apache-2.0.LICENSE
NOTICE
AUTHORS.rst
CHANGELOG.rst
CODE_OF_CONDUCT.rst
cc-by-4.0.LICENSE
README.rst

[options]
python_requires = >=3.10

package_dir =
=src
packages = find:
include_package_data = true
zip_safe = false

py_modules =
scancode_config


install_requires =
attrs >= 18.1,!=20.1.0;python_version<'3.11'
attrs >= 22.1.0;python_version>='3.11'
Beautifulsoup4[chardet] >= 4.13.0
boolean.py >= 4.0
chardet >= 3.0.0
click >= 6.7, !=7.0, !=8.1.8;python_version<'3.10'
click >= 8.2.0;python_version>='3.10'
colorama >= 0.3.9
commoncode >= 32.4.2
container-inspector >= 31.0.0
cyseq >= 0.1.2
debian-inspector >= 31.1.0
dparse2 >= 0.7.0
fasteners
fingerprints >= 0.6.0, <=1.2.3
ftfy >= 6.0.0
gemfileparser2 >= 0.9.0
html5lib
importlib_metadata
intbitset >= 4.1.0
jaraco.functools
javaproperties >= 0.5
jinja2 >= 2.7.0
jsonstreams >= 0.5.0
license_expression >= 30.4.4
lxml >= 5.4.0
luaparser >= 4.0.0
MarkupSafe >= 2.1.2
multiregex >= 2.0.3
normality <= 2.6.1
packageurl_python >= 0.9.0
packvers >= 21.0.0
# use temp advanced patched release
parameter-expansion-patched >= 0.3.1
pdfminer.six >= 20251227
pefile >= 2020.1.1
pkginfo2 >= 30.0.0
pip-requirements-parser >= 32.0.1
pluggy >= 1.0.0
plugincode >= 32.0.0
publicsuffix2
pyahocorasick >= 2.3.0
pygmars >= 1.0.0
pygments
pymaven_patch >= 0.2.8
requests >= 2.7.0
saneyaml >= 0.6.0
spdx_tools == 0.8.2
text_unidecode >= 1.0
tomli >= 2; python_version < "3.11"
urlpy
xmltodict >= 0.11.0
typecode >= 30.1.0
typecode[full] >= 30.1.0
extractcode[full] >= 31.0.0


[options.packages.find]
where = src


[options.extras_require]
full =
typecode[full] >= 30.1.0
extractcode[full] >= 31.0.0

dev =
pytest >= 6, != 7.0.0
pytest-xdist >= 2
aboutcode-toolkit >= 7.0.2
twine
black
isort
vendorize >= 0.3.0
pytest-rerunfailures
ruff
Sphinx>=5.0.2
sphinx-rtd-theme>=1.0.0
sphinx-reredirects >= 0.1.2
doc8 >= 0.8.1
sphinx-autobuild
sphinx-rtd-dark-mode>=1.3.0
sphinx-copybutton

# linux-only package handling
packages =
rpm_inspector_rpm >= 4.16.1.3; platform_system == 'Linux'
regipy >= 3.1.0; platform_system == 'Linux'
packagedcode_msitools >= 0.101.210706; platform_system == 'Linux'
go-inspector >= 0.5.0; platform_system == 'Linux'
rust-inspector >= 0.2.1; platform_system == 'Linux'

[options.entry_points]
console_scripts =
scancode = scancode.cli:scancode
scancode-reindex-licenses = licensedcode.reindex:reindex_licenses
scancode-reindex-package-patterns = packagedcode.cache:cache_package_patterns
scancode-license-data = licensedcode.license_db:dump_scancode_license_data
regen-package-docs = packagedcode.regen_package_docs:regen_package_docs
add-required-phrases = licensedcode.required_phrases:add_required_phrases
gen-new-required-phrases-rules = licensedcode.required_phrases:gen_required_phrases_rules
scancode-train-gibberish-model = textcode.train_gibberish_model:train_gibberish_model

# These are configurations for ScanCode plugins as setuptools entry points.
# Each plugin entry hast this form:
# plugin-name = fully.qualified.module:PluginClass
# where plugin-name must be a unique arbitrary name for this entrypoint.

# scancode_pre_scan is the entry point for pre_scan plugins executed before the
# scans. See also plugincode.pre_scan module for details and doc.
scancode_pre_scan =
ignore = scancode.plugin_ignore:ProcessIgnore
facet = summarycode.facet:AddFacet


# scancode_scan is the entry point for scan plugins that run a scan after the
# pre_scan plugins and before the post_scan plugins. See also plugincode.scan
# module for details and doc.
scancode_scan =
info = scancode.plugin_info:InfoScanner
licenses = licensedcode.plugin_license:LicenseScanner
copyrights = cluecode.plugin_copyright:CopyrightScanner
packages = packagedcode.plugin_package:PackageScanner
emails = cluecode.plugin_email:EmailScanner
urls = cluecode.plugin_url:UrlScanner
generated = summarycode.generated:GeneratedCodeDetector


# scancode_post_scan is the entry point for post_scan plugins executed after the
# scan plugins and before the output plugins. See also plugincode.post_scan
# module for details and doc.
scancode_post_scan =
summary = summarycode.summarizer:ScanSummary
tallies = summarycode.tallies:Tallies
tallies-with-details = summarycode.tallies:TalliesWithDetails
tallies-key-files = summarycode.tallies:KeyFilesTallies
tallies-by-facet = summarycode.tallies:FacetTallies
license-clarity-score = summarycode.score:LicenseClarityScore
license-policy = licensedcode.plugin_license_policy:LicensePolicy
mark-source = scancode.plugin_mark_source:MarkSource
filter-clues = cluecode.plugin_filter_clues:RedundantCluesFilter
consolidate = summarycode.plugin_consolidate:Consolidator
license-references = licensedcode.licenses_reference:LicenseReference
todo = summarycode.todo:AmbiguousDetectionsToDoPlugin
classify = summarycode.classify_plugin:FileClassifier


# scancode_output_filter is the entry point for filter plugins executed after
# the post-scan plugins and used by the output plugins to exclude/filter certain
# files or directories from the codebase. See also plugincode.post_scan module
# for details and doc.
scancode_output_filter =
only-findings = scancode.plugin_only_findings:OnlyFindings
ignore-copyrights = cluecode.plugin_ignore_copyrights:IgnoreCopyrights


# scancode_output is the entry point for output plugins that write a scan output
# in a given format at the end of a scan. See also plugincode._output module for
# details and doc.
scancode_output =
html = formattedcode.output_html:HtmlOutput
html-app = formattedcode.output_html:HtmlAppOutput
json = formattedcode.output_json:JsonCompactOutput
json-pp = formattedcode.output_json:JsonPrettyOutput
spdx-tv = formattedcode.output_spdx:SpdxTvOutput
spdx-rdf = formattedcode.output_spdx:SpdxRdfOutput
csv = formattedcode.output_csv:CsvOutput
jsonlines = formattedcode.output_jsonlines:JsonLinesOutput
template = formattedcode.output_html:CustomTemplateOutput
debian = formattedcode.output_debian:DebianCopyrightOutput
yaml = formattedcode.output_yaml:YamlOutput
cyclonedx = formattedcode.output_cyclonedx:CycloneDxJsonOutput
cyclonedx-xml = formattedcode.output_cyclonedx:CycloneDxXmlOutput
3 changes: 3 additions & 0 deletions src/packagedcode/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from packagedcode import pubspec
from packagedcode import pypi
from packagedcode import readme
from packagedcode import rockspec
from packagedcode import rpm
from packagedcode import rubygems
from packagedcode import swift
Expand Down Expand Up @@ -204,6 +205,8 @@
rubygems.GemspecInExtractedGemHandler,
rubygems.GemspecHandler,

rockspec.RockspecHandler,

swift.SwiftManifestJsonHandler,
swift.SwiftPackageResolvedHandler,
swift.SwiftShowDependenciesDepLockHandler,
Expand Down
Loading