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