wip: restore minimum configs for complement tests [DevOps/Pkging team input wanted] #1539
Draft
gamesguru
wants to merge 2 commits from
gamesguru/continuwuity:guru/ci/complement-test-ledger into main
pull from: gamesguru/continuwuity:guru/ci/complement-test-ledger
merge into: continuwuation:main
continuwuation:main
continuwuation:renovate/lock-file-maintenance
continuwuation:aranje/illegal-car-mods
continuwuation:renovate/recaptcha-verify-0.x
continuwuation:jade/community-guidelines
continuwuation:nex/experiment/push-gateway-logs
continuwuation:ginger/msc3575-obliteration
continuwuation:ginger/password-reset
continuwuation:renovate/docker-setup-qemu-action-4.x
continuwuation:renovate/rand_core-0.x
continuwuation:renovate/serde_html_form-0.x
continuwuation:renovate/reqwest-0.x
continuwuation:renovate/github-actions-non-major
continuwuation:nex/feat/block-busted-rooms
continuwuation:nex/fix/informative-startup-errs
continuwuation:ginger/no-left-room-initial-sync
continuwuation:nex/feat/policy-servers-2-electric-boogaloo
continuwuation:jade/docker-entrypoint
continuwuation:jade/dehydrated-devices
continuwuation:ginger/complement-fixes
continuwuation:nex/fix/stale-destination-cache
continuwuation:nex/experiment/sync-mutex
continuwuation:tcpipuk/docker-docs
continuwuation:jade/snafu
continuwuation:jade/rand-update
continuwuation:nex/stateres-refactor
continuwuation:ginger/779-in-troubleshooting
continuwuation:jade/liveit-guide
continuwuation:jade/http3
continuwuation:nex/feat/admin-hide-empty-rooms
continuwuation:ginger/oobe
continuwuation:nex/fix/debian-thingy
continuwuation:jade/ldap-admin-check
continuwuation:nex/fix/remote-restricted-joins
continuwuation:nex/feat/msc4406-sender-ignored
continuwuation:jade/deadlock-detection
continuwuation:nex/feat/room-shutdown
continuwuation:jade/get-started
continuwuation:jade/docs-guide
continuwuation:ginger/fix-local-invites
continuwuation:nex/fix/tpi
continuwuation:nex/feat/room-deletion
continuwuation:nex/feat/msc4322-media-redaction
continuwuation:ginger/stitched-order
continuwuation:jade/build-info
continuwuation:ginger/deps/update-rspress
continuwuation:jade/admin-announce-improvements
continuwuation:ginger/xtask-improvements
continuwuation:jade/improve-admin-config-display
continuwuation:nex/fix/better-stateres-error-logs
continuwuation:jade/sender-timeouts
continuwuation:nex/feat/custom-v12-room-ids
continuwuation:ginger/update-metadata
continuwuation:nex/feat/admin-force-logout
continuwuation:tom/max-perf-docs
continuwuation:nex/fix/invalid-appservice-reg
continuwuation:nex/feat/antispam
continuwuation:nex/feat/account-locking
continuwuation:jade/logging-cleanup
continuwuation:jade/remove-legacy-appservice-auth
continuwuation:nex/fix/key-query
continuwuation:jade/update-prek
continuwuation:nex/fix/room-summaries
continuwuation:ginger/restrict-admin-commands
continuwuation:ginger/enable-console-by-default
continuwuation:jade/tag-fixes
continuwuation:jade/otlp
continuwuation:nex/meta/pull-req-template
continuwuation:nex/fix/fed-invite-compliance
continuwuation:nex/feat/build-commit
continuwuation:nex/feat/join-logging
continuwuation:jade/mailmap-updates
continuwuation:jade/hack-ci-tmp
continuwuation:jade/v12-stable
continuwuation:jade/relations
continuwuation:ginger/database-refactor
continuwuation:jade/fix-ldap-uiaa
continuwuation:nex/fix/validation
continuwuation:ginger/nuke-invalid-msc4133-fields-in-migration
continuwuation:ginger/downgrade-artifact-actions
continuwuation:oddlid/reload-fix
continuwuation:jade/fix-assert
continuwuation:ginger/sync-v3-cleanup
continuwuation:ginger/remove-absolute-action-urls
continuwuation:jade/website
continuwuation:nex/fix/backoff
continuwuation:ginger/fix-mdbook-for-0.5
continuwuation:ginger/no-docker-on-prs
continuwuation:backport/v0.5.0-rc.8-1
continuwuation:nex/fed-improvements
continuwuation:jade/rust-1.90
continuwuation:jade/mirror-dockerhub
continuwuation:jade/clippy-fixes
continuwuation:jade/fix-support
continuwuation:jade/clean-images
continuwuation:jade/wal-compression-type
continuwuation:jade/flake-clone
continuwuation:ginger/upload-rpms-on-schedule
continuwuation:nex/fix/incoming-fetch
continuwuation:nex/fix/upgrade
continuwuation:tom/ci-fedora-rpm
continuwuation:jade/ci-release-fix
continuwuation:jade/rocksdb-10-5
continuwuation:ginger/fix-msc4133-migration
continuwuation:ginger/migrate-busted-tz
continuwuation:hydra/public
continuwuation:nex/feat/manual-extremities
continuwuation:nex/feat/async-media
continuwuation:nex/feat/fast-joins-hack-do-not-use-DO-NOT-USE
continuwuation:nex/feat/better-logging
continuwuation:trigger-ci-so-latest-isnt-on-illegal-car-mods
continuwuation:nex/feat/pins-backfill
continuwuation:jade/tuwunel-2025-06-old
continuwuation:jade/ai-slop-db-docs
continuwuation:nex/fix-create-auth
continuwuation:jade/version-stats
continuwuation:jade/read-receipts
continuwuation:jade/rust-toolchain-no-targets
continuwuation:jade/logging-features
continuwuation:jade/syncv5-typing
continuwuation:jade/msc2815
continuwuation:jade/purge-sync-tokens
continuwuation:morguldir/see-eye
continuwuation:jade/css-small-screen
continuwuation:nex/wip-751
continuwuation:tuwunel-rebase
continuwuation:test
continuwuation:oddlid/rename-admin-room-bot
continuwuation:strawberry/nix-ci-stuff
continuwuation:strawberry/valgrind
continuwuation:phonemain
continuwuation:strawberry/morgs-snake-sync-jason-main
continuwuation:newer-media-endpoints
continuwuation:folly-coroutines-async-io
continuwuation:federation-retry-timer-port
continuwuation:bad-attempt-at-extracting-homeserver-signing-key
continuwuation:room-deletion-attempt-do-not-use
No reviewers
Labels
Clear labels
This pull request or issue is currently blocked from being merged/closed
Something isn't working as intended
Commits picked from other conduit projects
This requires or includes changes to the database
Something dependency related
Automatic dependency upgrades by Renovate
Low difficulty to implement - touches few parts of the codebase, low complexity
High difficulty to implement - touches many parts of the codebase, high complexity
Medium difficulty to implement - touches more parts of the codebase, higher complexity
Improvements or additions to documentation
New feature or request
Good for newcomers
Additional eyes and keyboards are required for this one
Issues that have been inhereted from the project pre-fork
Features pertaining to homeserver administration
Features pertaining to the appservice API
Features pertaining to authentication
Features pertaining to client-to-server interactions
Issues relating to core matrix functionality, such as state resolution and PDU formats
Features pertaining to server-to-server interactions
Issues related to room version 12 and related changes (temporary label)
Features pertaining to unstable matrix features
Features pertaining to media interactions
Changes or issues related to trust & safety tooling
Related to housekeeping, maintenance, or other repo-meta.
Issues related to CI changes
Packaging
This issue is blocking the next release
This issue is very important
This issue is of a rather low priority
This item is related to general security
This issue has enough information and is confirmed
This issue or pull request already exists
This issue doesn't seem right
This issue needs further investigation
Questions or support requests
This will not be worked on
Ci/CD
Pull requests that update Rust code
Blocked
This pull request or issue is currently blocked from being merged/closed
Bug
Something isn't working as intended
Cherry-picking
Commits picked from other conduit projects
Database
This requires or includes changes to the database
Dependencies
Something dependency related
Dependencies/Renovate
Automatic dependency upgrades by Renovate
Difficulty
Easy
Low difficulty to implement - touches few parts of the codebase, low complexity
Difficulty
Hard
High difficulty to implement - touches many parts of the codebase, high complexity
Difficulty
Medium
Medium difficulty to implement - touches more parts of the codebase, higher complexity
Documentation
Improvements or additions to documentation
Enhancement
New feature or request
Good first issue
Good for newcomers
Help wanted
Additional eyes and keyboards are required for this one
Inherited
Issues that have been inhereted from the project pre-fork
Matrix/Administration
Features pertaining to homeserver administration
Matrix/Appservices
Features pertaining to the appservice API
Matrix/Auth
Features pertaining to authentication
Matrix/Client
Features pertaining to client-to-server interactions
Matrix/Core
Issues relating to core matrix functionality, such as state resolution and PDU formats
Matrix/E2EE
Matrix/Federation
Features pertaining to server-to-server interactions
Matrix/Hydra
Issues related to room version 12 and related changes (temporary label)
Matrix/MSC
Features pertaining to unstable matrix features
Matrix/Media
Features pertaining to media interactions
Matrix/T&S
Changes or issues related to trust & safety tooling
Meta
Related to housekeeping, maintenance, or other repo-meta.
Meta/CI
Issues related to CI changes
Meta/Packaging
Packaging
Priority
Blocking
This issue is blocking the next release
Priority
High
This issue is very important
Priority
Low
This issue is of a rather low priority
Security
This item is related to general security
Status
Confirmed
This issue has enough information and is confirmed
Status
Duplicate
This issue or pull request already exists
Status
Invalid
This issue doesn't seem right
Status
Needs Investigation
This issue needs further investigation
Support
Questions or support requests
To-Merge
Wont fix
This will not be worked on
old/ci/cd
Ci/CD
Archived
old/rust
Pull requests that update Rust code
Archived
No labels
Blocked
Bug
Cherry-picking
Database
Dependencies
Dependencies/Renovate
Difficulty
Easy
Difficulty
Hard
Difficulty
Medium
Documentation
Enhancement
Good first issue
Help wanted
Inherited
Matrix/Administration
Matrix/Appservices
Matrix/Auth
Matrix/Client
Matrix/Core
Matrix/E2EE
Matrix/Federation
Matrix/Hydra
Matrix/MSC
Matrix/Media
Matrix/T&S
Meta
Meta/CI
Meta/Packaging
Priority
Blocking
Priority
High
Priority
Low
Security
Status
Confirmed
Status
Duplicate
Status
Invalid
Status
Needs Investigation
Support
To-Merge
Wont fix
old/ci/cd
old/rust
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
continuwuation/continuwuity!1539
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "gamesguru/continuwuity:guru/ci/complement-test-ledger"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This pull request makes an attempt to bridge a testing gap and provide the ability to definitively and easily document complement deltas per commit (i.e., see what you broke/fixed), providing such feedback ideally within 15-25 minutes.
Current configs almost certainly do not work. They are copied verbatim from my fork, and config values won't work here as is. It may even depend on the
Makefile, which I pruned. This is really posted to get preliminary feedback and possibly involvement from the packaging team.I would like to maintain full compatibility both ways. In order to get this running on your guy's copy of the repo (cough docker-in-docker), some more modularization via resuable actions is likely needed, as well as pulling even more presently hard-coded config values dynamically from the repository env vars.
Ledger is stored as
jsonlon an orphan git branch,_metadata/badges. From this, the README.md is expected to populate the status badge intelligently based on branch and/or commit (master may have more failing tests than your PR branch, for example). Gitea and Github both have python on the backend, but interpolation in the README badge is quite limited.Pull request checklist:
mainbranch, and the branch is named something other thanmain.myself, if applicable. This includes ensuring code compiles.
This gets the award for longest CI script step I have seen ever, I believe. In general, storing results on a disconnected branch, and suggesting branch-aware README badges is highly unusual. The conventional approach (see, for example, hyperfine) is to store baseline results as JSON tidied away in a directory on main and compare PR results with those to check regressions. I'm not sure how easy scripting PR comments as a bot is with Forgejo, nor if it has issue matchers, but either of those would be preferable to just logging the results. You should also make an effort to break these steps up, using things like
actions/checkoutandactions/artifact(or whatever the equivalent here is if those don't work on Forgejo).@ -66,3 +79,2 @@* Your username for matrix will be in the form of `@username:federated.nexus`, however you can simply use the `username` part to log in. Your password is your password.* There's also [https://continuwuity.rocks/](https://continuwuity.rocks/). You can register a new account using Cinny via [this convenient link](https://app.cinny.in/register/continuwuity.rocks), or you can use Element or another matrix client *that supports registration*.- You can head over to [https://federated.nexus](https://federated.nexus/) in your browser.You appear to have included changes outside of the scope of the PR again, just to let you know.
The issue with that is then every time someone makes a PR merge, they need to update the complement results.
And I would prefer this be done on a commit-by-commit basis, not just on master. This would require two commits for every one commit, which I don't like.
Mozilla uses this orphan branch/metadata branch pattern. It's used more often than one might think.
web-platform-tests/results-analysis at gh-pages
https://github.com/web-platform-tests/results-analysis/tree/gh-pages
orphaned branches and commits get GC'd so im not sure that'd work
This could probably be accomplished by a service like grafana or codecov.
But unless someone has plans to get that working next week, this PR serves as an stopgap.
PR comments are nice, but also tricky to pull off, and can be quite annoying. Some of my PRs have over 300 commits I definitely don't want 300 bot comments.
PR comments are not easily traceable either. With the
jsonlfile ingit, I can do a whole bunch of cool queries and comparisons on the command line, let alone with more sophisticated tools.Ideally we would also track the exact deltas, test names, but currently that info is just available for 90 days on the Forge Runner logs from the web UI.
So basically this is intended to impl. gitlab's unit test reports if i understand it correctly?
I'm a lot more inclined to do this through a bot of some sort instead of a separate branch, as well. And update a single comment instead of commenting multiple times.
I could potentially see using something like https://github.com/test-summary/action. If our test outputs were to go to .xml files (as is the general standard), then that action can generate a markdown summary which can be used as a PR comment. I think that'd be the best course of action?
Optionally then making those xml files part of the artifacts for local inspection
The complement tests don't produce JUnit compliant
xmloutput as far as I know. They don't follow a standard.Furthermore, this is a gitlab specific plugin that gitea and github may not follow. That needs to be checked. I would like this to be something people can run on their forks, their PRs, using their own runners, without much additional config or installing any additional plugins.
Look, again guys I know my solution is rough around the edges, but it's something I can essentially have working tomorrow and decommission in 15 minutes if someone gets a more enterprise solution. To me it's important to get testing implemented ASAP.
I can remove the ledger aspect of this, although I really prefer not to since it to me is the genesis of tracking useful information.
I think the current file in
.forge/works with neither GitLab nor GitHub. It's possible just adding a symlink would resolve this.But my biggest ask for right now is just that it run on forge (gitea) forks. Since that way people can immediately run it on their PRs and advertise the unchanged or improved test results thru the status check.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.