Skip to content

Commit edca32e

Browse files
committed
Improve catalog readability and maintenance
1 parent dc1135b commit edca32e

7 files changed

Lines changed: 875 additions & 818 deletions

File tree

.github/pull_request_template.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
- [ ] I changed `README_SOURCE.md`, not the generated `README.md`.
22
- [ ] This pull request contains one suggestion.
33
- [ ] Java is a primary API, runtime, target or first-class integration.
4-
- [ ] The description explains the distinguishing value and ends with a period.
4+
- [ ] I used the canonical GitHub repository when one exists.
5+
- [ ] The concise, neutral description explains the distinguishing value and ends with punctuation.
56
- [ ] Commercial or restrictive licensing is disclosed where applicable.

.github/workflows/update-readme.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- "CONTRIBUTING.md"
88
- ".github/pull_request_template.md"
99
- ".github/workflows/update-readme.yml"
10+
- ".tool-versions"
1011
- "scripts/**"
1112
push:
1213
branches:
@@ -15,6 +16,7 @@ on:
1516
paths:
1617
- "README_SOURCE.md"
1718
- ".github/workflows/update-readme.yml"
19+
- ".tool-versions"
1820
- "scripts/**"
1921
schedule:
2022
- cron: "0 0 * * 1"
@@ -36,11 +38,11 @@ jobs:
3638
- uses: actions/setup-java@v5
3739
with:
3840
distribution: temurin
39-
java-version: "25"
41+
java-version-file: ".tool-versions"
4042
- name: Validate source and generator
4143
run: |
42-
java scripts/generate_readme.java self-test
43-
java scripts/generate_readme.java check README_SOURCE.md
44+
java scripts/GenerateReadme.java self-test
45+
java scripts/GenerateReadme.java check README_SOURCE.md
4446
4547
update:
4648
if: github.event_name != 'pull_request'
@@ -54,27 +56,27 @@ jobs:
5456
- uses: actions/setup-java@v5
5557
with:
5658
distribution: temurin
57-
java-version: "25"
59+
java-version-file: ".tool-versions"
5860
- name: Restore statistics cache
5961
uses: actions/cache@v5
6062
with:
6163
path: .cache/github-stats.tsv
62-
key: readme-stats-${{ github.ref_name }}-${{ github.run_id }}
64+
key: readme-stats-v2-${{ github.ref_name }}-${{ github.run_id }}
6365
restore-keys: |
64-
readme-stats-${{ github.ref_name }}-
66+
readme-stats-v2-${{ github.ref_name }}-
6567
- name: Validate source and generator
6668
run: |
67-
java scripts/generate_readme.java self-test
68-
java scripts/generate_readme.java check README_SOURCE.md
69+
java scripts/GenerateReadme.java self-test
70+
java scripts/GenerateReadme.java check README_SOURCE.md
6971
- name: Generate README
7072
env:
71-
PAT: ${{ secrets.PAT }}
73+
GITHUB_TOKEN: ${{ github.token }}
7274
run: |
7375
args=()
7476
if [ "${{ github.event_name }}" = "schedule" ] || [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
7577
args+=(--refresh-all)
7678
fi
77-
java scripts/generate_readme.java generate README_SOURCE.md README.md .cache/github-stats.tsv "${args[@]}" --branch "$GITHUB_REF_NAME"
79+
java scripts/GenerateReadme.java generate README_SOURCE.md README.md .cache/github-stats.tsv "${args[@]}" --branch "$GITHUB_REF_NAME"
7880
- name: Commit README
7981
run: |
8082
git config --local user.email "action@github.com"

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
java temurin-25.0.0+36.0.LTS
1+
java temurin-26.0.1+8

CONTRIBUTING.md

Lines changed: 32 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,47 @@
11
# Contribution Guidelines
22

3-
## Adding or Updating an Entry
3+
## Suggest a Project
44

5-
Edit [`README_SOURCE.md`](README_SOURCE.md), not the generated `README.md`.
6-
7-
Add one entry under the appropriate category:
5+
Edit [`README_SOURCE.md`](README_SOURCE.md), add one line under the best category,
6+
and open one pull request:
87

98
```markdown
10-
- [Project Name](https://example.com) - A concise description ending with a period.
9+
- [Project Name](https://github.com/owner/repository) - A concise, neutral description ending with a period.
1110
```
1211

13-
Open one pull request per suggestion. The generated README handles alphabetical
14-
ordering, category counts, GitHub stars and repository activity automatically.
15-
Contributors do not need to run the generator.
16-
17-
Unfortunately, not every library/tool/framework can be considered. This list aims to provide a concise list of noteworthy modern software. This means that suggested software is:
18-
19-
(a) widely recommended, regardless of personal opinion
20-
21-
(b) highly discussed in the community due to its innovative nature
22-
23-
(c) absolutely unique in its approach and function
24-
25-
(d) a niche product that fills a gap
26-
27-
Suggested software must be focused on the Java ecosystem. Java should be a primary API, runtime, implementation target or substantial first-class integration. Incidental Java support in an otherwise language-agnostic project is not sufficient.
28-
29-
Suggested software must also be developer-friendly, which means it meets the following criteria:
30-
31-
(i) If source code is available, its license is clearly documented.
12+
Use the canonical GitHub repository when one exists. The generated `README.md`
13+
handles ordering, counts, stars and activity; contributors do not need to run
14+
the generator.
3215

33-
(ii) Any license is acceptable when it is clearly disclosed. Restrictive, noncommercial and source-available licenses must be named in the entry.
16+
A project should:
3417

35-
(iii) If commercial, it has clear pricing and at least one free tier.
18+
- make Java a primary API, runtime, implementation target or substantial
19+
first-class integration;
20+
- be noteworthy because it is widely recommended, innovative, unique or fills
21+
a useful niche;
22+
- provide English documentation and clearly disclose its license;
23+
- disclose restrictive, noncommercial or source-available terms in the entry;
24+
- have clear pricing and a free tier when commercial.
3625

37-
(iv) It has a documentation in the English language.
26+
Add `![c]` after the project name for commercial products. Keep descriptions
27+
short, factual and distinctive from similar entries. Use `Miscellaneous` only
28+
when no focused category fits.
3829

39-
## Pull Requests
30+
Search existing entries and issues before submitting. Self-promotion is
31+
reviewed carefully but is welcome when the project meets the same criteria.
32+
Use one pull request per project.
4033

41-
There are four required criteria for a pull request:
34+
## Maintainer Notes
4235

43-
1. If an entry has a similar scope as other entries in the same category, the description must state the unique features that distinguishes it from the other entries.
36+
Most entries point directly to one GitHub repository. For an umbrella project
37+
whose Java offering genuinely spans several repositories, keep its public
38+
homepage and append maintainer-only metadata:
4439

45-
2. If an entry does not meet conditions _(a)_ to _(d)_ there has to be an explanation either in the description or the pull request why it should be added to the list.
46-
47-
3. If an entry doesn't fit any of the pre-existing specialized sections, it should go under Miscellaneous.
48-
49-
4. If two or more entries in Miscellaneous are in the same domain, then they can be moved to a new specialized section.
50-
51-
Self-promotion is frowned upon and viewed critically, but your suggestion will of course be approved if the criteria match.
52-
53-
If your entry isn't accepted, please check the [Issues](https://github.com/akullpp/awesome-java/issues) for items marked with the "question" tag to see if it had been previously discussed. If nothing comes up, feel free to create a new issue, adding the "question" tag.
54-
55-
Furthermore, please ensure your pull request follows the following guidelines:
56-
57-
- Please search previous suggestions before making a new one, as yours may be a duplicate.
58-
- Please make an individual pull request for each suggestion.
59-
- Use the following format for libraries: \[LIBRARY\]\(LINK\) - DESCRIPTION.
60-
- New categories or improvements to the existing categorization are welcome.
61-
- Keep descriptions short, simple and unbiased.
62-
- End all descriptions with a full stop/period.
63-
- Check your spelling and grammar.
64-
- Make sure your text editor is set to remove trailing whitespace.
40+
```markdown
41+
- [Project](https://example.com) - Description. <!-- github: owner/one, owner/two -->
42+
```
6543

66-
Thank you for your suggestions!
44+
Use at least two canonical repositories. A repository may belong to only one
45+
entry. The generator sums their stars, uses their most recent push for activity
46+
and rejects malformed metadata, duplicate repository use and archived
47+
repositories.

0 commit comments

Comments
 (0)