org.cicirello.core
Overview
The Java module org.cicirello.core provides some of the core utilities and data structures used in several of our other libraries and projects, including but not limited to Chips-n-Salsa and JavaPermutationTools, as well as various applications that use those libraries.
The source code repository is hosted on GitHub; and is licensed under the GNU General Public License Version 3 (GPLv3). The API documentation is found on this site. The module is regularly published to Maven Central, from which it is easily imported into software projects using Maven and other commonly used build tools.
The org.cicirello.core module originated as part of the research of Vincent A. Cicirello.
Importing from Maven Central
To import org.cicirello.core from the Maven Central repository (if your build tool is Maven), add the following to the dependencies section of your “pom.xml” (for other build tools, see your build tool's documentation for the equivalent):
<dependency>
<groupId>org.cicirello</groupId>
<artifactId>core</artifactId>
<version>x.y.z</version>
</dependency>
Just replace x.y.z
with your desired version of the library.
Java Modules
To use the org.cicirello.core module in your project, add the following to your module-info.java:
module your.module.name.here {
requires org.cicirello.core;
}
Semantic Versioning
We use Semantic Versioning with version numbers of the form: MAJOR.MINOR.PATCH, where differences in MAJOR correspond to incompatible API changes, differences in MINOR correspond to introduction of backwards compatible new functionality, and PATCH corresponds to backwards compatible bug fixes.
Development Process
To maintain a high quality library, our development process utilizes the following:- Test Coverage: We require unit tests for all functionality. We generate JaCoCo test coverage reports on all push and pull-request events to the source code repository. Although we don't have a strict minimum coverage for acceptance, coverage is quite often at or near 100%. Current coverage is reported in the readme of the GitHub repository (updated automatically).
- Regression Testing: All new and existing tests are executed as part of all pull requests, and all must pass for acceptance.
- Static Analysis: We use multiple static analysis tools to scan for potential vulnerabilities, error prone code, and other potential code improvements. At the present time, this includes running:
Dependent Libraries
The following libraries depend upon org.cicirello.core
.