Commit Graph

887 Commits

Author SHA1 Message Date
Mikolaj Wielgus 9664f1a31a fix: get rid of some indeterminism by using B-trees instead of hash maps
I have replaced all instances of `HashMap<...>` with `BTreeMap<...>`,
of `HashSet<...>` with `BTreeSet<...>`, and all the uses of the `Hash`
trait with `Ord`.

I have done a few manual tests and found the behavior to be
deterministic between the GUI application launches. However, undoing an
autoroute command and then manually executing it once again continues to
produce variable results. I suppose this is because of some bug in the
code where edits are applied. Hence, the issue

https://codeberg.org/topola/topola/issues/46

is only partially resolved.
2025-01-04 01:56:00 +01:00
fogti 9c007a8ccb
Translated using Weblate (German)
Currently translated at 100.0% (49 of 49 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-01-03 00:39:31 +00:00
fogti d9dcf3018d
Translated using Weblate (German)
Currently translated at 100.0% (47 of 47 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-01-03 00:39:31 +00:00
Alain Emilia Anna Zscheile d88ba19e2b feat(graph): make indices serializable 2025-01-03 00:49:00 +01:00
Alain Emilia Anna Zscheile 53b964b865 feat: implement bounding box selection (#139)
Fixes #138

Reviewed-on: https://codeberg.org/topola/topola/pulls/139
Co-authored-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-01-02 22:12:11 +00:00
Alain Emilia Anna Zscheile bbf54c9eb5 ci(egui): Select xdg-portal as backend for egui
Error message:
error: failed to run custom build command for `rfd v0.15.1`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `/woodpecker/src/codeberg.org/topola/topola/target/debug/build/rfd-df83cee8e4039bcf/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rfd-0.15.1/build.rs:14:17:
  You need to choose at least one backend: `gtk3` or `xdg-portal` features
2025-01-02 17:36:55 +01:00
Alain Emilia Anna Zscheile 3dd60ed7df deps(egui): fix missing required feature "async-std" for rfd/xdg-portal
Error message:

   Compiling rfd v0.15.1
error: failed to run custom build command for `rfd v0.15.1`

Caused by:
  process didn't exit successfully: `[redacted]/topola/target/debug/build/rfd-91f81cc3d21cf4fd/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at [redacted]/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rfd-0.15.1/build.rs:21:21:
  One of the `tokio` or `async-std` features must be enabled to use `xdg-portal`
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2025-01-01 22:42:30 +01:00
Mikolaj Wielgus 0ef323070b docs(install): copyedit a very minor nit 2025-01-01 21:38:50 +01:00
Mikolaj Wielgus f3389e4c9c docs(install): copyedit and rearrange sections 2025-01-01 21:36:51 +01:00
Mikolaj Wielgus 51e5ccac2e docs(install): fix malformed link formatting 2025-01-01 17:19:46 +01:00
Mikolaj Wielgus 2d2ab74bbd docs(install): remove nonlinearity in reading flow and some copyediting 2025-01-01 17:13:59 +01:00
Alain Emilia Anna Zscheile 7f48888c14 docs(INSTALL): native run-time dependencies 2025-01-01 13:38:00 +01:00
Alain Emilia Anna Zscheile 1f7c6eafc7 chore(egui/menu_bar): fix nitpicks 2024-12-31 13:36:07 +01:00
Alain Emilia Anna Zscheile 44bcdbc0aa refactor(egui/menu_bar): remove unused `self` argument 2024-12-31 13:36:07 +01:00
Alain Emilia Anna Zscheile f454e248d7 refactor(egui/actions): put menu rendering into `actions` module 2024-12-31 13:35:20 +01:00
Alain Emilia Anna Zscheile b47459b3d7 refactor(egui/action): `into_*` methods instead of wrapping `::new` calls 2024-12-31 12:38:18 +01:00
Mikolaj Wielgus fbc71e46dc chore(ci): correct name of `check_licensing` flow
I copied and changed it from `check_formatting`, but forgot to rename in
one place.
2024-12-30 01:07:27 +01:00
Mikolaj Wielgus 71d27c994e chore(ci): add `reuse lint` check to CI to check REUSE compliance 2024-12-30 00:58:11 +01:00
Mikolaj Wielgus fcc3515fe7 chore(pre-commit): add `reuse lint` check to pre-commit for REUSE compliance 2024-12-30 00:55:34 +01:00
Mikolaj Wielgus d343a98a50 chore(licensing): remove the now-unneeded `LICENSE` file 2024-12-30 00:26:44 +01:00
Mikolaj Wielgus 5c2f72a259 chore(licensing): license assets, translations, tests, flake.lock via `REUSE.toml` 2024-12-30 00:18:54 +01:00
Mikolaj Wielgus 71cdc2794d chore(licensing): add REUSE headers to hidden files, `flake.nix`, `index.html`
I ran the following command in Fish shell:

```
reuse annotate --copyright="Topola contributors" --license="MIT" **/.gitignore {.woodpecker/*,.*}.yaml .rustfmt.toml flake.nix index.html
```
2024-12-30 00:18:38 +01:00
Mikolaj Wielgus 44c30caafe chore(licensing): add REUSE license headers to `**.{rs,md,toml}` files
I ran the following command in Fish shell:

```
reuse annotate --skip-unrecognised --copyright="Topola contributors" --license="MIT" **.{rs,md,toml}
```

The choice of year 2024 in the copyright statements is intentional.
2024-12-29 22:47:00 +01:00
Mikolaj Wielgus d8082f05b0 style: update en-US translatable string because it's read-only on Weblate
Follow-up from 1567a9a83e.
2024-12-29 16:42:53 +01:00
Mikolaj Wielgus 59478e0dbe chore(ci): replace running `pre-commit` with just a formatting check
Contrary to what I naively thought, `pre-commit` in CI does not result
in commit messages being checked. Another action `pre-commit` was
doing was running `cargo check`, but this is essentially the same as
building without compilation, and we are testing by building in other
CI-workflows. So we are left with only a formatting check, which does
not need installing and running `pre-commit`.
2024-12-29 03:03:35 +01:00
Mikolaj Wielgus 1567a9a83e style: rename "squeeze through under bands" to "(...) bends"
Everywhere except in translatable strings. I'm not changing these
because I prefer this to be done via Weblate.
2024-12-29 01:43:36 +01:00
Alain Emilia Anna Zscheile 82bf647bc5 doc(router/navmesh): document maybe_cw
Doc Comment content taken from @mikolaj, Topola Matrix Chat.
2024-12-14 19:56:29 +01:00
Alain Emilia Anna Zscheile 07f5398ef0 chore: run cargo fmt 2024-12-13 14:17:12 +01:00
hakki 422d1fe65c unittests: initial simple non-rectangle routing test 2024-12-12 21:29:46 +00:00
pppkkk 6664d28af3
Translated using Weblate (Polish)
Currently translated at 87.2% (41 of 47 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/pl/
2024-12-12 16:09:31 +00:00
Alain Emilia Anna Zscheile ba41ff6837 refactor: get rid of unnecessary bounds on struct generics 2024-12-12 16:38:26 +01:00
Alain Emilia Anna Zscheile 3cb3a9a230 refactor(specctra_derive): fix clippy warnings 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 81a6ec22d0 refactor(specctra-core): merge common.rs into lib.rs 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile ae006173ce chore(specctra-core/read): remove unnecessary bound from ListTokenizer 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 3e7526bcc6 chore(specctra-core): remove unused stuff 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 7737aaf0cc refactor(specctra-core/read): inline expect_leaf into only callsite 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile ca012a8c13 refactor(specctra-core/read): inline expect_* functions from ListToken into InputToken 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 81c0de1f91 refactor(specctra-core/read): implement read_named via read_optional 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 50ef279286 refactor(specctra-core/read): reuse String::read_dsn where possible 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 5e54453433 refactor(specctra-core/read): accept multiple possible names anywhere
Previously, some methods handled items/lists with multiple allowed names,
and some only allowed a single name. As the overhead of always handling
multiple names isn't that large, do that everywhere and make the overall
API more streamlined in the process.
2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile e90449b75e refactor(specctra-core/read): use macro to produce repetitive impl ReadDsn via FromStr 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 5f4496ffce refactor(specctra-core/read): align read_optional to be like read_array_with_alias 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 8fb9bfc0e6 feat(specctra-core/error): separate errors for expected leaf / end-of-list 2024-12-12 06:59:03 +00:00
Alain Emilia Anna Zscheile 8a724dc5d2 chore: fix deprecation warnings about geo::EuclideanDistance 2024-12-12 06:54:37 +00:00
Alain Emilia Anna Zscheile 35b2958c8d chore(geometry): run cargo fmt 2024-12-11 23:31:08 +01:00
Alain Emilia Anna Zscheile 41aeb97c16 fix(geometry/rwr): Fix missing pads due to buggy `add_to_compound`
The origin of this bug was found via git-bisect, commit
d6fe67a373
is buggy, which switches from GeometryWithRtree to RecordingGeometryWithRtree.

In PR #128, it was discovered that `add_to_compound` appears to
be missing the part that actually invokes the function that performs
the underlying action that is supposed to be diffed.

Fixes #127
2024-12-11 23:11:35 +01:00
Alain Emilia Anna Zscheile 9e0bdb5bc7 refactor: various further refactorings (#128)
These optimize out unnecessary code duplication, reserve vector capacity beforehand by leveraging `Iterator`s and avoid unnecessary double-lookups into HashMaps.

Reviewed-on: https://codeberg.org/topola/topola/pulls/128
Co-authored-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2024-12-11 14:13:21 +00:00
Mikolaj Wielgus ba0d441513 docs(contributing): add information about contributing by labeling 2024-12-10 05:09:11 +01:00
Mikolaj Wielgus 1c30cd253a docs(contributing): copyedit and clarify 2024-12-10 04:27:49 +01:00
Mikolaj Wielgus 0184a6537e feat(egui): have a separate layout color theme for light mode 2024-12-09 14:22:38 +01:00