aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore16
-rw-r--r--.reuse/dep56
-rw-r--r--COPYING2
-rw-r--r--LICENSES/0BSD.txt2
-rw-r--r--[l---------]LICENSES/ISC.txt14
-rw-r--r--NEWS4
-rw-r--r--doc/conf.py.in4
-rw-r--r--doc/man/serdi.14
-rw-r--r--meson.build2
-rw-r--r--src/serd_config.h2
-rw-r--r--subprojects/sphinxygen.wrap12
-rw-r--r--test/lint/meson.build133
-rw-r--r--test/meson.build129
13 files changed, 175 insertions, 155 deletions
diff --git a/.gitignore b/.gitignore
index eeeeac8c..e73e7aaf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,11 @@
-# Copyright 2017-2023 David Robillard <d@drobilla.net>
+# Copyright 2017-2025 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC
-.meson-subproject-wrap-hash.txt
-__pycache__
-build/
-subprojects/packagecache/
-subprojects/sphinxygen-1.0.4/
-subprojects/sphinxygen/
+/.meson-subproject-wrap-hash.txt
+/build/
+/subprojects/packagecache/
+/subprojects/sphinxygen-1.0.10/
+/subprojects/sphinxygen/
+
+*.pyc
+__pycache__/
diff --git a/.reuse/dep5 b/.reuse/dep5
index 78dc2af5..965881f7 100644
--- a/.reuse/dep5
+++ b/.reuse/dep5
@@ -14,17 +14,17 @@ Comment: Standard test suites from the W3C
License: BSD-3-Clause
Files: test/extra/*
-Copyright: 2011-2023 David Robillard <d@drobilla.net>
+Copyright: 2011-2024 David Robillard <d@drobilla.net>
Comment: Extra test suites for serd
License: BSD-3-Clause OR ISC
Files: AUTHORS NEWS serd.ttl
-Copyright: 2011-2023 David Robillard <d@drobilla.net>
+Copyright: 2011-2025 David Robillard <d@drobilla.net>
Comment: Contributed to the Commons as a representation of simple facts
License: 0BSD OR ISC
Files: doc/.stylelintrc.json
-Copyright: 2022 David Robillard <d@drobilla.net>
+Copyright: 2022-2024 David Robillard <d@drobilla.net>
Comment: Contributed to the Commons as a tool configuration
License: 0BSD OR ISC
diff --git a/COPYING b/COPYING
index 78df83ba..d16d277c 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright 2011-2023 David Robillard <d@drobilla.net>
+Copyright 2011-2025 David Robillard <d@drobilla.net>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt
index c338c71a..f33ca7b4 100644
--- a/LICENSES/0BSD.txt
+++ b/LICENSES/0BSD.txt
@@ -1,4 +1,4 @@
-Copyright 2011-2023 David Robillard <d@drobilla.net>
+Copyright 2011-2025 David Robillard <d@drobilla.net>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
diff --git a/LICENSES/ISC.txt b/LICENSES/ISC.txt
index 012065c8..d16d277c 120000..100644
--- a/LICENSES/ISC.txt
+++ b/LICENSES/ISC.txt
@@ -1 +1,13 @@
-../COPYING \ No newline at end of file
+Copyright 2011-2025 David Robillard <d@drobilla.net>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/NEWS b/NEWS
index 8ccb7568..09b4dc94 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-serd (0.32.3) unstable; urgency=medium
+serd (0.32.4) stable; urgency=medium
* Clean up enum declarations
* Fix library current_version on MacOS
@@ -13,7 +13,7 @@ serd (0.32.3) unstable; urgency=medium
* Treat out of range unicode characters as errors
* Write blank lines between graphs and statements in TriG
- -- David Robillard <d@drobilla.net> Sat, 03 Aug 2024 15:50:39 +0000
+ -- David Robillard <d@drobilla.net> Sun, 19 Jan 2025 00:17:58 +0000
serd (0.32.2) stable; urgency=medium
diff --git a/doc/conf.py.in b/doc/conf.py.in
index 5037d217..77a7752b 100644
--- a/doc/conf.py.in
+++ b/doc/conf.py.in
@@ -1,10 +1,10 @@
-# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# Copyright 2020-2025 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: ISC
# Project information
project = "@SERD_TITLE@"
-copyright = "2022-2023, David Robillard"
+copyright = "2022-2025, David Robillard"
author = "David Robillard"
release = "@SERD_VERSION@"
version = "@SERD_VERSION@"
diff --git a/doc/man/serdi.1 b/doc/man/serdi.1
index ef710527..16d05c50 100644
--- a/doc/man/serdi.1
+++ b/doc/man/serdi.1
@@ -1,8 +1,8 @@
.\" Copyright 2011-2024 David Robillard <d@drobilla.net>
.\" SPDX-License-Identifier: ISC
-.Dd April 30, 2023
+.Dd January 18, 2025
.Dt SERDI 1
-.Os Serd 0.32.2
+.Os Serd 0.32.4
.Sh NAME
.Nm serdi
.Nd read and write RDF syntax
diff --git a/meson.build b/meson.build
index f674bfa4..e19693a8 100644
--- a/meson.build
+++ b/meson.build
@@ -12,7 +12,7 @@ project(
],
license: 'ISC',
meson_version: '>= 0.56.0',
- version: '0.32.3',
+ version: '0.32.4',
)
serd_src_root = meson.current_source_dir()
diff --git a/src/serd_config.h b/src/serd_config.h
index 150ffb81..cb356e40 100644
--- a/src/serd_config.h
+++ b/src/serd_config.h
@@ -36,7 +36,7 @@
#define SERD_SRC_SERD_CONFIG_H
// Define version unconditionally so a warning will catch a mismatch
-#define SERD_VERSION "0.32.3"
+#define SERD_VERSION "0.32.4"
#if !defined(SERD_NO_DEFAULT_CONFIG)
diff --git a/subprojects/sphinxygen.wrap b/subprojects/sphinxygen.wrap
index 9707d1a6..898ee526 100644
--- a/subprojects/sphinxygen.wrap
+++ b/subprojects/sphinxygen.wrap
@@ -1,14 +1,14 @@
-# Copyright 2022-2023 David Robillard <d@drobilla.net>
+# Copyright 2022-2025 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC
[wrap-file]
-directory = sphinxygen-1.0.4
-source_url = https://download.drobilla.net/sphinxygen-1.0.4.tar.gz
-source_filename = sphinxygen-1.0.4.tar.gz
-source_hash = 12fa9f18ed9fca608f272520072257ba61fd9eff25613f86d83d4fce14fc01f5
+directory = sphinxygen-1.0.10
+source_url = https://download.drobilla.net/sphinxygen-1.0.10.tar.gz
+source_filename = sphinxygen-1.0.10.tar.gz
+source_hash = 4b5eeb1ff47d43ee1ddae9327c2b49bab1e49363538c569bc544705284f3695d
# [wrap-git]
# url = https://gitlab.com/drobilla/sphinxygen.git
# push-url = ssh://git@gitlab.com:drobilla/sphinxygen.git
-# revision = v1.0.4
+# revision = v1.0.10
# depth = 1
diff --git a/test/lint/meson.build b/test/lint/meson.build
new file mode 100644
index 00000000..7e024cb5
--- /dev/null
+++ b/test/lint/meson.build
@@ -0,0 +1,133 @@
+# Copyright 2020-2023 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+plot_script_paths = [
+ '../../scripts/serd_bench.py',
+]
+
+simple_script_paths = [
+ '../../scripts/check_formatting.py',
+ '../serd_test_util/__init__.py',
+ '../run_suite.py',
+ '../test_quiet.py',
+ '../test_stdin.py',
+ '../test_write_error.py',
+]
+
+ttl_metadata_file_paths = [
+ '../../serd.ttl',
+ '../extra/abbreviate/manifest.ttl',
+ '../extra/bad/manifest.ttl',
+ '../extra/big/manifest.ttl',
+ '../extra/full/manifest.ttl',
+ '../extra/good/manifest.ttl',
+ '../extra/lax/manifest.ttl',
+ '../extra/perfect/manifest.ttl',
+ '../extra/prefix/manifest.ttl',
+ '../extra/pretty/manifest.ttl',
+ '../extra/qualify/manifest.ttl',
+ '../extra/root/manifest.ttl',
+]
+
+plot_scripts = files(plot_script_paths)
+simple_scripts = files(simple_script_paths)
+python_script_paths = simple_script_paths + plot_script_paths
+python_scripts = plot_scripts + simple_scripts
+
+all_sources = sources + unit_test_sources + files('../../src/serdi.c')
+
+# Check licensing metadata
+reuse = find_program('reuse', required: false)
+if reuse.found()
+ test(
+ 'REUSE',
+ reuse,
+ args: ['--root', serd_src_root, 'lint'],
+ suite: 'data',
+ )
+endif
+
+# Check code formatting
+clang_format = find_program('clang-format', required: false)
+if clang_format.found()
+ test(
+ 'format',
+ clang_format,
+ args: ['--Werror', '--dry-run'] + c_headers + all_sources,
+ suite: 'code',
+ )
+endif
+
+# Check script formatting
+black = find_program('black', required: false)
+if black.found()
+ black_opts = ['--check', '-q', '-l', '79']
+ foreach script_path : python_script_paths
+ script = files(script_path)
+ name = script_path.substring(3).underscorify()
+ test(name, black, args: black_opts + [script], suite: 'scripts')
+ endforeach
+endif
+
+# Check scripts for errors with flake8
+flake8 = find_program('flake8', required: false)
+if flake8.found()
+ test('flake8', flake8, args: python_scripts, suite: 'scripts')
+endif
+
+# Check scripts for errors with pylint
+pylint = find_program('pylint', required: false)
+if pylint.found()
+ pymod = import('python')
+ plot_py = pymod.find_installation(
+ 'python3',
+ modules: ['matplotlib'],
+ required: false,
+ )
+
+ pylint_args = ['--disable', 'bad-option-value'] + simple_scripts
+ if plot_py.found()
+ pylint_args += plot_scripts
+ endif
+
+ test('pylint', pylint, args: pylint_args, suite: 'scripts')
+endif
+
+# Check Turtle formatting with serdi
+if is_variable('serdi')
+ foreach ttl_file_path : ttl_metadata_file_paths
+ test(
+ ttl_file_path.substring(3).underscorify(),
+ check_formatting_py,
+ args: [files(ttl_file_path), serdi, '-o', 'turtle'],
+ suite: 'data',
+ )
+ endforeach
+endif
+
+if not meson.is_subproject()
+ # Check release metadata
+ autoship = find_program('autoship', required: false)
+ if autoship.found()
+ test('autoship', autoship, args: ['test', serd_src_root], suite: 'data')
+ endif
+
+ # Check code with cppcheck
+ cppcheck = find_program('cppcheck', required: false)
+ if cppcheck.found()
+ compdb_path = join_paths(serd_build_root, 'compile_commands.json')
+ suppress_path = join_paths(serd_src_root, '.suppress.cppcheck')
+ test(
+ 'cppcheck',
+ cppcheck,
+ args: [
+ '--enable=warning,style,performance,portability',
+ '--error-exitcode=1',
+ '--project=' + compdb_path,
+ '--suppressions-list=' + suppress_path,
+ '-q',
+ ],
+ suite: 'code',
+ )
+ endif
+endif
diff --git a/test/meson.build b/test/meson.build
index 4d770304..889d6fae 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -298,133 +298,6 @@ endif
# Lint #
########
-plot_script_paths = [
- '../scripts/serd_bench.py',
-]
-
-simple_script_paths = [
- '../scripts/check_formatting.py',
- 'serd_test_util/__init__.py',
- 'run_suite.py',
- 'test_quiet.py',
- 'test_stdin.py',
- 'test_write_error.py',
-]
-
-ttl_metadata_file_paths = [
- '../serd.ttl',
- 'extra/abbreviate/manifest.ttl',
- 'extra/bad/manifest.ttl',
- 'extra/big/manifest.ttl',
- 'extra/full/manifest.ttl',
- 'extra/good/manifest.ttl',
- 'extra/lax/manifest.ttl',
- 'extra/perfect/manifest.ttl',
- 'extra/prefix/manifest.ttl',
- 'extra/pretty/manifest.ttl',
- 'extra/qualify/manifest.ttl',
- 'extra/root/manifest.ttl',
-]
-
-plot_scripts = files(plot_script_paths)
-simple_scripts = files(simple_script_paths)
-python_script_paths = simple_script_paths + plot_script_paths
-python_scripts = plot_scripts + simple_scripts
-
if get_option('lint')
- all_sources = sources + unit_test_sources + files('../src/serdi.c')
-
- if not meson.is_subproject()
- # Check release metadata
- autoship = find_program('autoship', required: false)
- if autoship.found()
- test('autoship', autoship, args: ['test', serd_src_root], suite: 'data')
- endif
-
- # Check code with cppcheck
- cppcheck = find_program('cppcheck', required: false)
- if cppcheck.found()
- compdb_path = join_paths(serd_build_root, 'compile_commands.json')
- suppress_path = join_paths(serd_src_root, '.suppress.cppcheck')
- test(
- 'cppcheck',
- cppcheck,
- args: [
- '--enable=warning,style,performance,portability',
- '--error-exitcode=1',
- '--project=' + compdb_path,
- '--suppressions-list=' + suppress_path,
- '-q',
- ],
- suite: 'code',
- )
- endif
- endif
-
- # Check licensing metadata
- reuse = find_program('reuse', required: false)
- if reuse.found()
- test(
- 'REUSE',
- reuse,
- args: ['--root', serd_src_root, 'lint'],
- suite: 'data',
- )
- endif
-
- # Check code formatting
- clang_format = find_program('clang-format', required: false)
- if clang_format.found()
- test(
- 'format',
- clang_format,
- args: ['--Werror', '--dry-run'] + c_headers + all_sources,
- suite: 'code',
- )
- endif
-
- # Check script formatting
- black = find_program('black', required: false)
- if black.found()
- black_opts = ['--check', '-q', '-l', '79']
- foreach script_path : python_script_paths
- script = files(script_path)
- name = script_path.underscorify()
- test(name, black, args: black_opts + [script], suite: 'scripts')
- endforeach
- endif
-
- # Check scripts for errors with flake8
- flake8 = find_program('flake8', required: false)
- if flake8.found()
- test('flake8', flake8, args: python_scripts, suite: 'scripts')
- endif
-
- # Check scripts for errors with pylint
- pylint = find_program('pylint', required: false)
- if pylint.found()
- pymod = import('python')
- plot_py = pymod.find_installation(
- 'python3',
- modules: ['matplotlib'],
- required: false,
- )
-
- pylint_args = ['--disable', 'bad-option-value'] + simple_scripts
- if plot_py.found()
- pylint_args += plot_scripts
- endif
-
- test('pylint', pylint, args: pylint_args, suite: 'scripts')
- endif
-
- # Check Turtle formatting with serdi
- foreach ttl_file_path : ttl_metadata_file_paths
- test(
- ttl_file_path.underscorify(),
- check_formatting_py,
- args: [files(ttl_file_path), serdi, '-o', 'turtle'],
- suite: 'data',
- )
- endforeach
+ subdir('lint')
endif