Rename to rpmroute

The router began as a port of FreeRouting and has grown its own engine
(negotiated congestion, tree nets, exact checks, axis escapes), and
'freeroute' was one letter from the project it no longer follows. The
package, module and command are now rpmroute; the freeroute command stays
as an alias, and the RPMROUTE / RPMROUTE_ORACLE_JAVA variables fall back
to the old FREEROUTE names. Version 2026.10.07. Routing is unchanged: a
PCBench board routes to a byte-identical session either way.
This commit is contained in:
2026-10-07 14:10:36 -06:00
parent 45aee463a8
commit a6aa1991a1
95 changed files with 346 additions and 334 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
from __future__ import annotations
from freeroute.ses.indent import Identifier, IndentWriter
from rpmroute.ses.indent import Identifier, IndentWriter
def test_nested_scopes_indent_by_two_spaces():
+7 -7
View File
@@ -1,7 +1,7 @@
"""End-to-end tests for the SES writer.
Where possible these re-parse the emitted SES with the project's own tokenizer /
S-expression parser (:mod:`freeroute.dsn.sexp`) and assert structural
S-expression parser (:mod:`rpmroute.dsn.sexp`) and assert structural
invariants, mirroring what FreeRouting's ``SesReader`` and ``kicad-cli pcb
import specctra-ses`` walk: ``session > routes > network_out > net >
wire(path)/via``.
@@ -13,9 +13,9 @@ from pathlib import Path
import pytest
from freeroute.dsn import parse_dsn
from freeroute.dsn.sexp import SExp, parse
from freeroute.ses import RoutedVia, RoutedWire, RoutingResult, write_ses
from rpmroute.dsn import parse_dsn
from rpmroute.dsn.sexp import SExp, parse
from rpmroute.ses import RoutedVia, RoutedWire, RoutingResult, write_ses
FIXTURES = Path(__file__).parent.parent / "dsn" / "fixtures"
@@ -142,7 +142,7 @@ def test_round_trip_from_empty_board_fixture():
# --- SES coordinate units ---------------------------------------------------
# FreeRouting's SesWriter writes coordinates in resolution units, and KiCad's
# importer and mckicad's ses_apply read them that way. On 2026-09-26 freeroute
# importer and mckicad's ses_apply read them that way. On 2026-09-26 rpmroute
# was found writing DSN units instead, so every routed board came back 10x small.
@@ -155,8 +155,8 @@ def test_round_trip_from_empty_board_fixture():
],
)
def test_ses_scale(resolution, unit, expected):
from freeroute.dsn import parse_dsn
from freeroute.ses.writer import ses_scale
from rpmroute.dsn import parse_dsn
from rpmroute.ses.writer import ses_scale
dsn = parse_dsn(f"(pcb t (parser) {resolution} {unit} (structure) (placement) (library) (network))")
assert ses_scale(dsn) == pytest.approx(expected)