Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b5f3cec
Add howto for local clone
koppor May 23, 2025
86ca877
Update en/contributing/README.md
koppor May 23, 2025
2ca1150
Update en/contributing/README.md
koppor May 23, 2025
4d0c7d2
Update en/contributing/README.md
koppor May 23, 2025
24bb48f
Update en/contributing/README.md
koppor May 23, 2025
6269ff7
Update en/contributing/README.md
koppor May 23, 2025
23727d4
Update en/contributing/README.md
koppor May 23, 2025
95b360a
Update en/contributing/README.md
koppor May 23, 2025
67ec810
Update en/contributing/README.md
koppor May 23, 2025
163564f
Update en/contributing/README.md
koppor May 23, 2025
839060f
Update en/contributing/README.md
koppor May 23, 2025
22d7311
Update en/contributing/README.md
koppor May 23, 2025
db18229
Update en/contributing/README.md
koppor May 23, 2025
69650cc
Update en/contributing/README.md
koppor May 23, 2025
44ac0bc
Fix typo and linting issues on headings.
koppor May 23, 2025
d09986f
No installed git needed - only gg.cmd
koppor May 23, 2025
a7eb212
Merge branch 'main' into koppor-patch-2
koppor May 23, 2025
16efe0f
Fix ()
koppor May 23, 2025
dd7cf8e
Merge remote-tracking branch 'origin/main' into koppor-patch-2
koppor May 23, 2025
2a89e3c
Refine gg instructions
koppor May 29, 2025
30d4e7b
Try to fix linting
koppor May 29, 2025
6a14e35
Merge remote-tracking branch 'origin/koppor-patch-2' into koppor-patch-2
koppor May 29, 2025
9d5a042
First step using gh tool
koppor May 29, 2025
8f38979
Adapt text to new CheckoutPR
koppor May 30, 2025
1f016d5
Fix linting issues
koppor May 30, 2025
5d63820
Update en/contributing/README.md
subhramit May 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added en/.gitbook/assets/pr-13182.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 36 additions & 25 deletions en/contributing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

