Skip to content
Java Python Dockerfile Roff JavaScript HTML Other
Branch: master
Clone or download
Erik Helin
Erik Helin git-pr: do not fetch pull requests twice
Reviewed-by: rwestberg
Latest commit 1451273 Dec 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Run Windows CI using cmd Oct 24, 2019
.jcheck Initial commit Jun 24, 2019
args
bot Add support for configuring Jira credentials Nov 27, 2019
bots Try a bit harder to generate incremental webrevs Dec 5, 2019
buildSrc Update to Gradle 6.0 Nov 11, 2019
census Allow reverse mapping of census namespace users Sep 3, 2019
ci Replace ContinuousIntegration.query with ContinuousIntegration.jobsFor Dec 3, 2019
cli git-pr: do not fetch pull requests twice Dec 5, 2019
email Improve review comment threading and quoting Dec 3, 2019
encoding Rename encoding/src/main/java/org/openjdk/skara/base85/Base85.java Nov 19, 2019
forge Lazily request repository JSON for GitHub Dec 5, 2019
host Create forges from service providers Oct 28, 2019
ini Initial commit Jun 24, 2019
issuetracker
jcheck 92: GitRepository::currentBranch fails when on a detached HEAD Dec 2, 2019
json 44: GitHubApplication should not use a JSONParser instance Jul 5, 2019
mailinglist 149: Improve formatting of bridged emails Nov 6, 2019
network
process
proxy 41: Bot launcher should detect ev. http proxy in environment Jul 4, 2019
ssh Parse .ssh/config in git-pr if needed Aug 27, 2019
storage Save references to materialized branches locally Nov 27, 2019
test Improve review comment threading and quoting Dec 3, 2019
vcs 92: GitRepository::currentBranch fails when on a detached HEAD Dec 2, 2019
webrev 146: git-webrev: Add support for file list argument Nov 28, 2019
.dockerignore Initial commit Jun 24, 2019
.gitattributes Initial commit Jun 24, 2019
.gitignore Initial commit Jun 24, 2019
CONTRIBUTING.md Initial commit Jun 24, 2019
LICENSE Initial commit Jun 24, 2019
Makefile
README.md Add support for offline and local builds Nov 11, 2019
Unzip.java 9: JDK dependencies should only be in one file Sep 18, 2019
bots.dockerfile Initial commit Jun 24, 2019
build.gradle Add support for offline and local builds Nov 11, 2019
deps.env Update to JDK 13.0.1 Nov 12, 2019
gradlew Add support for offline and local builds Nov 11, 2019
gradlew.bat Add support for offline and local builds Nov 11, 2019
settings.gradle Add tester bot and ci module Nov 12, 2019
skara.gitconfig Add git-sync command Sep 24, 2019
skara.py Add Mercurial mapping for skara command Sep 11, 2019
skara.sh Initial commit Jun 24, 2019
test.dockerfile Update to Oracle Linux 7.6 Sep 18, 2019

README.md

OpenJDK Project Skara

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 - continuously 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

Building

JDK 12 or later and Gradle 5.6.2 or later is required for building. To build the project on macOS or GNU/Linux x64, just run the following command from the source tree root:

$ sh gradlew

To build the project on Windows x64, 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.

Other operating systems and CPU architectures

If you want to build on an operating system other than GNU/Linux, macOS or Windows or if you want to build on a CPU architecture other than x64, then ensure that you have JDK 12 or later installed locally. You can then run the following command from the source tree root:

$ sh gradlew

The extracted jlinked image will end up in the build directory in the source tree root.

Offline builds

If you don't want the build to automatically download any dependencies, then you must ensure that you have installed the following software locally:

  • JDK 12 or later
  • Gradle 5.6.2 or later

To create a build then run the command:

$ gradle offline

Please note that the above command does not make use of gradlew to avoid downloading Gradle.

The extracted jlinked image will end up in the build directory in the source tree root.

Cross-linking

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

Installing

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.

Testing

JUnit 5.5.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

Wiki

Project Skara's wiki is available at https://wiki.openjdk.java.net/display/skara.

Issues

Issues are tracked in the JDK Bug System under project Skara at https://bugs.openjdk.java.net/projects/SKARA/.

Contributing

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.

Members

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.

Discuss

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.

License

See the file LICENSE for details.

You can’t perform that action at this time.