Skip to content

Documentation and workflow updates #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Sep 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions .github/workflows/maven-publish.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java#apache-maven-with-a-settings-path

name: Maven Package

on:
release:
types: [created]

jobs:
build:
publish:

runs-on: ubuntu-latest

Expand Down Expand Up @@ -39,7 +36,7 @@ jobs:
run: mvn versions:set -DnewVersion=${{ steps.get_version.outputs.VERSION }}

- name: Publish to Apache Maven Central
run: mvn deploy
run: mvn deploy -PossrhDeploy
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
Expand All @@ -51,17 +48,8 @@ jobs:
java-version: 1.8
server-id: github

- name: Temporary multi-pom hack
run: mv -f pomgh.xml pom.xml

- name: Build with Maven
run: mvn -B package --file pom.xml

- name: Update package version
run: mvn versions:set -DnewVersion=${{ steps.get_version.outputs.VERSION }}

- name: Publish to GitHub Packages Apache Maven
run: mvn deploy
run: mvn deploy -PgithubDeploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed


## [2.1.3] - 2020-09-16

### Changed
* Revised workflow for publishing packages to publish to both Maven Central and Github Packages using one pom.xml.
* Documentation updates


## [2.1.2] - 2020-09-15

### Other
* Working on getting workflow for publishing to maven central working properly. No functional difference from previous release.


## [2.1.1] - 2020-09-15

### Other
* Working on getting workflow for publishing to maven central working properly. No functional difference from previous release.


## [2.1.0] - 2020-09-15
### Added
* Automated generation of sitemap.xml via GitHub actions for the documentation website.
Expand Down
81 changes: 62 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ https://www.cicirello.org/