We are really happy that you are interested in contributing to JabRef. Please take your time to look around here. We especially invite you to look into our [community members page](https://discourse.jabref.org/t/community-members/1868?u=koppor) where members introduce themselves.

## I would like to try out a feature introduced at pull request.
## I would like to try out a feature introduced at pull request

In JabRef, there are dozens of bug fixes and new features introduced using GitHub's pull request mechansim.
You can browse all at <https://github.com/JabRef/jabref/pulls>.
Expand All @@ -12,12 +12,11 @@ Improving on changes in active pull requests is much easier than fixing them lat
If you are familiar with the command line on your OS, then it is very easy to try out pull requests and give feedback.
In the following, we try to give a minimal set of installation instructions to be able to run a contribution from a fork.

Required tooling:
### Required tooling

- [GitHubCLI](https://cli.github.com/) - A command-line client for GitHub. You can install it using the installer linked on their [homepage](https://cli.github.com/) or the commands given at the [installation hints](https://github.com/cli/cli#installation).
- [`gg.cmd`](https://github.com/eirikb/gg) - A cross-platform and cross-architecture version manager. Download [`gg.cmd`](https://github.com/eirikb/gg/releases/latest/download/gg.cmd) and store it in your home (or `Downloads`) directory.

Initial setup:
### Initial setup

- Windows:
- Open PowerShell
Expand All @@ -27,9 +26,10 @@ Initial setup:
- Get `gg.cmd`
- `wget ggcmd.io -OutFile gg.cmd`
- Clone JabRef
- `./gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CloneJabRef.java JabRef`
- Make `gg.cmd` available in `JabRef` directory
- `cd JabRef`
- `.\gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CloneJabRef.java jabref`
- When JBang asks you for trust, you can choose "Trust once" by pressing <kbd>1</kbd> and then <kbd>Enter</kbd>
- Make `gg.cmd` available in `jabref` source directory
- `cd jabref`
- `move ..\gg.cmd .`
- Linux:
- Open a shell
Expand All @@ -40,34 +40,45 @@ Initial setup:
- `wget ggcmd.io/gg.cmd`
- Alternative: `curl -L ggcmd.io > gg.cmd`
- Clone JabRef
- `sh ./gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CloneJabRef.java JabRef`
- NOTE: You can also use the native git client: `git clone --recurse-submodules https://github.com/JabRef/jabref.git JabRef` for achieving the same result.
- Make `gg.cmd` available in `JabRef` directory
- `cd JabRef`
- `sh ./gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CloneJabRef.java jabref`
- NOTE: You can also use the native git client: `git clone --recurse-submodules https://github.com/JabRef/jabref.git jabref` for achieving the same result.
- Make `gg.cmd` available in `jabref` source directory
- `cd jabref`
- `mv ../gg.cmd .`

Now you are all set: You have a directory `JabRef` containing the recent updates and also `gg.cmd` which you will need later for executing a JabRef build.
Now you are all set: You have a directory `jabref` containing the recent updates and also `gg.cmd` which you will need later for executing a JabRef build.

Try a branch:
### Try a branch

1. `cd` into the `JabRef` directory: `cd c:\git-repositories\JabRef`
2. Checkout out the pull request: `gh pr checkout 13111` - where `13111` is the PR number, in this case [pr#13111](https://github.com/JabRef/jabref/pull/13111).
3. Compile and run JabRef: `gg.cmd gradle run :jabgui:run` (on Linux and macOS, you need to prefix it with `sh`: `gg.cmd gradle run :jabgui:run`). This will also download the necessary JDK and gradle distribution. On the first run, please give the system enough time to accommodate and wait until the JabRef window launches. Depending on your hardware, this may take minutes.
1. `cd` into the `jabref` source directory: `cd c:\git-repositories\jabref`
2. Checkout out the pull request: `sh ./gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CheckoutPR.java 13182` - where `13182` is the PR number, in this case [pr#13182](https://github.com/JabRef/jabref/pull/13182).

Alternatives:
- Instead of the number, you can also copy and paste the branch identifier output by GitHub: `sh ./gg.cmd jbang https://github.com/JabRef/jabref/blob/main/.jbang/CheckoutPR.java Yubo-Cao:walkthrough`.
![pr-13182](../.gitbook/assets/pr-13182.png)

1. You don't want to use `gg.cmd`: You have the project clone ready and have some Java JDK available: In the `JabRef` directory, execute `./gradlew run`.
2. You don't want to use GitHub's `gh` tool: You can use the "usual" `git clone ...`, `git remote add ...`, `git fetch ...`, and `git checkout ...` commands to checkout a pull request from a fork.
3. Compile and run JabRef: `sh ./gg.cmd gradle run :jabgui:run`. This will also download the necessary JDK and a gradle distribution. On the first run, please give the system enough time to accommodate and wait until the JabRef window launches. Depending on your hardware, this may take minutes.
Comment thread
subhramit marked this conversation as resolved.
Outdated

**I would like to improve the help page.**
On Windows, instead of `sh ./gg.cmd` use `.\gg.cmd`.

#### Alternatives

1. In case you don't want to use `gg.cmd`: You can install [JBang](https://www.jbang.dev/) for yourself and execute the commands directly.
2. In case you don't want to use `JBang`:

- You have the project clone ready and have some Java JDK available: In the `JabRef` directory, execute `./gradlew run`.
- Install `gh` (the [GitHub CLI](https://cli.github.com/), a command-line client for GitHub) by using the installer linked on their [homepage](https://cli.github.com/) or the commands given at the [installation hints](https://github.com/cli/cli#installation).

3. In case you don't want to use `gh`: You can use the "usual" `git clone ...`, `git remote add ...`, `git fetch ...`, and `git checkout ...` commands to checkout a pull request from a fork.

## I would like to improve the help page

Please see [How to Improve the Help Page](how-to-improve-the-help-page.md)

**I would like to help translating JabRef to another language.**
## I would like to help to translate JabRef to another language

We encourage you to read about [translating the JabRef user interface](how-to-translate-the-ui.md).

**I would like to keep Wikipedia pages up-to-date.**
## I would like to keep Wikipedia pages up-to-date

JabRef improves -- and Wikipedia pages should keep up!

Expand All @@ -88,16 +99,16 @@ For changes in a specific language, go to the related page, and simply click on

If there is no page for your own language, you can easily create one.

**I have some cool feature requests.**
## I have some cool feature requests

[Come discuss it!](http://discourse.jabref.org)

**Can I make a donation? How?**
## Can I make a donation? How?

Donations keep us going! You can use PayPal or bank transfers. Your institution/company can contribute too, through bank transfer for example. All details are provided at [https://donations.jabref.org](https://donations.jabref.org).

Our team consists of volunteers. To provide better support, we are currently trying to get a funded developer on board. Please consider donating money!

**I would like to contribute code. How to?**
## I would like to contribute code. How to?

Please head to our [Contributing Guide](https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md#contributing).