feat!: modularize stemmer models and release infrastructure

Move bundled stemmer dictionaries from the core artifact into independently
versioned model modules. Add model discovery and explicit model-loading APIs,
a standard model aggregate, a model BOM, and dedicated model and catalog
release workflows.

Add full PoliMorf integration, model provenance and licensing validation,
streaming model-input verification, strict dependency verification, consumer
resolution tests, Configuration Cache compatibility, and expanded JMH,
quality, documentation, and release checks.

Upgrade the CycloneDX and JMH Gradle plugins and remove Gradle 10 and Java
compiler deprecations.

BREAKING CHANGE: The core Radixor artifact no longer contains bundled stemmer
dictionaries. Applications must add the required model artifacts, the standard
model aggregate, or model dependencies managed through the Radixor model BOM.
This commit is contained in:
2026-07-22 23:33:28 +02:00
parent 9c5b9e331b
commit e7800b29c9
250 changed files with 7297 additions and 905 deletions

View File

@@ -0,0 +1,27 @@
plugins {
id 'org.egothor.radixor.model'
}
radixorModel {
modelId = 'pl-pl-polimorf'
language = 'PL_PL'
displayName = 'Polish — PoliMorf 2.1'
defaultModel = false
sourceName = 'PoliMorf 2.1'
sourceVersion = '2.1'
sourceRevision = '6e63b53'
sourceProject = 'Morfologik'
sourceRepository = 'https://github.com/morfologik/morfologik-stemming'
sourceDataset = 'PoliMorf 2.1 from org.carrot2:morfologik-polish:2.1.9'
sourceRevisionStatus = 'recorded'
sourceLicense = 'BSD-2-Clause'
sourceLicenseUri = 'https://spdx.org/licenses/BSD-2-Clause.html'
sourceAttribution = 'Copyright (c) 2016, Marcin Miłkowski'
sourceVerificationDate = '2026-07-22'
transformationsSummary = 'Decoding the compiled FSA dictionary, grouping inflected forms by lemma, removing morphosyntactic tags, exact duplicate removal, deterministic sorting, reformatting into Radixor dictionary groups, GZip packaging, and generation of runtime descriptor and checksum metadata'
licenseFileName = 'LICENSE-BSD-2-Clause.txt'
}
tasks.named('validateModelRelease') {
dependsOn(rootProject.tasks.named('runtimeModelIntegrationTest'))
}

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1,38 @@
Upstream artifact: org.carrot2:morfologik-polish:2.1.9
Dictionary: PoliMorf 2.1
Upstream build date: 2016-02-13
Upstream dictionary revision: 6e63b53
Changes in this version: decoding of the compiled FSA dictionary,
grouping of inflected forms by lemma, removal of morphosyntactic tags,
exact duplicate removal, deterministic sorting, and conversion to the
Radixor tab-separated dictionary format.
Modifications copyright (c) 2026 Leo Galambos.
SPDX-License-Identifier: BSD-2-Clause
Copyright (c) 2016, Marcin Miłkowski
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Binary file not shown.