[![DOI](http://joss.theoj.org/papers/10.21105/joss.00950/status.svg)](https://doi.org/10.21105/joss.00950)
[![DOI](https://zenodo.org/badge/139182095.svg)](https://zenodo.org/badge/latestdoi/139182095)

[![Maven Central](https://img.shields.io/maven-central/v/org.cicirello/jpt.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.cicirello/jpt)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/cicirello/JavaPermutationTools?logo=GitHub)](https://github.com/cicirello/JavaPermutationTools/releases)

[![build](https://github.com/cicirello/JavaPermutationTools/workflows/build/badge.svg)](https://github.com/cicirello/JavaPermutationTools/actions?query=workflow%3Abuild)
[![GitHub](https://img.shields.io/github/license/cicirello/JavaPermutationTools)](https://github.com/cicirello/JavaPermutationTools/blob/master/LICENSE)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/cicirello/JavaPermutationTools?logo=GitHub)](https://github.com/cicirello/JavaPermutationTools/releases)

## How to Cite

Expand All @@ -18,29 +21,34 @@ If you use this library in your research, please cite the following paper:

## Overview

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating
permutations and sequences, as well as performing computation on permutations and sequences.
It includes implementations of a variety of permutation distance metrics as well as distance
metrics on sequences (i.e., Strings, arrays, and other ordered data types).
The JavaPermutationTools (JPT) library provides Java classes and interfaces, etc that
enable representing and generating permutations and sequences, as well as performing
computation on permutations and sequences. It includes implementations of a variety
of permutation distance metrics as well as distance metrics on sequences (i.e., Strings,
arrays, and other ordered data types).

JPT is organized into the following packages:
* __org.cicirello.permutations__: Permutation class and a class for iterating over permutations.
* __org.cicirello.permutations.distance__: Collection of permutation distance metric implementations.
* __org.cicirello.sequences__: Classes that perform a variety of operations on sequences (such as arrays, etc).
* __org.cicirello.sequences.distance__: Collection of distance metrics on Strings and other sequences.
* __org.cicirello.math.la__ : Linear algebra related classes.
* __org.cicirello.math.rand__ : Classes related to efficient, or specialized, random number generation.
* __org.cicirello.math.stats__: Statistics related classes.
## Repository Organization

Javadoc documentation is in the /docs folder as well as at https://jpt.cicirello.org/
The GitHub repository is organized as follows:
* The [/build](build) directory contains an ant build file, and other resources related to building the library.
* The [/dist](dist) directory contains the compiled jar files of the library.
* The [/docs](docs) directory contains the javadoc documentation in a sub-directory [/docs/api](docs/api). The /docs directory is also the location of the website for the project hosted via GitHub pages at https://jpt.cicirello.org/.
* The [/examples](examples) directory contains several example programs that use the library, and which demonstrate usage of various features.
* The [/replication](replication) directory includes source code that recreates results found in publications associated with the library.
* The [/src](src) directory contains all of the source code.
* The [/tests](tests) directory contains JUnit test cases for all functionality of the library.

Source code is found in the /src folder. JUnit test classes are found in the /tests folder, which
mirrors the package structure of /src.
## Java 8

Compiled jar files of the library are in the /dist folder.
The library supports Java 8 or higher, including both Oracle JDK 8 and OpenJDK 8.

The /examples folder includes source code to illustrate how to use the library. The /replication
folder includes source code that recreates results found in publications associated with the library.
## Versioning Scheme

The JPT uses [Semantic Versioning](https://semver.org/) 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.

## Building the Library (with ant)

Expand Down Expand Up @@ -75,6 +83,41 @@ The replication directory additionally contains more complex examples that repli
experiments from published papers that have used the library. Those directories contain
READMEs that provide more detail on the examples, including on running the examples.

## Importing the Library from Maven Central

Add this to the dependencies section of your pom.xml, replacing the version number
with the version you want to use (note that the library has been available in Maven
Central since version 2.1.2).

```XML
<dependency>
<groupId>org.cicirello</groupId>
<artifactId>jpt</artifactId>
<version>2.1.2</version>
</dependency>
```

## Importing the Library from Github Packages

If you'd prefer to import from Github Packages, rather than Maven Central,
then: (1) add the dependency as indicated in previous section above,
and (2) add the following to the repositories section of your pom.xml:

```XML
<repository>
<id>github</id>
<name>GitHub cicirello Apache Maven Packages</name>
<url>https://maven.pkg.github.com/cicirello/JavaPermutationTools</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
```

## License

The JPT library is licensed under the [GNU General Public License 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).


## Contribute

Report bugs, suggestions, feature requests, etc via the [issues tracker](https://github.com/cicirello/JavaPermutationTools/issues). If you would
Expand Down
Binary file modified dist/jpt-2.0.1.jar
Binary file not shown.
156 changes: 90 additions & 66 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,51 +9,60 @@
<version>2.1.0</version>
<packaging>jar</packaging>

<name>JavaPermutationTools</name>
<description>JavaPermutationTools (JPT) is a library for
computation on permutations and sequences.</description>
<url>https://jpt.cicirello.org/</url>
<name>JavaPermutationTools</name>
<description>JavaPermutationTools (JPT) is a library for
computation on permutations and sequences.
JPT provides Java classes that enable representing and
generating permutations and sequences, as well as
performing computation on permutations and sequences.
It includes implementations of a variety of permutation
distance metrics as well as distance metrics on sequences
(i.e., Strings, arrays, and other ordered data types).</description>
<url>https://jpt.cicirello.org/</url>

<licenses>
<license>
<name>GPL-3.0-or-later</name>
<url>https://www.gnu.org/licenses/gpl-3.0.en.html</url>
<distribution>repo</distribution>
<comments>
JavaPermutationTools (JPT): A library for computation on permutations and sequences.
Copyright (C) 2005-2020 Vincent A. Cicirello.

JavaPermutationTools is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
<licenses>
<license>
<name>GPL-3.0-or-later</name>
<url>https://www.gnu.org/licenses/gpl-3.0.en.html</url>
<distribution>repo</distribution>
<comments>
JavaPermutationTools (JPT): A library for computation on permutations and sequences.
Copyright (C) 2005-2020 Vincent A. Cicirello.

JavaPermutationTools is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
JavaPermutationTools is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.
</comments>
</license>
</licenses>

<developers>
<developer>
<name>Vincent A Cicirello</name>
<email>[email protected]</email>
<url>https://www.cicirello.org/</url>
<organization>Cicirello.Org</organization>
<organizationUrl>https://www.cicirello.org/</organizationUrl>
</developer>
</developers>
JavaPermutationTools is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

<organization>
<name>Cicirello.Org</name>
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.
</comments>
</license>
</licenses>

<developers>
<developer>
<name>Vincent A Cicirello</name>
<email>[email protected]</email>
<url>https://www.cicirello.org/</url>
</organization>
<organization>Cicirello.Org</organization>
<organizationUrl>https://www.cicirello.org/</organizationUrl>
</developer>
</developers>

<organization>
<name>Cicirello.Org</name>
<url>https://www.cicirello.org/</url>
</organization>

<profiles>
<profile>
<id>ossrhDeploy</id>
<distributionManagement>
<repository>
<id>ossrh</id>
Expand All @@ -66,18 +75,53 @@
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>githubDeploy</id>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub cicirello Apache Maven Packages</name>
<url>https://maven.pkg.github.com/cicirello/JavaPermutationTools</url>
</repository>
</distributionManagement>
</profile>
</profiles>

<issueManagement>
<system>github</system>
<url>https://github.com/cicirello/JavaPermutationTools/issues</url>
</issueManagement>
<issueManagement>
<system>github</system>
<url>https://github.com/cicirello/JavaPermutationTools/issues</url>
</issueManagement>

<scm>
<scm>
<connection>scm:git:git://github.com/cicirello/JavaPermutationTools.git</connection>
<developerConnection>scm:git:ssh://github.com:cicirello/JavaPermutationTools.git</developerConnection>
<url>http://github.com/cicirello/JavaPermutationTools/tree/master</url>
</scm>
</scm>


<dependencies>
Expand Down Expand Up @@ -168,26 +212,6 @@
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
Loading