Skip to content

Commit e3cb91b

Browse files
committed
Move English README to secondary file
1 parent a3327c2 commit e3cb91b

1 file changed

Lines changed: 105 additions & 0 deletions

File tree

README.en.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Codewars Solutions / Решения с Codewars
2+
3+
[![CI](https://github.com/krotname/Codewars/actions/workflows/maven.yml/badge.svg)](https://github.com/krotname/Codewars/actions/workflows/maven.yml)
4+
[![CodeQL](https://github.com/krotname/Codewars/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/krotname/Codewars/actions/workflows/codeql-analysis.yml)
5+
[![Coverage](https://codecov.io/gh/krotname/Codewars/branch/main/graph/badge.svg)](https://codecov.io/gh/krotname/Codewars)
6+
[![Quality Gate](https://github.com/krotname/Codewars/actions/workflows/maven.yml/badge.svg?label=quality)](https://github.com/krotname/Codewars/actions/workflows/maven.yml)
7+
[![Quality Gates](https://github.com/krotname/Codewars/actions/workflows/quality.yml/badge.svg)](https://github.com/krotname/Codewars/actions/workflows/quality.yml)
8+
[![License: MIT](https://img.shields.io/badge/license-MIT-0f8a16)](LICENSE)
9+
[![Java](https://img.shields.io/badge/Java-17%2B-007396.svg)](https://adoptium.net/)
10+
[![JUnit](https://img.shields.io/badge/JUnit-6-25A162.svg)](https://junit.org/)
11+
[![Maven](https://img.shields.io/badge/Maven-3.9%2B-C71A36.svg)](https://maven.apache.org/)
12+
13+
This repository is a portfolio-grade Java kata workspace focused on:
14+
- deterministic algorithms with reproducible tests,
15+
- explicit quality workflows (CI, CodeQL, coverage, static checks),
16+
- readable production code and practical refactoring notes,
17+
- bilingual project documentation.
18+
19+
English | [Русский](#русский)
20+
21+
## English
22+
23+
### Why this repository exists
24+
25+
- It demonstrates practical coding and test engineering from **problem solving** to **delivery quality**.
26+
- All solutions are intentionally organized by difficulty/source (kyu/LeetCode/interview/transactions/other).
27+
- Static checks and tests are visible and runnable in one place.
28+
29+
### Repository map
30+
31+
- `src/main/java` — production solutions and domain classes
32+
- `src/test/java` — tests and quality suites
33+
- `quality.SmokeSuite` (unit/smoke partition)
34+
- `quality.IntegrationSuite` (transactions scenario tests)
35+
- `quality.PropertySuite` (property-based tests, currently curated)
36+
- `.github` — CI workflows, dependabot and repo templates
37+
- `ARCHITECTURE.md` — architectural and reviewability notes.
38+
- `CHANGELOG.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`, `TESTING.md` — project governance
39+
40+
### Testing strategy
41+
42+
- **Smoke / Unit baseline** — each kata has direct tests; grouped by `quality.SmokeSuite`.
43+
- **Integration** — transaction validation state and ordering, via `quality.IntegrationSuite`.
44+
- **Property-based** — jqwik property tests are grouped in `quality.PropertySuite`.
45+
- **UI tests** — not applicable (`N/A` for this repository, no UI layer).
46+
- **Static quality gates** — Checkstyle, PMD, SpotBugs run in Maven verify and fail the build on violations.
47+
- **Static artifact capture** — reports from Checkstyle/PMD/SpotBugs are attached to CI artifacts for reviewer inspection.
48+
- **Coverage gate** — JaCoCo fails `mvn verify` below 91% line, 85% branch and 92% instruction coverage.
49+
50+
### CI and quality signals
51+
52+
- GitHub Actions workflow: `.github/workflows/maven.yml`
53+
- category jobs (`smoke`, `integration`, `property`) on JDK 21 via JUnit tags
54+
- full `mvn verify` on JDK 17 and 21
55+
- uploaded test and coverage artifacts
56+
- Quality workflow: `.github/workflows/quality.yml`
57+
- runs static checks with `checkstyle`, `pmd`, and `spotbugs` without executing tests
58+
- Checkstyle, PMD and SpotBugs are kept clean in the current quality baseline
59+
- Checkstyle uses a project-specific baseline in `config/checkstyle/checkstyle.xml`
60+
- Generated smoke wrappers have explicit suppressions in `config/checkstyle/suppressions.xml`
61+
- SpotBugs is kept clean with documented compatibility exceptions in `config/spotbugs-exclude.xml`
62+
- Security workflow: `.github/workflows/codeql-analysis.yml`
63+
- Dependency automation: `.github/dependabot.yml`
64+
- Coverage tracked in JaCoCo + Codecov; the current local baseline is 455 tests with 91.4% line,
65+
85.1% branch and 92.7% instruction coverage.
66+
67+
### Portfolio checklist
68+
69+
- Deterministic implementations with package-localized responsibilities.
70+
- Clear QA signals in CI (unit/integration/property + static checks).
71+
- Explicit bilingual documentation for contributors and users.
72+
- Reproducible Maven build commands.
73+
- Separate quality workflow for static tooling visibility.
74+
75+
### Local run
76+
77+
```bash
78+
mvn -B verify
79+
mvn -B test
80+
mvn -B test -Dgroups='smoke'
81+
mvn -B test -Dgroups='integration'
82+
mvn -B test -Dgroups='property'
83+
mvn -B -DskipTests checkstyle:check pmd:check spotbugs:check
84+
mvn -B test -Dtest='quality.SmokeSuite'
85+
mvn -B test -Dtest='quality.IntegrationSuite'
86+
mvn -B test -Dtest='quality.PropertySuite'
87+
```
88+
89+
### What code reviewers can verify quickly
90+
91+
- No hidden mutation of test inputs inside algorithmic methods.
92+
- Meaningful method-level comments in non-obvious logic.
93+
- Deterministic edge-case handling in boundary tests.
94+
- Governance artifacts for maintainability and process.
95+
96+
### Local quality policy
97+
98+
- Use ASCII-only patch style unless a file already contains another script.
99+
- Keep public method behavior deterministic.
100+
- Add/adjust tests for any changed branch behavior.
101+
- Keep complexity-local comments in algorithmic methods.
102+
103+
### Architecture
104+
105+
- [ARCHITECTURE.md](ARCHITECTURE.md)

0 commit comments

Comments
 (0)