The goal of Project Skara is to investigate alternative SCM and code review options for the OpenJDK source code, including options based upon Git rather than Mercurial, and including options hosted by third parties.
This repository contains tooling for working with OpenJDK projects and their repositories. The following CLI tools are available as part of this repository:
- git-jcheck - a backwards compatible Git port of jcheck
- git-webrev - a backwards compatible Git port of webrev
- git-defpath - a backwards compatible Git port of defpath
- git-fork - fork a project on an external Git source code hosting provider to your personal space and optionally clone it
- git-pr - interact with pull requests for a project on an external Git source code hosting provider
- git-info - show OpenJDK information about commits, e.g. issue links, authors, contributors, etc.
- git-token - interact with a Git credential manager for handling personal access tokens
- git-translate - translate between Mercurial and Git hashes
- git-skara - learn about and update the Skara CLI tools
There are also CLI tools available for importing OpenJDK Mercurial repositories into Git repositories and vice versa:
- git-openjdk-import
- git-verify-import
- hg-openjdk-import
The following server-side tools (so called "bots") for interacting with external Git source code hosting providers are available:
- hgbridge - continously convert Mercurial repositories to git
- mlbridge - bridge messages between mailing lists and pull requests
- notify - send email notifications when repositories are updated
- pr - add OpenJDK workflow support for pull requests
- submit - example pull request test runner
JDK 12 or later and Gradle 5.2.1 or later is required for building. To build the project on macOS or GNU/Linux, just run the following command from the source tree root:
$ sh gradlew
To build the project on Windows, run the following command from the source tree root:
> gradlew
The extracted jlinked image will end up in the build
directory in the source
tree root.
It is also supported to cross-jlink jimages to GNU/Linux, macOS and/or Windows from any of the aforementioned operating systems. To build all applicable jimages (including the server-side tooling), run the following command from the source tree root:
sh gradlew images
To install the Skara tools, include the skara.gitconfig
Git configuration
file in your user-level Git configuration file. On macOS or
GNU/Linux:
$ git config --global include.path "$PWD/skara.gitconfig"
On Windows:
> git config --global include.path "%CD%/skara.gitconfig"
To check that everything works as expected, run the command git skara help
.
JUnit 5.3.1 or later is required to run the unit tests. To run the tests, execute following command from the source tree root:
$ sh gradlew test
The tests expect Git version 2.19.1 or later and Mercurial 4.7.1 or later to be installed on your system.
This repository also contains a Dockerfile, test.dockerfile
, that allows
for running the tests in a reproducible way with the proper dependencies
configured. To run the tests in this way, run the following command from the
source tree root:
$ sh gradlew reproduce
Project Skara's wiki is available at https://wiki.openjdk.java.net/display/skara.
Issues are tracked in the JDK Bug System under project Skara at https://bugs.openjdk.java.net/projects/SKARA/.
We are more than happy to accept contributions to the Skara tooling, both via patches sent to the Skara mailing list and in the form of pull requests on GitHub.
See http://openjdk.java.net/census#skara for the current Skara Reviewers, Committers and Authors. See https://openjdk.java.net/projects/ for how to become an author, committer or reviewer in an OpenJDK project.
Development discussions take place on the project Skara mailing list
skara-dev@openjdk.java.net
, see
https://mail.openjdk.java.net/mailman/listinfo/skara-dev for instructions
on how to subscribe of if you want to read the archives. You can also reach
many project Skara developers in the #openjdk
IRC channel on
OFTC, see https://openjdk.java.net/irc/ for details.
See the file LICENSE
for details.