Skip to content

Commit 76ab381

Browse files
committed
v2.3.17
1 parent 4380ef5 commit 76ab381

134 files changed

Lines changed: 948 additions & 998 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cursorrules

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
## 1. Quick-Start Checklist
44

5-
- We’ve created ./typf-tester/typfme.py that uses a test font and into @./typf-tester/ folder it’s supposed to output a renderings using ALL shaping and render backends, as both PNG and SVG.
5+
- We’ve created ./typf-tester/typfme.py that uses a test font and into @./typf-tester/ folder it’s supposed to output a renderings using ALL shaping and render backends, as both PNG and SVG.
66
- Make sure that 'typfme.py' supports ALL shaping and render backends. Make sure the Python bindings support ALL shaping and render background. Make sure that the Rust CLI supports ALL shaping and render backends.
7-
- The typefme.py tool should also perform benchmarking of all backend combos across many sample texts and font sizes and produce a nice JSON report and an extremely compact Markdown table into the @./typf-tester/ folder.
8-
- Use the 'typfme.py' tool and inspect the outputs to debug and improve the shaping and rendering of all backgrounds. Work in a continuous feedback loop.
7+
- The typefme.py tool should also perform benchmarking of all backend combos across many sample texts and font sizes and produce a nice JSON report and an extremely compact Markdown table into the @./typf-tester/ folder.
8+
- Use the 'typfme.py' tool and inspect the outputs to debug and improve the shaping and rendering of all backgrounds. Work in a continuous feedback loop.
99
- You must actually RUN ./build.sh (which at the end runs ./typfme.py) to verify that the changes you make are working
10-
- Inspect the JSONs, PNGs and SVGs in @./typf-tester/output/ folder to debug & improve. Look at bitmaps AND vectors and JSON data, not just one of them.
10+
- Inspect the JSONs, PNGs and SVGs in @./typf-tester/output/ folder to debug & improve. Look at bitmaps AND vectors and JSON data, not just one of them.
1111
- A common problem with shaping and rendering may be size (scale) mismatch, or that the rendering may be upside down (coordinate system mismatch).
1212

1313
**For every task, follow this baseline:**
@@ -26,10 +26,10 @@
2626
## 2. Normative Language Convention
2727

2828
- **MUST** – Hard requirements, no exceptions
29-
- **SHOULD** – Default behavior; deviate only with clear justification
29+
- **SHOULD** – Default behavior; deviate only with clear justification
3030
- **MAY** – Optional practices or suggestions
3131

32-
## 3. TypF Workspace Snapshot (Rust + Python)
32+
## 3. Typf Workspace Snapshot (Rust + Python)
3333

3434
**Scope Sentence**: Deliver a six-stage, dual-backend text pipeline with selective builds and first-class PyO3 bindings.
3535

@@ -91,7 +91,7 @@ Before ANY response, apply this three-phase thinking:
9191
- **ALWAYS** challenge incorrect statements immediately with "Actually, that's incorrect because..."
9292
- **MUST** state confidence explicitly:
9393
- "I'm certain (>95% confidence)"
94-
- "I believe (70-95% confidence)"
94+
- "I believe (70-95% confidence)"
9595
- "This is an educated guess (<70% confidence)"
9696
- When <90% confident, **MUST** search before answering
9797
- LLMs can hallucinate – treat all outputs (including your own) with skepticism
@@ -101,7 +101,7 @@ Before ANY response, apply this three-phase thinking:
101101
After drafting any solution:
102102

103103
1. Say "Wait, but..." and critique ruthlessly
104-
2. Check: Did I add unnecessary complexity? Are there untested assumptions?
104+
2. Check: Did I add unnecessary complexity? Are there untested assumptions?
105105
3. Revise based on the critique before delivering
106106

107107
### 4.4. 1.4 Context Awareness (SHOULD)
@@ -281,7 +281,7 @@ uvx ruff check --fix . && uvx ruff format . && pytest
281281
- Enable integer overflow checks in debug
282282
- Validate ALL external input
283283
- Use `cargo-audit` in CI
284-
- Prefer safe concurrency primitives (`Arc`, `Mutex`)
284+
- Prefer safe concurrency primitives (`Arc`, `Mutex`)
285285
- Use vetted crypto crates only (`ring`, `rustls`)
286286

