1 # OpenJDK Project Skara 2 3 The goal of Project Skara is to investigate alternative SCM and code review 4 options for the OpenJDK source code, including options based upon Git rather than 5 Mercurial, and including options hosted by third parties. 6 7 This repository contains tooling for working with OpenJDK projects and 8 their repositories. The following CLI tools are available as part of this 9 repository: 10 11 - git-jcheck - a backwards compatible Git port of [jcheck](https://openjdk.java.net/projects/code-tools/jcheck/) 12 - git-webrev - a backwards compatible Git port of [webrev](https://openjdk.java.net/projects/code-tools/webrev/) 13 - git-defpath - a backwards compatible Git port of [defpath](https://openjdk.java.net/projects/code-tools/defpath/) 14 - git-fork - fork a project on an external Git source code hosting provider to your personal space and optionally clone it 15 - git-pr - interact with pull requests for a project on an external Git source code hosting provider 16 - git-info - show OpenJDK information about commits, e.g. issue links, authors, contributors, etc. 17 - git-token - interact with a Git credential manager for handling personal access tokens 18 - git-translate - translate between [Mercurial](https://mercurial-scm.org/) 19 and [Git](https://git-scm.com/) hashes 20 - git-skara - learn about and update the Skara CLI tools 21 22 There are also CLI tools available for importing OpenJDK 23 [Mercurial](https://mercurial-scm.org/) repositories into 24 [Git](https://git-scm.com/) repositories and vice versa: 25 26 - git-openjdk-import 27 - git-verify-import 28 - hg-openjdk-import 29 30 The following server-side tools (so called "bots") for interacting with 31 external Git source code hosting providers are available: 32 33 - hgbridge - continuously convert Mercurial repositories to git 34 - mlbridge - bridge messages between mailing lists and pull requests 35 - notify - send email notifications when repositories are updated 36 - pr - add OpenJDK workflow support for pull requests 37 - submit - example pull request test runner 38 39 ## Building 40 41 [JDK 12](http://jdk.java.net/12/) or later and [Gradle](https://gradle.org/) 42 5.2.1 or later is required for building. To build the project on macOS or 43 GNU/Linux, just run the following command from the source tree root: 44 45 ```bash 46 $ sh gradlew 47 ``` 48 49 To build the project on Windows, run the following command from the source tree root: 50 51 ```bat 52 > gradlew 53 ``` 54 55 The extracted jlinked image will end up in the `build` directory in the source 56 tree root. 57 58 It is also supported to cross-jlink jimages to GNU/Linux, macOS and/or Windows from 59 any of the aforementioned operating systems. To build all applicable jimages 60 (including the server-side tooling), run the following command from the 61 source tree root: 62 63 ```bash 64 sh gradlew images 65 ``` 66 67 ## Installing 68 69 To install the Skara tools, include the `skara.gitconfig` Git configuration 70 file in your user-level Git configuration file. On macOS or 71 GNU/Linux: 72 73 ```bash 74 $ git config --global include.path "$PWD/skara.gitconfig" 75 ``` 76 77 On Windows: 78 79 ```bat 80 > git config --global include.path "%CD%/skara.gitconfig" 81 ``` 82 83 To check that everything works as expected, run the command `git skara help`. 84 85 ## Testing 86 87 [JUnit](https://junit.org/junit5/) 5.5.1 or later is required to run the unit 88 tests. To run the tests, execute following command from the source tree root: 89 90 ```bash 91 $ sh gradlew test 92 ``` 93 94 The tests expect [Git](https://git-scm.com/) version 2.19.1 or later and 95 [Mercurial](https://mercurial-scm.org/) 4.7.1 or later to be installed on 96 your system. 97 98 This repository also contains a Dockerfile, `test.dockerfile`, that allows 99 for running the tests in a reproducible way with the proper dependencies 100 configured. To run the tests in this way, run the following command from the 101 source tree root: 102 103 ```bash 104 $ sh gradlew reproduce 105 ``` 106 107 ## Wiki 108 109 Project Skara's wiki is available at <https://wiki.openjdk.java.net/display/skara>. 110 111 ## Issues 112 113 Issues are tracked in the [JDK Bug System](https://bugs.openjdk.java.net/) 114 under project Skara at <https://bugs.openjdk.java.net/projects/SKARA/>. 115 116 ## Contributing 117 118 We are more than happy to accept contributions to the Skara tooling, both via 119 patches sent to the Skara 120 [mailing list](https://mail.openjdk.java.net/mailman/listinfo/skara-dev) and in the 121 form of pull requests on [GitHub](https://github.com/openjdk/skara/pulls/). 122 123 ## Members 124 125 See <http://openjdk.java.net/census#skara> for the current Skara 126 [Reviewers](https://openjdk.java.net/bylaws#reviewer), 127 [Committers](https://openjdk.java.net/bylaws#committer) and 128 [Authors](https://openjdk.java.net/bylaws#author). See 129 <https://openjdk.java.net/projects/> for how to become an author, committer 130 or reviewer in an OpenJDK project. 131 132 ## Discuss 133 134 Development discussions take place on the project Skara mailing list 135 `skara-dev@openjdk.java.net`, see 136 <https://mail.openjdk.java.net/mailman/listinfo/skara-dev> for instructions 137 on how to subscribe of if you want to read the archives. You can also reach 138 many project Skara developers in the `#openjdk` IRC channel on 139 [OFTC](https://www.oftc.net/), see <https://openjdk.java.net/irc/> for details. 140 141 ## License 142 143 See the file `LICENSE` for details.