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