287287
### 7.3. 4.3 Web Development
@@ -291,7 +291,7 @@ uvx ruff check --fix . && uvx ruff format . && pytest
291291
##### Toolchain (MUST)
292292

293293
- **Package Manager**: `pnpm` (not npm, not yarn)
294-
- **Bundler**: `vite`
294+
- **Bundler**: `vite`
295295
- **TypeScript**: `strict: true` in tsconfig.json
296296
- **Framework**: Next.js (React) or SvelteKit (Svelte)
297297
- **Styling**: Tailwind CSS
@@ -342,7 +342,7 @@ uvx ruff check --fix . && uvx ruff format . && pytest
342342
- **PLAN.md** – Detailed future goals and architecture
343343
- **TODO.md** – Flat task list from PLAN.md with status:
344344
- `[ ]` Not started
345-
- `[x]` Completed
345+
- `[x]` Completed
346346
- `[~]` In progress
347347
- `[-]` Blocked
348348
- `[!]` High priority
@@ -446,7 +446,7 @@ Define scope in ONE sentence. Reject EVERYTHING else.
446446
### 11.2. RED LIST – NEVER Add Unless Explicitly Required:
447447

448448
- Analytics/metrics/telemetry
449-
- Performance monitoring/profiling
449+
- Performance monitoring/profiling
450450
- Production error frameworks
451451
- Advanced security beyond input validation
452452
- Health monitoring/diagnostics
@@ -469,7 +469,7 @@ Define scope in ONE sentence. Reject EVERYTHING else.
469469
### 11.4. Complexity Limits (MUST)
470470

471471
- Simple utilities: 1-3 commands
472-
- Standard tools: 4-7 commands
472+
- Standard tools: 4-7 commands
473473
- Over 8 commands: Probably over-engineered
474474
- Could fit in one file? Keep it in one file
475475
- Weekend rewrite test: If it takes longer, it's too complex
@@ -496,11 +496,11 @@ When writing documentation or commentary:
496496

497497
---
498498

499-
## 13. X. TYPF-SPECIFIC REFERENCE MAPPINGS
499+
## 13. X. Typf-SPECIFIC REFERENCE MAPPINGS
500500

501-
When implementing TypF, reference the old-typf codebase strategically:
501+
When implementing Typf, reference the old-typf codebase strategically:
502502

503-
### 13.1. Old-TypF Codebase Locations
503+
### 13.1. Old-Typf Codebase Locations
504504

505505
**Stage 2: Unicode Processing (REUSE AS-IS)**
506506
- `old-typf/crates/typf-unicode/src/lib.rs` – Complete, production-ready implementation
@@ -537,7 +537,7 @@ When implementing TypF, reference the old-typf codebase strategically:
537537
4. **Memory Management**: Box::leak() for font data caching (intentional, documented)
538538
5. **Concurrency**: Arc<T> + DashMap for thread-safe sharing; parking_lot for locks
539539

540-
### 13.3. Old-TypF Dependencies Already in Use
540+
### 13.3. Old-Typf Dependencies Already in Use
541541

542542
All required dependencies are already proven in old-typf:
543543
- `read-fonts` + `skrifa` for font parsing (NOT ttf-parser)
@@ -566,7 +566,7 @@ For each stage (PLAN/01-06):
566566

567567
---
568568

569-
## 14. X. RUST IMPLEMENTATION MANDATES (TypF V2)
569+
## 14. X. RUST IMPLEMENTATION MANDATES (Typf V2)
570570

571571
- **Workspace Discipline (MUST)**: Keep the multi-crate layout from `/Users/adam/Developer/llm/2511/typf-v2b` intact—`typf`, `typf-core`, `typf-input`, `typf-unicode`, `typf-fontdb`, `typf-export`, per-backend crates, bindings, and `typf-cli`. Never collapse crates “for convenience”; feature gating depends on this split.
572572
- **Six-Stage Pipeline Fidelity (MUST)**: Preserve the pipeline contracts defined in PLAN/00–04: Input → Unicode → Font Selection → Shaping → Rendering → Export. Every new feature must declare which stage it touches and add targeted tests (unit + integration) before code changes.
@@ -603,18 +603,18 @@ For each stage (PLAN/01-06):
603603

