chiark / gitweb /
Ian Jackson [Mon, 3 Feb 2025 17:58:18 +0000 (17:58 +0000)]
autopkgtest: adt-initscript: require rsyslog init script
We run rsyslog, so we do need its init script (unless we're running
under systemd).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 4 Feb 2025 15:01:00 +0000 (15:01 +0000)]
autopkgtest: adt-initscript: turn on set -x in the init script
Via /etc/default. This may help debugging.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 5 Feb 2025 14:06:50 +0000 (14:06 +0000)]
autopkgtest: adt-full: do not start a duplicate uservd
This is already done as part of setup-pair by setup-host.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 3 Feb 2025 17:55:04 +0000 (17:55 +0000)]
autopkgtest: adt-full: allow systemd-sysv as alt to init script
orphan-sysvinit-scripts and systemd conflict. The effect is that in
ci.debian.net this dep would want to change the init system.
What we actually need is rsyslog to be started, which is satisfied
with systemd-sysv since then systemd is the init system and rsyslog
has a systemd unit. (I believe.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 3 Feb 2025 23:40:10 +0000 (23:40 +0000)]
autopkgtest: setup-host unwanted deps: handle | properly
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 5 Feb 2025 01:36:58 +0000 (01:36 +0000)]
autopkgtest: setup-host: clean out possibly-wrong /dev/log
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 4 Feb 2025 19:53:18 +0000 (19:53 +0000)]
autopkgtest: setup-host server: fall back to starting rsyslogd by hand
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 4 Feb 2025 14:50:14 +0000 (14:50 +0000)]
autopkgtest: properly quote $cs in perl scripts
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 5 Feb 2025 14:03:46 +0000 (14:03 +0000)]
autopkgtest: redirect stdout to stderr
The test environment mangles the relative ordering of the stderr and
stdout xtreams, which can be very confusing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 3 Feb 2025 18:01:33 +0000 (18:01 +0000)]
HACKING.md: Document running one test case
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 17:24:31 +0000 (17:24 +0000)]
Merge branch 'release' into 'main'
Update version to 1.2.0
See merge request iwj/hippotat!48
Ian Jackson [Sun, 2 Feb 2025 16:59:43 +0000 (16:59 +0000)]
Update version to 1.2.0
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 17:05:27 +0000 (17:05 +0000)]
Merge branch 'ci' into 'main'
autopkgtests: Use `isolation-machine` restriction
See merge request iwj/hippotat!47
Ian Jackson [Sun, 2 Feb 2025 16:45:53 +0000 (16:45 +0000)]
autopkgtests: Use `isolation-machine` restriction
Instead of `x-hippotat-adt-broken-in-debci`. We think this may help,
with appropriate configuration in ci.d.n.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 15:12:10 +0000 (15:12 +0000)]
Merge branch 'hyper' into 'main'
Switch to hyper 1.x
See merge request iwj/hippotat!46
Ian Jackson [Sun, 2 Feb 2025 13:02:14 +0000 (13:02 +0000)]
Switch to hyper 1.x
We need to update our minimal tokio too, to avoid a compile failure
somewhere in our dependency tree.
Ian Jackson [Sun, 2 Feb 2025 11:57:11 +0000 (11:57 +0000)]
Fix a debug print to use # format for anyhow::Error
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 12:24:26 +0000 (12:24 +0000)]
Make config::startup()'s G callback async
We're going to call tokio::net::TcpListener::bind(),
which is async.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 12:34:51 +0000 (12:34 +0000)]
Add hyper-util dependency
We're going to need this for TokioIo
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:52:00 +0000 (12:52 +0000)]
Drop our explicit hyper-tls dependency
This is now handled by reqwest.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:46:48 +0000 (13:46 +0000)]
Prep for hyper 1: Move saddr conversion earlier
And prepare for doing the listening here.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:42:09 +0000 (13:42 +0000)]
Prep for hyper 1: Break out conn.remote_addr() call
This call will go away with hyper 1.
This will reduce the size of the eventual diff.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:36:24 +0000 (13:36 +0000)]
Prep for hyper 1: Reorganise service_fn call
We're going to want this to be more static. The future-lifted map
doesn't have the right lifetimes. Instead, use an async block
and un-lifted unwrap_or_else.
This will reduce the size of the eventual diff.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:32:00 +0000 (13:32 +0000)]
service.c: Better handling of clones
Use the same variable name throughout, and clone things in a
surrounding block.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:53:43 +0000 (13:53 +0000)]
Prep for hyper 1: break out service_fn call
This will reduce the size of the eventual diff.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:53:29 +0000 (13:53 +0000)]
Rename addr variable to saddr
For clarify vs caddr.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:29:20 +0000 (13:29 +0000)]
Rename conn variable to caddr
conn is very confusing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 13:27:43 +0000 (13:27 +0000)]
Prep for hyper 1: rewrap service_fn call
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 2 Feb 2025 11:22:17 +0000 (11:22 +0000)]
Merge branch 'reqwest' into 'main'
Switch to reqwest in the client
See merge request iwj/hippotat!45
Ian Jackson [Sat, 1 Feb 2025 12:43:48 +0000 (12:43 +0000)]
Switch to reqwest in the client
hyper 1.x doesn't have a connection pool.
We want that, so let's use reqwest.
The URL type has changed, annoyingly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:43:17 +0000 (12:43 +0000)]
Switch to reqwest in the client (minor pre-reorg)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 11:21:29 +0000 (11:21 +0000)]
ReadLimitedError: Don't demand that the stream is Unpin and Debug
We're going to use futures::stream::unfold().
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 11:19:55 +0000 (11:19 +0000)]
ReadLimitedError: Make it generic over the error type
We're going to have reqwest for the client and hyper for the server.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:36:39 +0000 (12:36 +0000)]
Add http-body-util dependency
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 11:08:36 +0000 (11:08 +0000)]
Add http-body dependency
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 00:05:32 +0000 (00:05 +0000)]
Add reqwest dependency
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 13:24:34 +0000 (13:24 +0000)]
Bump backtrace minimal version
Empirically, the version in bookworm doesn't compile, in our setup.
Use the one that's currently in trixie.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 13:12:23 +0000 (13:12 +0000)]
CI: Do not mess with Cargo.lock.minimal
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:52:16 +0000 (12:52 +0000)]
Merge branch 'makefile' into 'main'
Makefile: Add + sigil before cargo invocations
See merge request iwj/hippotat!44
Ian Jackson [Sat, 1 Feb 2025 12:46:35 +0000 (12:46 +0000)]
maint/update-minimal-versions: Be more precise about hyper
We're about to add reqwest which will pull in hyper 1.x.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:36:42 +0000 (12:36 +0000)]
Makefile: Add + sigil before cargo invocations
GNU make now closes the jobserver pipe if you don't do this.
I wish it wouldn't.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:14:48 +0000 (12:14 +0000)]
config: Replace use of Default with Parseable::Unspecified
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:16:00 +0000 (12:16 +0000)]
config: parseable_from_str: always provide default_or_ordinary
None of the call sites don't do this.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 12:05:13 +0000 (12:05 +0000)]
config: Clarify Parseable's defaulting
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 1 Feb 2025 00:01:13 +0000 (00:01 +0000)]
Merge branch 'update' into 'main'
Update dependencies
See merge request iwj/hippotat!43
Ian Jackson [Fri, 31 Jan 2025 23:16:52 +0000 (23:16 +0000)]
deps: allow and use thiserror 2
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 31 Jan 2025 23:14:24 +0000 (23:14 +0000)]
deps: allow and use educe 0.6
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 31 Jan 2025 23:13:49 +0000 (23:13 +0000)]
deps: allow and use itertools 0.14
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 31 Jan 2025 23:04:33 +0000 (23:04 +0000)]
cargo update
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 31 Jan 2025 23:12:39 +0000 (23:12 +0000)]
HACKING.md: New file with some notes in
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 12 Oct 2024 09:39:35 +0000 (09:39 +0000)]
Merge branch 'release' into 'main'
Bump cargo version for release
See merge request iwj/hippotat!42
Ian Jackson [Sat, 12 Oct 2024 09:04:18 +0000 (10:04 +0100)]
Bump cargo version
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:57:33 +0000 (14:57 +0000)]
Merge branch 'update' into 'main'
Update dependencies (fixes FTBFS)
See merge request iwj/hippotat!41
Ian Jackson [Fri, 11 Oct 2024 14:30:19 +0000 (15:30 +0100)]
Document changes in 1.1.12
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:21:25 +0000 (15:21 +0100)]
Move a misplaced comment in cargo.toml
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:16:56 +0000 (15:16 +0100)]
Update to base64 (allow)
Closes: #1084523
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:14:22 +0000 (15:14 +0100)]
Update to syslog 7 (allow)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:13:37 +0000 (15:13 +0100)]
Update to heck 0.5 (allow)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 14:10:41 +0000 (15:10 +0100)]
Update to nix 0.29 (allow)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 13:52:22 +0000 (14:52 +0100)]
Avoid nailing-cargo --just-run
We want the concurrency lock.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 12:39:05 +0000 (13:39 +0100)]
Makefile: fix an endif comment
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 12:33:59 +0000 (13:33 +0100)]
Decorate rust-toolchain build-deps with !upstream-cargo profile
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 09:56:00 +0000 (10:56 +0100)]
Update to itertools 0.13 (allow)
Closes: #1082550
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 09:54:53 +0000 (10:54 +0100)]
build.rs: Suppress new cargo features warning
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 09:53:35 +0000 (10:53 +0100)]
Break out package_cfg construction
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 11 Oct 2024 09:49:40 +0000 (10:49 +0100)]
cargo update
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 19:23:16 +0000 (19:23 +0000)]
Merge branch 'release' into 'main'
Prepare release 1.1.11
See merge request iwj/hippotat!40
Ian Jackson [Sun, 25 Feb 2024 18:47:48 +0000 (18:47 +0000)]
Finalise 1.1.11
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 18:21:55 +0000 (18:21 +0000)]
changelog: Document changes since 1.1.10
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 18:41:08 +0000 (18:41 +0000)]
Merge branch 'update' into 'main'
Update dependencies (cargo update)
See merge request iwj/hippotat!39
Ian Jackson [Sun, 25 Feb 2024 18:37:29 +0000 (18:37 +0000)]
Merge branch 'nix-2' into 'main'
nix: Make a compat function for last errno as Errno
See merge request iwj/hippotat!38
Ian Jackson [Sun, 25 Feb 2024 18:30:40 +0000 (18:30 +0000)]
Merge branch 'build-rs-multi' into 'main'
build.rs: Prepare to handle multiple packages
See merge request iwj/hippotat!37
Ian Jackson [Sun, 25 Feb 2024 18:17:11 +0000 (18:17 +0000)]
Update dependencies (cargo update)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 17:18:21 +0000 (17:18 +0000)]
nix: Make a compat function for last errno as Errno
This fixes a warning.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 17:28:56 +0000 (17:28 +0000)]
build.rs: Prepare to handle multiple packages
We'll want this for hyper. (Which is nontrivial.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 18:13:44 +0000 (18:13 +0000)]
Merge branch 'nix' into 'main'
Relax dependencies and handle compat for nix 0.28
See merge request iwj/hippotat!35
Ian Jackson [Sun, 25 Feb 2024 18:13:34 +0000 (18:13 +0000)]
Merge branch 'nix-0' into 'main'
Allow use of nix 0.28 (but don't update the lockfile yet)
See merge request iwj/hippotat!36
Ian Jackson [Sat, 24 Feb 2024 23:37:30 +0000 (23:37 +0000)]
Update to nix 0.28
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 24 Feb 2024 23:33:24 +0000 (23:33 +0000)]
Allow use of nix 0.28
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 02:06:00 +0000 (02:06 +0000)]
nix: Provide a compat version of pipe for 0.28
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 01:55:59 +0000 (01:55 +0000)]
nix: Provide a compat version of write for 0.28
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 02:16:07 +0000 (02:16 +0000)]
build.rs: Set --cfg=nix_ge_0_28
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 17:39:42 +0000 (17:39 +0000)]
Merge branch 'nix-1' into 'main'
build.rs and compat: use ge not equality
See merge request iwj/hippotat!34
Ian Jackson [Sun, 25 Feb 2024 17:39:09 +0000 (17:39 +0000)]
Merge branch 'metadata' into 'main'
Use cargo metadata rather than trait hackery to cope with nix
See merge request iwj/hippotat!33
Ian Jackson [Sun, 25 Feb 2024 01:46:52 +0000 (01:46 +0000)]
build.rs: Set --cfg=nix_ge_0_27, not nix_0_27
Don't use exact semver matching. Use the test for all later versions,
in the hope that the later version will be similar.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 00:53:36 +0000 (00:53 +0000)]
nix: Use cfg rather than trait hackery
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 00:17:15 +0000 (00:17 +0000)]
nix: Introduce a build.rs script
This uses "cargo metadata" to find the nix version.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 25 Feb 2024 01:01:58 +0000 (01:01 +0000)]
debian/update-build-deps: Handle build-dependencies too
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 24 Feb 2024 23:50:52 +0000 (23:50 +0000)]
Merge branch 'update' into 'main'
Dependencies: cargo update
See merge request iwj/hippotat!32
Ian Jackson [Sat, 24 Feb 2024 23:43:44 +0000 (23:43 +0000)]
Merge branch 'clean2' into 'main'
Makefile: Improve upstream clean target
See merge request iwj/hippotat!31
Ian Jackson [Sat, 24 Feb 2024 23:32:32 +0000 (23:32 +0000)]
Dependencies: cargo update
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 24 Feb 2024 23:23:43 +0000 (23:23 +0000)]
Makefile: clean target Remove tmp/
This is generated by tests, which the package build skips.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 24 Feb 2024 23:23:08 +0000 (23:23 +0000)]
Makefile: clean target Move various rm's from debian/rules
These are applicable to upstream too.
And run very-clean rather than open-coding rm target.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 24 Feb 2024 19:12:50 +0000 (19:12 +0000)]
Merge branch 'clean' into 'main'
Fix package clean target
See merge request iwj/hippotat!30
Peter Green [Sat, 24 Feb 2024 11:42:33 +0000 (11:42 +0000)]
Fix package clean target
The package's clean target was not functional. Add manual
cleanup.
Closes: #1064524
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 23 Feb 2024 17:53:19 +0000 (17:53 +0000)]
Merge branch 'release' into 'main'
Update version to 1.1.10
See merge request iwj/hippotat!28
Ian Jackson [Fri, 23 Feb 2024 16:45:34 +0000 (16:45 +0000)]
Update version to 1.1.10
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 23 Feb 2024 16:44:32 +0000 (16:44 +0000)]
changelog: Document changes since 1.1.9
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 23 Feb 2024 16:40:42 +0000 (16:40 +0000)]
Makefile: Add a clean to the release checklist
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 23 Feb 2024 17:39:39 +0000 (17:39 +0000)]
Merge branch 'minimal' into 'main'
Reduce many versions in minimal lockfile
See merge request iwj/hippotat!29