Crux is a modern, robust library for parsing HTML articles. With all the content on the Web out there, there is always lots of room for improvement. We will gladly accept your pull requests that make parsing more accurate, or add new features & metadata detection.
To maintain the integrity of the library, we have a few simple expectations from all code submitted.
- The expected style for code formatting is available in the repo using the
EditorConfig standard. We recommend using a JetBrains IDE for
Kotlin, and configuring it to automatically use the
.editorconfig
file included in this repository. - Crux is fully unit-tested, and we want to keep it that way. All new code should include unit tests.
- For parsing improvements, Crux’s rich suite of integration tests should be updated to reflect the parsing changes. Authors may either choose to test their improvements with existing HTML test files, or add new ones, as appropriate.
- All current tests should continue to pass. Either update the tests in the same commit, or modify new code so that existing tests continue to pass.
- Changes should be self-contained as far as possible. When implementing multiple independent improvements, each one should be in its own commit.
- Ensure all tests pass & CI indicates that the status is green.
- Update
VERSION_NAME
ingradle.properties
. - Create a new commit for the version number change, naming it
Bump version to x.y.z
. - Tag that commit as
vx.y.z
(must matchv[0-9]+.[0-9]+.[0-9]+
). - Push all commits & tags to GitHub.
Confirm that the gradle.properties
file in the home directory (~/.gradle/gradle.properties
) is
present and set up correctly.
./gradlew publish
Assuming ./gradlew publish
has been run after a new version has been released.
- Go to https://oss.sonatype.org/#stagingRepositories, login as
chimbori
. - Select the
comchimboricrux-xxxx
repo - Click on
Close
from the top toolbar, wait for it to complete. - Click on
Release
from the top toolbar.
- Install GPG, e.g.
brew install gpg
on macOS. - Locate stored credentials from private storage.
- Run
restore-keys.sh
from the stored credentials directory. - Enter the password for
chimbori
when prompted. This password is different from the Sonatype/Nexus password.
- Copy
gradle.properties.sample
to~/.gradle/gradle.properties
and fill in the missing redacted credentials. - If
gradle.properties.private
exists, it may be used instead.gradle.properties.private
is configured to be.gitignore
d, so make sure it is never pushed to a public repo. - The new machine is now ready and configured for pushing to Maven Central.