Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 22 additions & 1 deletion .github/scripts/GenerateReadme.java
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,19 @@ private static String render(Catalog source, StatsCache cache, LocalDate today,
.append("<sub>License chips use GitHub SPDX metadata when available.</sub>\n\n")
.append("<sub>Entries spanning several repositories combine their stars, use the most recent push for activity ")
.append("and show a license only when all repositories agree.</sub>\n\n")
.append("<details>\n")
.append("<summary><strong>Contents</strong></summary>\n\n")
.append("<strong>Projects</strong>\n\n");

source.categories().stream()
.sorted(Comparator.comparing(category -> category.name, TEXT_ORDER))
.forEach(category -> out.append("- [").append(category.name).append("](#")
.append(slug(category.name)).append(")\n"));

out.append("\n<strong>Resources</strong>\n\n");
source.resources().forEach(resource -> out.append("- [").append(resource.name).append("](#")
.append(slug(resource.name)).append(")\n"));
out.append("\n</details>\n\n")
.append("## Projects\n\n");

source.categories().stream()
Expand Down Expand Up @@ -947,7 +960,7 @@ private static void selfTest() throws Exception {
"license":{"spdx_id":"NOASSERTION"}}
""");
require(unknownLicense.license() == null, 0, "Unknown API license parsing");
var category = new Category("Test");
var category = new Category("API Compatibility");
category.description = "Test projects.";
category.items.add(umbrella);
var catalog = new Catalog("# Test", "Test.", List.of(category), List.of());
Expand All @@ -963,6 +976,14 @@ private static void selfTest() throws Exception {
today,
"test"
);
require(
rendered.contains("- [API Compatibility](#api-compatibility)")
&& rendered.contains("<details id=\"api-compatibility\">")
&& rendered.contains("- [Links](#links)")
&& rendered.contains("<details id=\"links\">"),
0,
"Contents links"
);
require(rendered.contains("Suggest a project or resource"), 0, "Contribution CTA");
require(rendered.contains("CC BY-SA 4.0") && rendered.contains("[MIT](LICENSE-CODE)"),
0, "License footer");
Expand Down
8 changes: 8 additions & 0 deletions README_SOURCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ Use absolute HTTPS canonical links and submit one project or resource per pull r

## Projects

### API Compatibility

_Tools for tracking API evolution and detecting breaking changes between library versions._

- [japicmp](https://github.com/siom79/japicmp) - Compares two library JARs and reports source- and binary-incompatible changes.
- [Revapi](https://github.com/revapi/revapi) - Extensible API analysis and change tracking with configurable source, binary and semantic compatibility checks.
- [Roseau](https://github.com/alien-tools/roseau) - Detects source- and binary-breaking changes by comparing library versions from JAR files or source code.

### Architecture

_Frameworks and libraries that help implementing and verifying design and architecture concepts._
Expand Down
Loading