604604
## 17. Detailed plan reference
605605

606-
- [ ] @./0PLAN.md
607-
- [ ] @./PLAN/00.md
608-
- [ ] ./PLAN/01.md
609-
- [ ] ./PLAN/02.md
610-
- [ ] ./PLAN/03.md
611-
- [ ] ./PLAN/04.md
612-
- [ ] ./PLAN/05.md
613-
- [ ] ./PLAN/06.md
614-
- [ ] ./PLAN/07.md
615-
- [ ] ./PLAN/08.md
616-
- [ ] ./PLAN/09.md
606+
- [ ] @./0PLAN.md
607+
- [ ] @./PLAN/00.md
608+
- [ ] ./PLAN/01.md
609+
- [ ] ./PLAN/02.md
610+
- [ ] ./PLAN/03.md
611+
- [ ] ./PLAN/04.md
612+
- [ ] ./PLAN/05.md
613+
- [ ] ./PLAN/06.md
614+
- [ ] ./PLAN/07.md
615+
- [ ] ./PLAN/08.md
616+
- [ ] ./PLAN/09.md
617617

618618
- [ ] If you work on the 'opixa' backend (the pure-Rast monochrome/grayscale rasterizer), consult the reference implementation in @./external/rasterization_reference/ ('opixa' is the Rust port thereof)
619619
- [ ] @./external/ contains source code snapshots for various Rust libraries of interest which we use
620-
- [ ] @./old-typf/ contains the old implementation which we are refactoring into the current 'typf' v2
620+
- [ ] @./old-typf/ contains the old implementation which we are refactoring into the current 'typf' v2

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ body:
8080
- type: input
8181
id: version
8282
attributes:
83-
label: TYPF Version
84-
description: Output of `cargo tree | grep typf` or Python `import typf; print(typf.__version__)`
83+
label: Typf Version
84+
description: Output of `cargo tree | grep typf` or Python `import typfpy; print(typfpy.__version__)`
8585
placeholder: "2.0.0-dev"
8686
validations:
8787
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ contact_links:
88
about: Check the documentation first
99
- name: Contributing Guide
1010
url: https://github.com/fontlaborg/typf/blob/main/CONTRIBUTING.md
11-
about: Learn how to contribute to TYPF
11+
about: Learn how to contribute to Typf

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,5 @@ body:
101101
options:
102102
- label: I have searched existing issues to avoid duplicates
103103
required: true
104-
- label: This feature aligns with TYPF's scope and goals
104+
- label: This feature aligns with Typf's scope and goals
105105
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,6 @@ Related to #
156156

157157
---
158158

159-
**Thank you for contributing to TYPF!** 🎉
159+
**Thank you for contributing to Typf!** 🎉
160160

161161
Please ensure you've read [CONTRIBUTING.md](../CONTRIBUTING.md) before submitting.

.github/hooks/pre-commit.sample

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/sh
2-
# TYPF pre-commit hook
2+
# Typf pre-commit hook
33
# To install: cp .github/hooks/pre-commit.sample .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
44

55
set -e

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
Changes to TypF.
3+
Changes to Typf.
44

55
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0//),
66
project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html/).

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Contributing to TYPF
1+
# Contributing to Typf
22

3-
How to contribute code, documentation, and improvements to TYPF.
3+
How to contribute code, documentation, and improvements to Typf.
44

55
## Code of Conduct
66

@@ -37,7 +37,7 @@ cargo run --example harfbuzz --features shaping-hb
3737

3838
### 1. Read Documentation
3939

40-
- `README.md` - What TypF does
40+
- `README.md` - What Typf does
4141
- `ARCHITECTURE.md` - How it works
4242
- `PLAN.md` - What we're building
4343
- `PLAN/00.md` - Technical details

0 commit comments

Comments
 (0)