Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
235 commits
Select commit Hold shift + click to select a range
004f3ac
fix(linux-grid): remove discarded drafts and act on the menu's row set
datlechin Oct 14, 2026
c0f2e4f
fix(linux-postgres): keep storage and compression across a type change
datlechin Oct 14, 2026
c4ad884
fix(linux-grid): move or cancel a waiting bulk delete when the key ch…
datlechin Oct 14, 2026
2b0fac6
fix(linux-grid): log a failed table read by its category, not its text
datlechin Oct 14, 2026
60e9d3b
fix(linux-storage): remove the tab file older builds wrote editor SQL…
datlechin Oct 14, 2026
b2aee4e
fix(linux-ssh): ask for a jump host's key when its config would not
datlechin Oct 14, 2026
400f8d5
fix(linux): drop late input to a closed component instead of panicking
datlechin Oct 14, 2026
a2deb1b
feat(linux-grid): set a cell to NULL with Ctrl+Backspace
datlechin Oct 14, 2026
8e39de1
fix(linux-grid): edit cells from lossless edit text with exact editors
datlechin Oct 14, 2026
80dee6e
feat(linux): run as TableProApplication with New Window and app quit
datlechin Oct 14, 2026
35be64a
feat(linux-sqlite): rebuild tables for changes ALTER TABLE cannot make
datlechin Oct 14, 2026
ee61e95
test(linux): check DDL conformance changes keep rows and indexes
datlechin Oct 14, 2026
700f007
fix(linux-ssh): copy the system ssh_config into a jump host's pin file
datlechin Oct 14, 2026
53df700
fix(linux-postgres): drop storage on a change to any type kept inline
datlechin Oct 14, 2026
abd5bde
refactor(linux-grid): let the ticket drop every stale bulk delete answer
datlechin Oct 14, 2026
bd27e34
fix(linux-grid): duplicate a draft as it is, in one undo step
datlechin Oct 14, 2026
9952a0f
fix(linux-grid): commit a calendar pick of the day already selected
datlechin Oct 14, 2026
5211d46
fix(linux-grid): open no editor on a boolean cell
datlechin Oct 14, 2026
514d742
fix(linux-grid): show text with a NUL character and refuse to edit it
datlechin Oct 14, 2026
360c521
fix(linux-grid): say in the delete prompt that unsaved rows go now
datlechin Oct 14, 2026
4e071c5
refactor(linux-grid): drop narrating comments and log a stray preset
datlechin Oct 14, 2026
c1002de
fix(linux-sqlite): refuse a rebuild of a table changed since it was read
datlechin Oct 14, 2026
2977134
fix(linux-sqlite): keep rows, rowids and comments through a rebuild
datlechin Oct 14, 2026
0a8508e
fix(linux-sqlite): refuse numbering changes the rowid column cannot take
datlechin Oct 14, 2026
c2db84e
fix(linux-sqlite): blame the right object when a rebuild refuses
datlechin Oct 14, 2026
2749a50
fix(linux-sqlite): offer no key edits on a table a rebuild cannot read
datlechin Oct 14, 2026
45857f4
fix(linux-sqlite): name inbound keys only from the child's full key list
datlechin Oct 14, 2026
489a6db
docs(linux): describe the checks around a SQLite table rebuild
datlechin Oct 14, 2026
b4eb8b7
Merge branch 'g2/sqlite' into refactor/linux-group2
datlechin Oct 14, 2026
786f0b9
Merge branch 'g2/grid' into refactor/linux-group2
datlechin Oct 14, 2026
a683b69
Merge branch 'g2/carry' into refactor/linux-group2
datlechin Oct 14, 2026
eec94e3
Merge branch 'g2/app' into refactor/linux-group2
datlechin Oct 14, 2026
f39c941
chore(linux): regenerate POTFILES and name Ctrl+Backspace for Set NULL
datlechin Oct 14, 2026
ade14d9
fix(linux-grid): let the bulk delete dialog close itself after an answer
datlechin Oct 14, 2026
2e78d76
fix(linux): write exported results and history off the GTK thread
datlechin Oct 14, 2026
4d3da83
fix(linux-grid): refuse to copy a value with a NUL character
datlechin Oct 14, 2026
968308d
ci(linux): keep blocking file I/O out of all UI code
datlechin Oct 14, 2026
0213999
fix(linux-sqlite): read INTEGER PRIMARY KEY DESC as an ordinary column
datlechin Oct 14, 2026
eb5ac2b
refactor(linux-structure): bind column, index and key lists to models
datlechin Oct 14, 2026
271aebb
feat(linux): open one window per connection session
datlechin Oct 14, 2026
7675a65
fix(linux): close a connect that lands after its window went
datlechin Oct 14, 2026
f55a230
docs(linux): put the window actions comment above their list
datlechin Oct 14, 2026
ff7a40d
fix(linux): keep Ctrl+W working on every page of a window
datlechin Oct 14, 2026
74ec9cf
fix(linux): close a connect still queued when its window shuts down
datlechin Oct 14, 2026
b418f26
fix(linux): retry a saved connection as it is saved now
datlechin Oct 14, 2026
9ac93d5
fix(linux): go to the failed page when resolving a file stops
datlechin Oct 14, 2026
f2b4921
fix(linux): look for SSH keys off the GTK thread
datlechin Oct 14, 2026
70f0574
fix(linux): hold the process until a saved query or edit is written
datlechin Oct 14, 2026
55974d9
fix(linux): close a window whose page is in use without a panic
datlechin Oct 14, 2026
a14b1a4
test(linux): pin the teardown order, late replies and NUL copies
datlechin Oct 14, 2026
7d071a6
refactor(linux): drop what-comments from the workspace input
datlechin Oct 14, 2026
2eb7fb6
docs(linux): record the window per session decision in ADR 0012
datlechin Oct 14, 2026
73fd97d
Merge branch 'g2/session' into refactor/linux-group2
datlechin Oct 14, 2026
6dfaa10
Merge branch 'g2/structure' into refactor/linux-group2
datlechin Oct 14, 2026
0ef6d6f
fix(linux): keep Ctrl+Home and Ctrl+End for the editor and grid in tabs
datlechin Oct 14, 2026
46f8058
feat(linux): ask for a refused password again from the failed page
datlechin Oct 14, 2026
63b76bb
feat(linux): name what a structure save drops, rebuilds included
datlechin Oct 14, 2026
4f1d3a9
feat(linux-structure): review destructive schema changes before saving
datlechin Oct 14, 2026
b0cc3a2
feat(linux): react to per-session reachability and resume from suspend
datlechin Oct 14, 2026
23915c0
feat(linux): locate moved SQLite files, ask before network opens
datlechin Oct 14, 2026
3b9024d
fix(linux): hold the process until connection list writes land
datlechin Oct 14, 2026
bec1b91
feat(linux-storage): count and delete a connection's query history
datlechin Oct 14, 2026
fcd3d58
fix(linux): delete a connection's secrets first, then purge its data
datlechin Oct 14, 2026
b1cb902
feat(linux-storage): add the restore-session setting
datlechin Oct 14, 2026
6255111
feat(linux): reopen the connection windows that were open at quit
datlechin Oct 14, 2026
7a45489
fix(linux): review a rejected SSH host key from the connection banner
datlechin Oct 14, 2026
6d4de65
docs(linux): describe reachability, resume and host key review
datlechin Oct 14, 2026
27caf8b
feat(linux-structure): validate index and foreign key dialogs live
datlechin Oct 14, 2026
edddff6
feat(linux): open SQLite files from Files and the command line
datlechin Oct 14, 2026
c84831a
fix(linux-grid): make grid cells keyboard focusable with native keys
datlechin Oct 14, 2026
36ef189
fix(linux-grid): list the data grid keys in the shortcuts dialog
datlechin Oct 14, 2026
00c8828
fix(linux): reconnect with the password typed for the session
datlechin Oct 14, 2026
851b2ac
fix(linux): offer Enter Password only for a secret the server refused
datlechin Oct 14, 2026
a0a1675
fix(linux): offer Retry for host keys the review cannot accept
datlechin Oct 14, 2026
23eb404
fix(linux): keep the host key review shut while ssh-keygen runs
datlechin Oct 14, 2026
d65005c
fix(linux): show workspace toasts as plain text, not markup
datlechin Oct 14, 2026
215ae86
test(linux): make the LAN reachability test depend on delivery
datlechin Oct 14, 2026
49eeafe
fix(linux): classify a linked SQLite file by its target's mount
datlechin Oct 14, 2026
9929de6
fix(linux): keep Locate from restoring a connection deleted elsewhere
datlechin Oct 14, 2026
e9a66af
test(linux): ask about shares for opened files and dialog connects
datlechin Oct 14, 2026
600cbf9
fix(linux): close a file's extra window only on its first claim
datlechin Oct 14, 2026
a573885
fix(linux-structure): header case for the foreign key form's row titles
datlechin Oct 14, 2026
37be8a3
fix(linux): restore sessions on an activate after an approved quit
datlechin Oct 14, 2026
ba505a9
fix(linux): drop a failed restore's key when a quit is cancelled
datlechin Oct 14, 2026
5857607
test(linux): check a logout quit keeps the sessions recorded
datlechin Oct 14, 2026
1bed375
fix(linux): keep a file's record while another window shows it
datlechin Oct 14, 2026
50a59b6
fix(linux): forget a restore whose window closes before it resolves
datlechin Oct 14, 2026
0fe4cff
fix(linux): hold the process while Reset renames the connection list
datlechin Oct 14, 2026
71fe00b
fix(linux): refuse a connect to a connection being deleted
datlechin Oct 14, 2026
e7c5079
fix(linux): say what a connection delete left behind
datlechin Oct 14, 2026
88b9093
fix(linux): write forgotten widths and filters before a delete ends
datlechin Oct 14, 2026
91a9192
fix(linux): purge a deleted connection's drafts after they land
datlechin Oct 14, 2026
300dc39
fix(linux-grid): return the focus to a cell when its popover closes
datlechin Oct 14, 2026
4e5483d
fix(linux-grid): toggle a focused check box with Space
datlechin Oct 14, 2026
65aa37c
test(linux-grid): match the column when a test focuses a cell
datlechin Oct 14, 2026
ef13009
Merge branch 'g2/health' into refactor/linux-group2
datlechin Oct 14, 2026
a00111c
docs(linux-grid): drop doc comments that restate the code
datlechin Oct 14, 2026
8f53035
docs(linux): say Tab carries a grid edit to the next cell
datlechin Oct 14, 2026
f3ba14e
Merge branch 'g2/creds' into refactor/linux-group2
datlechin Oct 14, 2026
cceb124
fix(linux-structure): keep add dialogs alive once the tab opens them
datlechin Oct 14, 2026
ec05c7f
fix(linux-structure): pick a SQLite key's table from its own schema
datlechin Oct 14, 2026
6415b55
fix(linux-structure): open one review at a time for a structure tab
datlechin Oct 14, 2026
509353c
fix(linux): stop a close's saves at the first declined review
datlechin Oct 14, 2026
6289b00
fix(linux-structure): refuse a save whose draft changed during review
datlechin Oct 14, 2026
485f005
refactor(linux): lay out a review's SQL as the plan preview does
datlechin Oct 14, 2026
334802b
Merge branch 'g2/sqlitefiles' into refactor/linux-group2
datlechin Oct 14, 2026
ae3ec59
style(linux): sort test support modules
datlechin Oct 14, 2026
b3edcc2
test(linux): store the read-only entry the location test opens
datlechin Oct 14, 2026
5d65e35
Merge branch 'g2/review' into refactor/linux-group2
datlechin Oct 14, 2026
a1f4f66
Merge branch 'g2/keyboard' into refactor/linux-group2
datlechin Oct 14, 2026
aabcf51
Merge branch 'g2/restore' into refactor/linux-group2
datlechin Oct 14, 2026
b06739a
fix(linux): restore the last sessions before opening handed-over files
datlechin Oct 14, 2026
0ef716d
fix(linux-grid): let go of the focus in a row the list removes
datlechin Oct 14, 2026
cbd92a2
fix(linux): close each dialog only once
datlechin Oct 14, 2026
4d65d32
refactor(linux-grid): draw cells from borrowed text in data-table rows
datlechin Oct 14, 2026
f842907
test(linux): run the open_files test, which the harness skipped
datlechin Oct 14, 2026
dfc918d
docs(linux): document the application, windows and sessions
datlechin Oct 14, 2026
99fa3a7
feat(linux): classify SQL that carries credentials for history
datlechin Oct 14, 2026
5b77af1
feat(linux-storage): add the save-query-history setting
datlechin Oct 14, 2026
46b0b61
feat(linux): turn off query history and skip credential statements
datlechin Oct 14, 2026
3ad7fbc
perf(linux-grid): own each browse page once and load it in one splice
datlechin Oct 14, 2026
bf8dc7a
fix(linux): hand over a credential prompt's Connect, not a cancel
datlechin Oct 14, 2026
a58a4eb
test(linux): answer test alerts by clicking their button
datlechin Oct 14, 2026
af488c2
docs(linux): say what a second launch forwards and when closed fires
datlechin Oct 14, 2026
fadd32c
ci(linux): check the paths and types the app docs name
datlechin Oct 14, 2026
e4d4a2e
fix(linux): read routine strings, /*! comments and OPENROWSET calls
datlechin Oct 14, 2026
2463114
fix(linux): add the credential carriers each engine was missing
datlechin Oct 14, 2026
2d98eb5
fix(linux-editor): judge a run's history entry by its own engine
datlechin Oct 14, 2026
c39ac16
Merge branch 'g2/grid' into refactor/linux-group2
datlechin Oct 14, 2026
44c0813
Merge branch 'g2/history' into refactor/linux-group2
datlechin Oct 14, 2026
f8b4bbd
Merge branch 'g2/docs' into refactor/linux-group2
datlechin Oct 14, 2026
2e8719e
feat(linux): build the About dialog from the app metainfo
datlechin Oct 14, 2026
ec7b085
test(linux): pass the settings and askpass tests in one test process
datlechin Oct 14, 2026
96e7765
feat(linux-core): add streaming CSV, TSV, JSON and Markdown encoders
datlechin Oct 14, 2026
b9bfa1e
fix(linux-grid): refresh browse tabs in place and keep the last good …
datlechin Oct 14, 2026
bad15f2
fix(linux-grid): fail browse tabs on unreadable columns, refetch on r…
datlechin Oct 14, 2026
9aec693
build(linux): ship third-party license notices
datlechin Oct 14, 2026
a1287c3
fix(linux): keep loaded structure on screen when a structure read fails
datlechin Oct 14, 2026
c1ab8a9
Merge commit 'ec7b08570' into refactor/linux-group3
datlechin Oct 14, 2026
b5d7f18
Merge origin/linux (#3413 squash, same tree as ec7b08570) into refact…
datlechin Oct 14, 2026
d2ad801
feat(linux): stream exports to disk off the GTK thread with progress
datlechin Oct 14, 2026
493b5d2
feat(linux-grid): show row count estimates and count exact totals on …
datlechin Oct 14, 2026
275c6d1
Merge remote-tracking branch 'origin/linux' into refactor/linux-group3
datlechin Oct 14, 2026
bcc2ab6
chore(linux): skip license text in the banned-words diff check
datlechin Oct 14, 2026
38f83cd
feat(linux-grid): copy rows as typed clipboard data off the GTK thread
datlechin Oct 14, 2026
769d669
test(linux): run the history preference test on the GTK thread
datlechin Oct 14, 2026
ddc895d
fix(linux): give license notices each crate's own copyright lines
datlechin Oct 14, 2026
2ea1200
build(linux): embed the translated metainfo Meson installs
datlechin Oct 14, 2026
e38c717
refactor(linux): drop the section count add_legal_sections returned
datlechin Oct 14, 2026
a35f9ac
refactor(linux): route every shortcut through one accelerator table
datlechin Oct 14, 2026
396f7db
test(linux): press real keys through XTEST in the shortcut tests
datlechin Oct 14, 2026
23285b2
fix(linux-grid): keep rows behind a browse error page out of reach
datlechin Oct 14, 2026
a8a99ef
fix(linux-grid): run a row count only when the estimate or user asks
datlechin Oct 14, 2026
3046cd8
fix(linux-grid): move to the new last page when a save empties a page
datlechin Oct 14, 2026
9205d7d
fix(linux-grid): give each browse column read its own page recheck
datlechin Oct 14, 2026
da116d4
fix(linux): ask for Retry when a structure edit waits on a failed read
datlechin Oct 14, 2026
e5b2d52
chore(linux): say why the number format cache is no window state
datlechin Oct 14, 2026
65a067a
fix(linux-grid): drop a copy that lands after a later one
datlechin Oct 14, 2026
569ff86
fix(linux): clean up the file when an export's close fails
datlechin Oct 14, 2026
5b676b0
perf(linux-core): keep one CSV writer per encoder, not one per row
datlechin Oct 14, 2026
5ff7060
docs(linux): say what ReplaceFileWriter keeps and drop a false fix
datlechin Oct 14, 2026
f6f6f76
Merge remote-tracking branch 'origin/linux' into refactor/linux-group3
datlechin Oct 14, 2026
3d0446b
fix(linux): announce the keys of the browse tab buttons
datlechin Oct 14, 2026
9eab9b5
fix(linux): turn off the selection keys when a new page drops the rows
datlechin Oct 14, 2026
324a3e0
fix(linux): refuse a new row in a read-only table tab from any sender
datlechin Oct 14, 2026
587ad43
docs(linux): correct notes the tab-local shortcuts made stale
datlechin Oct 14, 2026
e6cfa62
Merge branch 'g3/browse' into refactor/linux-group3
datlechin Oct 14, 2026
0ea8c38
Merge branch 'g3/export' into refactor/linux-group3
datlechin Oct 14, 2026
eace9da
Merge branch 'g3/shell' into refactor/linux-group3
datlechin Oct 14, 2026
d5927f1
Merge branch 'g3/about' into refactor/linux-group3
datlechin Oct 14, 2026
3bcdf3e
build(linux): add the icu crates to the license notices
datlechin Oct 14, 2026
2acafae
refactor(linux): split header bars per pane, tab overview at the root
datlechin Oct 14, 2026
ab7ece5
feat(linux-session): add an export operation kind with no deadline
datlechin Oct 14, 2026
cbd0ba7
feat(linux): export whole tables and complete query results
datlechin Oct 14, 2026
0faff15
feat(linux-history): search by substring and page results in a list view
datlechin Oct 14, 2026
eaaa78e
fix(linux-history): list connections that have history and undo deletes
datlechin Oct 14, 2026
3b97603
feat(linux): show editor result row limits with a banner and Export All
datlechin Oct 14, 2026
6f6154c
refactor(linux-history): filter with drop-downs and a toggle group
datlechin Oct 14, 2026
9895e74
fix(linux): select the history database in Files instead of its folder
datlechin Oct 14, 2026
ef30ef2
test(linux-history): cover the Menu key on a focused history row
datlechin Oct 14, 2026
2a59897
feat(linux-grid): sort editor result grids by column header
datlechin Oct 14, 2026
ecc943e
feat(linux-editor): find and replace backed by GtkSourceSearchContext
datlechin Oct 14, 2026
18e6eaf
test(linux): reach the driver before cancelling in the window floor test
datlechin Oct 14, 2026
4352de0
fix(linux): resolve tab titles in one place, mark unsaved tabs by icon
datlechin Oct 14, 2026
b67ea0d
fix(linux-storage): read exported history entries in chunks of ids
datlechin Oct 14, 2026
0599886
fix(linux-history): read the next page right after a search or a delete
datlechin Oct 14, 2026
6b6ee32
fix(linux-history): toggle rows on click and pin without reloading
datlechin Oct 14, 2026
5de80e1
fix(linux): fail an export when a read ends Ok after its sink stopped
datlechin Oct 14, 2026
7215952
perf(linux): stream HTML, XML and SQL exports a row at a time
datlechin Oct 14, 2026
33e2f2b
fix(linux): say Export All runs without the editor's USE or SET
datlechin Oct 14, 2026
8439b04
fix(linux): refuse Excel for a table with more rows than a sheet holds
datlechin Oct 14, 2026
a067b78
refactor(linux-grid): sort every column that can hold text the same way
datlechin Oct 14, 2026
fa2e79b
fix(linux-grid): sort intervals by length, as PostgreSQL compares them
datlechin Oct 14, 2026
451325d
perf(linux-grid): compare decimals by reference when sorting
datlechin Oct 14, 2026
ffecffa
Merge branch 'g3/export2' into refactor/linux-group3
datlechin Oct 14, 2026
96b8795
Merge branch 'g3/history' into refactor/linux-group3
datlechin Oct 14, 2026
e3a997e
Merge branch 'g3/shell2' into refactor/linux-group3
datlechin Oct 14, 2026
37278c8
docs(linux): document editor runs, history search and structure review
datlechin Oct 14, 2026
5262098
ci(linux): check storage.md for names the tree no longer has
datlechin Oct 14, 2026
3b48680
docs(linux): correct storage errors, script batches and test notes
datlechin Oct 14, 2026
32b8511
feat(linux-sidebar): list every schema's tables in a recycling list
datlechin Oct 14, 2026
b1a100c
feat(linux-grid): show pending changes without colour, name NULL cells
datlechin Oct 14, 2026
dc7c552
feat(linux): label icon-only buttons for screen readers
datlechin Oct 14, 2026
8becb8f
fix(linux-picker): show connection changes in every window's picker
datlechin Oct 14, 2026
55a7c11
fix(linux-grid): redraw the row a newer error flash replaced
datlechin Oct 14, 2026
34a1bb6
refactor(linux-grid): share one row revision watch between factories
datlechin Oct 14, 2026
9aecd2f
docs(linux-grid): say data_columns follows the cells only as built
datlechin Oct 14, 2026
e471b9a
test(linux): drop signal handlers from templates in the label walk
datlechin Oct 14, 2026
2e66419
docs(linux): fold the accessibility entries into the existing ones
datlechin Oct 14, 2026
a065493
fix(linux-sidebar): open the focused row's menu from the keyboard
datlechin Oct 14, 2026
9674eda
fix(linux-sidebar): open the pressed table and say what each row is
datlechin Oct 14, 2026
dccccac
fix(linux-sidebar): name schemas after a reconnect and in the drop pr…
datlechin Oct 14, 2026
ea8f370
fix(linux-picker): keep unchanged rows and group underscores
datlechin Oct 14, 2026
2ee31e6
Merge branch 'g3/sidebar' into refactor/linux-group3
datlechin Oct 14, 2026
c7a5cf0
Merge branch 'g3/pending' into refactor/linux-group3
datlechin Oct 14, 2026
5261b82
Merge branch 'g3/docs' into refactor/linux-group3
datlechin Oct 14, 2026
402b444
test(linux): walk the picker's template for icon labels too
datlechin Oct 14, 2026
f029ac7
docs(linux): say SQL Server batches go whole in the script runner
datlechin Oct 14, 2026
f43418d
fix(linux-export): remove only the file a stopped export made
datlechin Oct 14, 2026
687dd36
test(linux): wait for the row total before exporting the page
datlechin Oct 14, 2026
bc01059
fix(linux-grid): keep the way back open after a failed page turn
datlechin Oct 14, 2026
42b7f77
fix(linux-grid): let a copy still rendering give way to a later one
datlechin Oct 14, 2026
72e657b
ci(linux): keep the Meson test log when a suite fails
datlechin Oct 14, 2026
227bc19
fix(linux-grid): write an IN clause copy in the server's literals
datlechin Oct 14, 2026
a58d125
fix(linux): show every toast as plain text
datlechin Oct 14, 2026
b90e5d7
fix(linux-export): create export files readable by their owner only
datlechin Oct 14, 2026
3e1e715
fix(linux): escape names in status page descriptions
datlechin Oct 14, 2026
cd1dc92
fix(linux-structure): offer no Drop on a read-only connection
datlechin Oct 14, 2026
305269a
fix(linux-grid): neutralise formulas in tab-separated copies
datlechin Oct 14, 2026
9d06b85
fix(linux-storage): keep history export comments on one line
datlechin Oct 14, 2026
d429678
test(linux-grid): expect the case-blind order the string sorter gives
datlechin Oct 14, 2026
8d2045d
fix(linux-export): write Excel exports a batch of rows at a time
datlechin Oct 14, 2026
6d38f69
Merge branch 'g3/fix' into refactor/linux-group3
datlechin Oct 14, 2026
d4626be
build(linux): update rustls to 0.23.46 for RUSTSEC-2026-0346 to 0349
datlechin Oct 14, 2026
1ec2c9d
test(linux-grid): wait for the first page with a failed count
datlechin Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
46 changes: 46 additions & 0 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,14 @@ jobs:
echo "::error::add window actions with add_action_entries on the window, not a group inserted as win"
exit 1
fi
- name: Tab ids in the tab index
# TabIndex maps a page to its tab. qdata on a page is unsafe to
# read and outlives the tab it names.
run: |
if grep -rn 'set_qdata' crates/app/src; then
echo "::error::map a tab page to its tab through TabIndex, not set_qdata"
exit 1
fi
- name: Docs name paths and types that exist
# A renamed type or a moved file stays named in prose until
# something asks. GTK and GLib names resolve against the GIR
Expand All @@ -139,6 +147,7 @@ jobs:
../scripts/check-doc-symbols.sh \
linux/ARCHITECTURE.md \
linux/docs/state-management.md \
linux/docs/storage.md \
linux/docs/testing.md \
linux/docs/decisions/0012-window-per-session.md
- name: Clippy
Expand All @@ -149,13 +158,50 @@ jobs:
run: meson compile -C _build
- name: Tests
run: xvfb-run -a dbus-run-session -- meson test -C _build --print-errorlogs
# Meson prints only the last 100 lines of a failed suite, which leaves
# out the names of the tests that failed.
- name: Keep the Meson test log
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: meson-testlog
path: linux/_build/meson-logs/testlog.txt
if-no-files-found: ignore
retention-days: 7
- name: Secret Service tests
run: |
dbus-run-session -- bash -c "gnome-keyring-daemon --components=secrets --daemonize --unlock <<< ci \
&& meson devenv -C _build cargo test --locked -p tablepro-storage --test secret_service -- --ignored"
- name: Dist
run: meson dist -C _build --no-tests --formats xztar

licenses:
name: Third-party licenses
runs-on: ubuntu-24.04
defaults:
run:
working-directory: linux
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event_name == 'schedule' && 'linux' || github.ref }}
- uses: dtolnay/rust-toolchain@ce678459e9fc7500d337468f904b95f1b5c10b5e # 1.98
with:
toolchain: "1.98"
- uses: taiki-e/install-action@3f74d7c16a4242f1c95561e98edc25d36adb4375 # v2.87.12
with:
tool: cargo-about@0.9.2
- name: Regenerate the notices from Cargo.lock
run: build-aux/update-third-party-licenses.sh
- name: The committed notices cover every shipped crate
# A crate added to or bumped in Cargo.lock changes the regenerated
# files, and so does one whose license text changed.
run: |
if ! git diff --exit-code -- data/licenses; then
echo "::error::data/licenses does not match Cargo.lock: run linux/build-aux/update-third-party-licenses.sh and commit the result"
exit 1
fi

i18n:
name: Translations
runs-on: ubuntu-24.04
Expand Down
7 changes: 7 additions & 0 deletions linux/.config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@ test-group = 'session'
filter = 'package(tablepro) & kind(test)'
test-group = 'app'

# These press real keys on the X display every test shares. A window
# another test presents takes the focus, and the keys with it, so each
# runs with no other test beside it.
[[profile.default.overrides]]
filter = 'package(tablepro) & test(/::real_keys::/)'
threads-required = 'num-test-threads'

[profile.ci]
fail-fast = false
# A hung test fails with its name after five minutes. Without a bound it
Expand Down
1 change: 1 addition & 0 deletions linux/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,6 @@ From the repository root, through the verification wrapper, which keeps the full

- **Fast checks**: format, both clippy runs, build, every Meson suite, the Secret Service tests, `meson dist`.
- **Translations**: the POT template, with gettext 0.24.
- **Third-party licenses**: reruns `build-aux/update-third-party-licenses.sh` and fails when `data/licenses` differs from what it writes, or when a crate has no license file cargo-about can read.
- **Docker tests** (`integration`): one matrix job per package on the host runner, for the PostgreSQL, MySQL, SQL Server and ClickHouse drivers, `tablepro-ssh` and `tablepro-test-fixtures`.
- **Docker tests (tablepro-session)** (`integration-session`) and **Docker tests (tablepro)** (`integration-app`): in the fast job's `ubuntu:26.04` image with the host's Docker socket, because the session crate links GLib 2.88 and the app GTK 4.22, which the host runner lacks. The app job runs only its named test targets, since the `startup` test needs Meson.
Loading
Loading