d10b164b61
Properly catch errors during URL building
2025-12-09 16:27:00 +01:00
3d73094192
Refactor rendering code to prevent illegal states
...
Store the rendered tree information such that it is impossible to
represent a set of data that is incorrect.
2025-12-09 16:27:00 +01:00
6d6fffcb4a
Reduce error potentials in type label parsing
2025-12-09 15:33:57 +01:00
b66e8c8d9c
Replace dirty unwrap() with expect("TODO")
...
This makes it obvious where better error handling is still needed.
2025-12-09 15:29:21 +01:00
983ceb2076
Be quiet about the techtree update commit
/ build (push) Successful in 1m9s
2025-10-17 12:55:06 +02:00
305da2b7d7
Make logs less noisy
...
/ build (push) Successful in 1m5s
Don't emit log messages about issues with no changes.
2025-10-17 12:50:31 +02:00
c8b848d89b
Ignore external issue dependencies
...
/ build (push) Successful in 1m6s
Issues in forgejo can also depend on issues from other repositories.
Ignore such external dependencies when building the techtree.
2025-10-17 12:46:14 +02:00
1451b42912
README: Fix mermaid newlines
/ build (push) Successful in 1m5s
2025-10-12 09:58:42 +02:00
77d7d3aef6
Introduce a digest epoch
...
/ build (push) Successful in 1m4s
To add a mechanism for updating all issue comments after a code change,
introduce a HASH_EPOCH constant which gets mixed into the stable hash
for each issue. Changing this value will force all issue comments to be
updated.
2025-10-05 18:59:47 +02:00
da085da38f
Fix newlines in mermaid diagrams
...
/ build (push) Successful in 1m6s
Apparently an upgrade of our Forgejo version lead to `\n` no longer
being rendered as a newline in mermaid. Replace with `<br/>` which does
the right thing.
2025-10-05 18:44:07 +02:00
926d546c42
Properly escape element descriptions
...
/ build (push) Successful in 1m7s
Make sure dot is happy with the provided labels by correctly escaping
special characters inside the element descriptions.
2025-09-26 00:56:56 +02:00
22c489f983
Slightly highlight root elements
...
/ build (push) Successful in 1m6s
In the dot representation of the techtree, highlight root elements with
a slightly different shade so they are easy to pick out.
This tells people at a glance what topics they can immediately start
working on :)
2025-07-28 16:11:50 +02:00
9519414929
Push all ultimate elements to the bottom of the graph
...
/ build (push) Successful in 1m6s
In dot rendering, put all ultimate elements (those that nothing further
depends on) on the same rank, meaning the very bottom.
This helps to visualize our ultimate goals more easily and also shows
elements that are probably a requisite to something else that has not
yet been modelled.
2025-07-28 15:40:05 +02:00
1f889245af
Make tree serde-serializable
2025-07-28 15:29:26 +02:00
92e8ea066f
Hint about TECHTREE_FAKE=1 trick
...
Make it easier to get started with the techtree-manager codebase by
hinting at the TECHTREE_FAKE=1 variable for local development.
2025-07-28 15:29:26 +02:00
d4b8241808
Allow running the manager without a token
...
This is useful for local testing.
2025-05-30 21:35:00 +02:00
96bb2540ba
Update README
...
/ build (push) Successful in 1m4s
Use media link for the techtree image.
2025-05-28 11:46:24 +02:00
511a4467a3
Update README
...
/ build (push) Successful in 1m5s
Also update the mermaid classes that are used in the README.
Fixes: 1cefb058bf ("manager: Fix mermaid style on dark Forgejo theme")
2025-05-28 03:02:30 +02:00
e188e18637
Update README
/ build (push) Successful in 1m5s
2025-05-28 02:54:31 +02:00
1cefb058bf
manager: Fix mermaid style on dark Forgejo theme
...
/ build (push) Successful in 1m6s
Forgejo seems to automatically choose a light font color for mermaid
graphs when the site-theme is dark. This conflicts with the background
colors of our mermaid nodes. Explicitly force a dark font color to
ensure the text is also readable on dark Forgejo.
2025-05-25 15:33:46 +02:00
15726d9ee8
manager: Apply rustfmt
2025-05-25 15:33:46 +02:00
cc05ba7407
manager: Simplify very complex mermaid graphs
...
/ build (push) Successful in 1m4s
Forgejo has a limit of 5000 characters per mermaid graph. We started
hitting this for some issues. Regenerate a somewhat simplified version
of the subtree in this case which hopefully does not hit the same limit
again.
2025-05-25 03:44:07 +02:00
42ec50cb64
manager: Add license
/ build (push) Successful in 1m6s
2025-05-24 21:16:29 +02:00
c08beba27b
manager: Implement pagination for issue fetching
...
/ build (push) Successful in 1m6s
Forgejo seems to limit requests to 50 issues server side, regardless of
the limit we send in our request. This means we have to fetch each page
separately regardless.
2025-05-24 21:10:12 +02:00
95991f47d4
Remove original tech tree dot file
...
/ build (push) Successful in 1m6s
All information has been transcoded into the issue manager.
2025-05-23 01:19:28 +02:00
d900bd80ab
manager: Fix fake event not pointing at the correct repo
2025-05-23 00:46:15 +02:00
b484256246
manager: Mark completion using a label
...
/ build (push) Successful in 1m7s
Don't use the open/close state of the issues to mark their completion.
This has friction with dependencies, because you can only add
dependencies on open issues.
Instead, issues are marked as completed using a "Completed" label now.
2025-05-23 00:44:36 +02:00
8ae5ff6b81
README: Use live link of the rendered tech tree
/ build (push) Successful in 1m6s
2025-05-22 21:50:10 +02:00
3fae6a2b7c
ci: Limit build jobs to main branch
/ build (push) Successful in 1m6s
2025-05-22 21:29:29 +02:00
7762dbe80f
README: Document how this tech tree works
2025-05-22 21:28:21 +02:00
c1936c7ed2
manager: More cleanup
2025-05-22 20:37:10 +02:00
785ff37107
manager: The big refactoring
...
Clean up the logic in main to make it more readable. Factor out common
functionality into the respective modules.
2025-05-22 20:28:38 +02:00
bc54cd91fd
manager: Factor out a common context object
...
Clean up the global data a bit by bundling it in a context object.
2025-05-22 18:47:31 +02:00
eebbd9c453
manager: Fix double comment bug
...
When the job for the new issue is scheduled later than another manager
run, we create a second comment due to the previously unconditional
comment creating. Always look for an existing comment first.
2025-05-22 17:56:28 +02:00
f11d8459ba
manager: Wait a bit before collecting new issue
2025-05-22 17:37:45 +02:00
34e9a99d61
manager: Fix pagination limit for issue list
...
It turns out that `None` does not disable pagination, it just uses the
default limit. Set an obscenely high limit to ensure we get the full
list.
2025-05-22 17:24:48 +02:00
e418d9d720
manager: Reduce noise from git commands
2025-05-22 17:20:01 +02:00
4d7bc0742e
ci: Don't run manager on "issue unlabeled"
2025-05-22 17:11:18 +02:00
ec5a71b936
manager: Make graph tree more tall than wide
...
Helps with readability.
2025-05-22 16:59:40 +02:00
34d7a371b3
manager: Drop wiki page updates
...
Let's focus on the dot-based total tree
2025-05-22 16:12:13 +02:00
a6aa02aa40
manager: wiki: Fix deprecation warning about base64::encode()
2025-05-22 16:12:13 +02:00
c93f701ef8
manager: Allow dead_code
...
For now, this makes development easier
2025-05-22 16:12:13 +02:00
6d7af36726
manager: Ignore errors while removing labels
2025-05-22 15:58:13 +02:00
24e834dde3
manager: Don't hardcode repository URL
2025-05-22 15:49:06 +02:00
d0c8389c3b
manager: Apply rustfmt
2025-05-22 15:49:06 +02:00
f04beb5dea
manager: Remove Stale label if present
...
The stale label provides an easy way to force CI runs for issues after
changing dependencies.
2025-05-22 15:49:06 +02:00
e274f6206c
manager: Configure a git identity for committing
2025-05-22 15:02:57 +02:00
cf484fe21c
manager: Fix ignoring subcommand exit status
2025-05-22 15:00:28 +02:00
9198ffa10a
README: Reference rendered tree
2025-05-22 14:55:35 +02:00
656b8f4b25
manager: Add new dependencies to nix shell
2025-05-22 14:55:35 +02:00