Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0eab292
feat: add interactive REPL for manual testing
igarbayo Mar 16, 2026
c6d3508
Merge feature/interactive-repl into develop
igarbayo Mar 16, 2026
9aee494
chore: add open source standards (license, REUSE, community docs, CI,…
igarbayo Mar 16, 2026
27a794d
chore: fix gradlew executable permission
igarbayo Mar 16, 2026
bd58f67
chore: run CI on Ubuntu and Windows across Java 11, 17 and 21
igarbayo Mar 16, 2026
1fae3a5
chore: add Apache-2.0 license text and fix missing REUSE footers
igarbayo Mar 16, 2026
4b130a0
chore: fix REUSE compliance for README and docs
igarbayo Mar 16, 2026
35e4899
Merge feature/open-source-best-practices into develop
igarbayo Mar 17, 2026
9d01e53
docs: add explanatory comments to all test classes
igarbayo Mar 17, 2026
8365190
docs: rewrite governance and contributing files following OSS best pr…
igarbayo Mar 17, 2026
58d449a
docs: add COMPONENTS_LICENSE, GPG_KEY, ARCHITECTURE_DECISIONS and DCO
igarbayo Mar 17, 2026
aa76273
ops: add permissions read-all to CI, pin checkout action SHA, add que…
igarbayo Mar 17, 2026
2bb01ac
chore: update dep5 to cover new docs files and DCO
igarbayo Mar 17, 2026
752fcd8
Merge branch 'feature/open-source-practices'
igarbayo Mar 17, 2026
6782ac6
docs: add governance and security files to dep5
igarbayo Mar 17, 2026
cd14db5
Translate REPL output and help menu to English
igarbayo Mar 18, 2026
b991054
docs: translate MANUAL_TESTING_GUIDE examples to English, rename file
igarbayo Mar 18, 2026
55babc0
Merge branch 'feature/english-repl-text' into develop
igarbayo Mar 18, 2026
2f0d08f
chore: add missing files to REUSE dep5
igarbayo Mar 18, 2026
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
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es>
# SPDX-License-Identifier: MIT

# All files are owned by the project maintainer.
* @igarbayo
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Something is not working as documented
title: 'fix: '
labels: bug
assignees: ''
---

## What happened?

<!-- Describe the bug clearly. What did you observe? -->

## What did you expect?

<!-- What should have happened instead? -->

## Steps to reproduce

<!-- Minimal code or REPL commands that trigger the bug -->

```java
TerminalBuffer buf = new TerminalBuffer(80, 24, 100);
// ...
```

## Environment

- OS:
- Java version (`java -version`):
- Shell (PowerShell / bash / zsh / other):

## Additional context

<!-- Stack trace, screenshots, anything else that helps -->

<!-- SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es> -->
<!-- SPDX-License-Identifier: MIT -->
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es>
# SPDX-License-Identifier: MIT

blank_issues_enabled: false

contact_links:
- name: Security vulnerability
url: https://github.com/igarbayo/terminal-text-buffer/blob/master/SECURITY.md
about: >
Do NOT open a public issue for security vulnerabilities.
Please follow the responsible disclosure process described in SECURITY.md.
- name: General question or usage help
url: https://github.com/igarbayo/terminal-text-buffer/issues/new?template=question.md
about: >
Ask a question about how to use the library or understand its behaviour.
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Feature request
about: Propose an improvement or new capability
title: 'feat: '
labels: enhancement
assignees: ''
---

## What problem does this solve?

<!-- Describe the problem you are facing, not just the solution.
Example: "When I try to use this library to build a TUI, I cannot X because..." -->

## Proposed solution

<!-- Describe what you would like to happen.
Example: "Add a method getAttributesAt(col, row) that returns the CellAttributes..." -->

## Example usage

<!-- Show how the feature would be used, even if it is pseudocode -->

```java
// Example of how the new feature would look
buf.newMethod(arg1, arg2);
```

## Alternatives considered

<!-- Have you thought of other ways to solve the problem? Why are they worse? -->

## Additional context

<!-- Anything else that helps understand the request -->

<!-- SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es> -->
<!-- SPDX-License-Identifier: MIT -->
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: Question
about: Ask a question about how to use the library or understand its behaviour
title: '[QUESTION] '
labels: question
assignees: ''

---

<!-- SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es> -->
<!-- SPDX-License-Identifier: MIT -->

## What are you trying to do?

<!-- Describe what you want to accomplish. For example:
"I want to read back the colour of a character I just wrote."
-->

## What have you tried?

<!-- Show the code or commands you have already tried, and what result you got.
For example:
```java
TerminalBuffer buf = new TerminalBuffer(80, 24, 500);
buf.setForeground(TerminalColor.RED);
buf.writeText("Hello");
CellAttributes attrs = buf.getAttributes(0, 0);
// I expected RED but got DEFAULT
System.out.println(attrs.getForeground()); // prints DEFAULT
```
-->

## Environment

- **OS:** <!-- e.g. Ubuntu 22.04, Windows 11 -->
- **Java version:** <!-- output of `java -version` -->
- **How are you running the library?** <!-- e.g. REPL, unit test, own application -->

## Additional context

<!-- Anything else that might help answer the question. -->
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Description

<!-- What does this PR do? Why is it needed? -->

## Type of change

- [ ] `feat` — new feature
- [ ] `fix` — bug fix
- [ ] `test` — tests only
- [ ] `docs` — documentation only
- [ ] `refactor` — code change, no feature or fix
- [ ] `chore` — tooling, dependencies, build

## Checklist

- [ ] I branched from `develop` (not from `master`)
- [ ] The PR title is a valid Conventional Commit message (e.g. `feat: add X`)
- [ ] `./gradlew test` passes locally
- [ ] New or changed files have SPDX license headers
- [ ] I have updated documentation if needed

## Related issues

Closes # <!-- issue number, if applicable -->

<!-- SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es> -->
<!-- SPDX-License-Identifier: MIT -->
23 changes: 23 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es>
# SPDX-License-Identifier: MIT

version: 2
updates:
# Keep Gradle dependencies up to date (e.g. JUnit 5)
- package-ecosystem: gradle
directory: /
schedule:
interval: weekly
day: monday
labels:
- dependencies

# Keep GitHub Actions up to date
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: monday
labels:
- dependencies
- github-actions
55 changes: 55 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SPDX-FileCopyrightText: 2026 Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es>
# SPDX-License-Identifier: MIT

name: CI

on:
push:
branches: [ master, develop, 'feature/**', 'hotfix/**' ]
pull_request:
branches: [ master, develop ]

# Minimum permissions by default. Jobs that need more declare it explicitly.
permissions:
contents: read

jobs:
build:
name: Build and test (Java ${{ matrix.java }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
java: [ '11', '17', '21' ]

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Set up Java ${{ matrix.java }}
uses: actions/setup-java@v4 # TODO: pin to SHA
with:
java-version: ${{ matrix.java }}
distribution: temurin

- name: Run tests
run: ./gradlew test
shell: bash

- name: Upload test report
if: failure()
uses: actions/upload-artifact@v4 # TODO: pin to SHA
with:
name: test-report-java-${{ matrix.java }}
path: build/reports/tests/test/

reuse:
name: REUSE compliance
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Check REUSE compliance
uses: fsfe/reuse-action@v4 # TODO: pin to SHA
24 changes: 24 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: terminal-text-buffer
Upstream-Contact: Ignacio Garbayo Fernández <ignacio.garbayo@rai.usc.es>
Source: https://github.com/igarbayo/terminal-text-buffer

# Gradle wrapper — generated by Gradle, licensed under Apache-2.0
Files: gradlew gradlew.bat gradle/wrapper/gradle-wrapper.jar gradle/wrapper/gradle-wrapper.properties
Copyright: Gradle Inc.
License: Apache-2.0

# Project configuration files — authored by the project maintainer
Files: gradle.properties .gitignore settings.gradle
Copyright: 2026 Ignacio Garbayo Fernandez <ignacio.garbayo@rai.usc.es>
License: MIT

# Documentation and governance files — authored by the project maintainer
Files: README.md CODE_OF_CONDUCT.md GOVERNANCE.md SECURITY.md docs/MANUAL_TESTING_GUIDE.md docs/COMPONENTS_LICENSE.md docs/GPG_KEY.md docs/ARCHITECTURE_DECISIONS.md images/image.png images/image-1.png
Copyright: 2026 Ignacio Garbayo Fernandez <ignacio.garbayo@rai.usc.es>
License: MIT

# Root governance files — authored by the project maintainer
Files: DCO
Copyright: The Linux Foundation and its contributors
License: MIT
Loading
Loading