diff options
-rw-r--r-- | .gitignore | 16 | ||||
-rw-r--r-- | .reuse/dep5 | 6 | ||||
-rw-r--r-- | COPYING | 2 | ||||
-rw-r--r-- | LICENSES/0BSD.txt | 2 | ||||
-rw-r--r--[l---------] | LICENSES/ISC.txt | 14 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | doc/conf.py.in | 4 | ||||
-rw-r--r-- | doc/man/serdi.1 | 4 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | src/serd_config.h | 2 | ||||
-rw-r--r-- | subprojects/sphinxygen.wrap | 12 | ||||
-rw-r--r-- | test/lint/meson.build | 133 | ||||
-rw-r--r-- | test/meson.build | 129 |
13 files changed, 175 insertions, 155 deletions
@@ -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 @@ -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. @@ -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 |