You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+57-15Lines changed: 57 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ Copyright (C) 2018-2021 [Vincent A. Cicirello](https://www.cicirello.org/).
7
7
8
8
Website: https://jpt.cicirello.org/
9
9
10
+
API documentation: https://jpt.cicirello.org/api
11
+
10
12
|__Publications About the Library__|[](https://doi.org/10.21105/joss.00950)|
11
13
| :--- | :--- |
12
14
|__Packages and Releases__|[](https://search.maven.org/artifact/org.cicirello/jpt)[](https://github.com/cicirello/JavaPermutationTools/releases)|
@@ -29,16 +31,13 @@ computation on permutations and sequences. It includes implementations of a vari
29
31
of permutation distance metrics as well as distance metrics on sequences (i.e., Strings,
30
32
arrays, and other ordered data types).
31
33
32
-
## Repository Organization
33
-
34
-
The GitHub repository is organized as follows:
35
-
* The [/src](src) directory contains all of the source code for JavaPermutationTools.
36
-
* The [/tests](tests) directory contains JUnit test cases for all functionality of the library.
37
-
* The [/docs](docs) directory contains the javadoc documentation in a sub-directory /docs/api. The /docs directory is also the location of the website for the project hosted via GitHub pages at https://jpt.cicirello.org/.
34
+
## Java 11+
38
35
39
-
## Java 8
36
+
Beginning with version 3.0.0, the library supports Java 11+. Our development process
37
+
utilizes OpenJDK 11, and all jar files released via Maven Central, GitHub Packages,
38
+
and GitHub Releases are built with a Java 11 target.
40
39
41
-
The library supports Java 8 or higher, including both Oracle JDK 8 and OpenJDK 8.
40
+
Versions prior to 3.0.0 previously required Java 8+.
42
41
43
42
## Versioning Scheme
44
43
@@ -73,17 +72,53 @@ comments is not advised. Some of the example in the examples repository are
73
72
based on the experiments from published papers that have either used the library
74
73
directly, or which led to some of the code in the library.
75
74
75
+
## Java Modules
76
+
77
+
This library provides a Java module, `org.cicirello.jpt`. To use in your project,
78
+
add the following to your `module-info.java`:
79
+
80
+
```Java
81
+
module your.module.name.here {
82
+
requires org.cicirello.jpt;
83
+
}
84
+
```
85
+
86
+
This module includes the `org.cicirello.permutations` and `org.cicirello.sequences`
87
+
packages as well as their subpackages. See the [API documentation](https://jpt.cicirello.org/api)
88
+
for details.
89
+
90
+
Beginning with version 3.0.0, randomization and other math utilities, and some
91
+
generic utilities, have been
92
+
moved to a pair of new libraries [ρμ](https://github.com/cicirello/rho-mu)
93
+
and [org.cicirello.core](https://github.com/cicirello/core), which are
94
+
now dependencies of JavaPermutationTools. Your dependency manager (see next section)
95
+
will handle downloading these for you.
96
+
97
+
To ease the transition of users of the library who may have been relying on those
98
+
utilities, we have configured the `module-info.java` for the `org.cicirello.jpt` module to
99
+
require these transitively so that your application should only need to
100
+
require `org.cicirello.jpt` to access the functionality of those new modules.
101
+
However, it is possible that you __may__ actually need the following to access
102
+
some of that functionality, such as the RandomIndexer class, or other math or utility classes:
103
+
104
+
```Java
105
+
module your.module.name.here {
106
+
requires org.cicirello.jpt;
107
+
requires org.cicirello.rho_mu;
108
+
requires org.cicirello.core;
109
+
}
110
+
```
111
+
76
112
## Importing the Library from Maven Central
77
113
78
114
Add this to the dependencies section of your pom.xml, replacing the version number
79
-
with the version you want to use (note that the library has been available in Maven
80
-
Central since version 2.1.2).
115
+
with the version you want to use.
81
116
82
117
```XML
83
118
<dependency>
84
119
<groupId>org.cicirello</groupId>
85
120
<artifactId>jpt</artifactId>
86
-
<version>2.6.0</version>
121
+
<version>3.0.0</version>
87
122
</dependency>
88
123
```
89
124
@@ -109,13 +144,20 @@ If you don't use a dependency manager that supports importing from Maven Central
109
144
or if you simply prefer to download manually, prebuilt jars are also attached to
110
145
each [GitHub Release](https://github.com/cicirello/JavaPermutationTools).
111
146
147
+
In addition to the regular jar of the library, we also regularly publish a
148
+
`jar-with-dependencies`. The `jar-with-dependencies` is built for a Java 11 target,
149
+
but does not contain any module declarations (unlike the regular jar file which does).
150
+
Therefore, the `jar-with-dependencies` should be used on the classpath.
151
+
112
152
## License
113
153
114
154
The JPT library is licensed under the [GNU General Public License 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).
115
155
116
-
117
156
## Contribute
118
157
119
-
Report bugs, suggestions, feature requests, etc via the [issues tracker](https://github.com/cicirello/JavaPermutationTools/issues). If you would
120
-
like to directly contribute new code, you may also fork the repository,
121
-
and create pull requests.
158
+
If you would like to contribute in any way, such
159
+
as reporting bugs, suggesting new functionality, or code contributions
160
+
such as bug fixes or implementations of new functionality, then start
161
+
by reading the [contribution guidelines](https://github.com/cicirello/.github/blob/main/CONTRIBUTING.md).
162
+
This project has adopted
163
+
the [Contributor Covenant Code of Conduct](https://github.com/cicirello/.github/blob/main/CODE_OF_CONDUCT.md).
0 commit comments