devlog 9
๐ข Today Iโm planning to add cross compilation to Xvc 0.6.13 branch to add more support.
๐ It looks you first need to turn off this ghost text from blink output. It makes writing insufferable.
๐ข Yep, letโs do that first.
๐ Now, letโs restart nvim.
๐ข Why doesnโt blink.cmp make emojis I use to have more priority, I donโt know. Maybe we can just have #tor and #rab for us.
๐ I think in time it will learn that emojis I defined in the snippets file have more priority but letโs skip this for now. What do we need to do to add cross compilation?
๐ข Maybe we can just make compilation time a bit longer. It shows a menu almost instantly. I want it to wait for a few more milliseconds.
๐ Ok, letโs take a look at the config.
๐ข Configuration file doesnโt have a key for this. Letโs search: blink.cmp
๐ I think the culprit is the typo resistance, it makes better options to be pushed below: https://cmp.saghen.dev/configuration/reference#fuzzy
๐ข Letโs turn that off.
๐ There is an error in the configuration file. I donโt know why does it fail.
๐ข I added emojis to espanso and checked the error message. The configuration I copied from their docs is broken it seem. The messages is:
...share/nvim/lazy/blink.cmp/lua/blink/cmp/config/utils.lua:14: fuzzy.max_items: unexpected field found in configuration
Iโll just delete that line.
๐ It still doesnโt prioritize snippets but we can take a look at this later. Espanso is a better tool in this regard it looks.
๐ข Yep. Letโs take a look at the cross compilation support for Rust.
๐ The well known option is cross.rs: https://github.com/cross-rs/cross
๐ข We can start from this. The installation is from the git repository.
$ cargo install cross --git https://github.com/cross-rs/cross
Updating git repository `https://github.com/cross-rs/cross`
Updating git submodule `https://github.com/cross-rs/cross-toolchains.git`
Installing cross v0.2.5 (https://github.com/cross-rs/cross#4090beca)
...
Installed package `cross v0.2.5 (https://github.com/cross-rs/cross#4090beca)` (executables `cross`, `cross-util`)
๐ Now we have cross and cross-util commands. Cross compilation requires podman on Linux and Docker on MacOs. Do we have docker?
๐ข It looks, no, we donโt have docker. Maybe we can just make a remote setup for this using podman or Github actions. Yesterday I saw a crate for that. I remember I saved it somewhere but could not find it. Searching again in this case looks easier. This tells something about my archival and retrieval issues.
๐ Sometime later, you can add some vector search capabilities to your archive maybe. Semantic search.
๐ข Yep, sometime later. Sometime.
๐ Now letโs search for adding rust cross compilation to github actions
๐ข I found the link to the action: https://github.com/marketplace/actions/build-rust-projects-with-cross
Letโs take a look at the example:
jobs:
release:
name: Release - ${{ matrix.platform.os-name }}
strategy:
matrix:
platform:
- os-name: FreeBSD-x86_64
runs-on: ubuntu-20.04
target: x86_64-unknown-freebsd
skip_tests: true
- os-name: Linux-x86_64
runs-on: ubuntu-20.04
target: x86_64-unknown-linux-musl
- os-name: Linux-aarch64
runs-on: ubuntu-20.04
target: aarch64-unknown-linux-musl
- os-name: Linux-riscv64
runs-on: ubuntu-20.04
target: riscv64gc-unknown-linux-gnu
- os-name: Windows-x86_64
runs-on: windows-latest
target: x86_64-pc-windows-msvc
- os-name: macOS-x86_64
runs-on: macOS-latest
target: x86_64-apple-darwin
# more targets here ...
runs-on: ${{ matrix.platform.runs-on }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build binary
uses: houseabsolute/actions-rust-cross@v0
with:
command: ${{ matrix.platform.command }}
target: ${{ matrix.platform.target }}
args: "--locked --release"
strip: true
- name: Publish artifacts and release
uses: houseabsolute/actions-rust-release@v0
with:
executable-name: ubi
target: ${{ matrix.platform.target }}
๐ We can just convert the current configuration to this and see if it works.
๐ข Letโs do that, yep. I created a file .github/workflows/release.yml
and will make it
๐ Letโs check the results with gh
$ gh -R iesahin/xvc run list
completed failure v0.6.13 Release v0.6.13 pull_request 12525070531 34s 2024-12-28T08:17:28Z
๐ข It says the release is completed.
$ gh -R iesahin/xvc run view 12525070531
X v0.6.13 Release iesahin/xvc#263 ยท 12525070531
Triggered via pull_request about 3 minutes ago
JOBS
X Release - FreeBSD-x86_64 in 12s (ID 34936257653)
โ Set up job
โ Checkout
X Build binary
- Publish artifacts and release
โ Post Build binary
โ Post Checkout
โ Complete job
X Release - Linux-x86_64 in 18s (ID 34936257860)
X Release - Linux-aarch64 in 16s (ID 34936257985)
X Release - Linux-riscv64 in 18s (ID 34936258091)
X Release - Windows-x86_64 in 23s (ID 34936258210)
X Release - macOS-x86_64 in 14s (ID 34936258298)
โ Set up job
โ Checkout
X Build binary
- Publish artifacts and release
โ Post Build binary
โ Post Checkout
โ Complete job
ANNOTATIONS
X Unable to process file command 'output' successfully.
Release - FreeBSD-x86_64: .github#662
X Value cannot be null. (Parameter 'name')
Release - FreeBSD-x86_64: .github#663
X The job was canceled because "FreeBSD-x86_64_ubuntu-20_" failed.
Release - Linux-x86_64: .github#1
X The job was canceled because "FreeBSD-x86_64_ubuntu-20_" failed.
Release - Linux-aarch64: .github#1
X The job was canceled because "FreeBSD-x86_64_ubuntu-20_" failed.
Release - Linux-riscv64: .github#1
X The job was canceled because "FreeBSD-x86_64_ubuntu-20_" failed.
Release - Windows-x86_64: .github#1
X The job was canceled because "FreeBSD-x86_64_ubuntu-20_" failed.
Release - macOS-x86_64: .github#1
To see what failed, try: gh run view 12525070531 --log-failed
View this run on GitHub: https://github.com/iesahin/xvc/actions/runs/12525070531
Now take a look at the failure:
$ gh -R iesahin/xvc run view 12525070531 --log-failed
๐ Change the order and see what happens. Maybe we should first succeed in non-cross compilation.
$ gh -R iesahin/xvc run list
completed failure v0.6.13 Release v0.6.13 pull_request 12525178664 35s 2024-12-28T08:34:18Z
...
$ gh -R iesahin/xvc run view 12525178664 --log-failed
...
๐ข Itโs the same error. The usage example is actually much more sophisticated.
๐ The issue is that we ask for command
from the matrix, but the matrix doesnโt define a command
. Today itโs the second time the example in the docs fails. Added command
for each of the platforms. We can also add separate features this way to make platform specific features work.
๐ข Agreed. Letโs take a look at it once more
$ gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525253982 41s 2024-12-28T08:46:23Z
$ gh -R iesahin/xvc run view 12525253982 --log-failed
...
Release - macOS-x86_64 Build binary 2024-12-28T08:46:44.8464010Z [1m[31merror[0m[1m:[0m the lock file /Users/runner/work/xvc/xvc/Cargo.lock needs to be updated but --locked was passed to prevent this
Release - macOS-x86_64 Build binary 2024-12-28T08:46:44.8464810Z If you want to try to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.
๐ Ah, now this is another error. Letโs remove --locked
flag and retry.
$ gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525289176 1m8s 2024-12-28T08:53:23Z
$ gh -R iesahin/xvc run view 12525289176 --log-failed
...
๐ข We finally started to have good news. Now weโre getting OpenSSL errors. We need feature flags for these platforms or tell where OpenSSL is. Letโs add bundled-openssl
to failed ones. We also need bundled-sqlite
to Windows binaries.
gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525354179 3m9s 2024-12-28T09:04:55Z
gh -R iesahin/xvc run view 12525354179 --log-failed
๐ It looks the Changes.md
file is missing and it cannot upload the binaries as a release because of this. Set the changes file to CHANGELOG.md.
๐ข Itโs weird to fail because of this. I think we need to report these errors and possibly send a PR to merge. The file must be optional.
gh -R iesahin/xvc run list | rg Release | head -n 1
in_progress v0.6.13 Release v0.6.13 pull_request 12525449368 1m38s 2024-12-28T09:18:40Z
gh -R iesahin/xvc run view 12525449368
...
X Release - Linux-riscv64 in 2m53s (ID 34937017298)
โ Set up job
โ Checkout
X Build binary
- Publish artifacts and release
โ Post Build binary
โ Post Checkout
โ Complete job
...
โ Release - macOS-x86_64 in 2m39s (ID 34937017695)
โ Release - macOS-aarch64 in 2m42s (ID 34937017787)
..
ARTIFACTS
xvc-macOS-x86_64.tar.gz
xvc-macOS-arm64.tar.gz
To see what failed, try: gh run view 12525449368 --log-failed
View this run on GitHub: https://github.com/iesahin/xvc/actions/runs/12525449368
๐ข It looks Linux-riscv64
has OpenSSL compilation errors. I think we can skip this platform for the time being. The goal was to add aarch64 for MacOS and it seems to have succeed.
gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525504079 3m24s 2024-12-28T09:26:43Z
gh -R iesahin/xvc run view 12525504079
...
X Release - Linux-x86_64 in 2m57s (ID 34937116988)
โ Set up job
โ Checkout
X Build binary
- Publish artifacts and release
โ Post Build binary
โ Post Checkout
โ Complete job
...
ARTIFACTS
xvc-macOS-arm64.tar.gz
xvc-macOS-x86_64.tar.gz
To see what failed, try: gh run view 12525504079 --log-failed
View this run on GitHub: https://github.com/iesahin/xvc/actions/runs/12525504079
gh -R iesahin/xvc run view 12525504079 --log-failed
...
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.0702889Z [1m[32m Compiling[0m reflink v0.1.3
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2262518Z [0m[1m[38;5;9merror[E0308][0m[0m[1m: mismatched types[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2264659Z [0m [0m[0m[1m[38;5;12m--> [0m[0m/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reflink-0.1.3/src/sys/unix.rs:21:39[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2417505Z [0m [0m[0m[1m[38;5;12m|[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2419091Z [0m[1m[38;5;12m21[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m libc::ioctl(dest.as_raw_fd(), IOCTL_FICLONE, src.as_raw_fd())[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2420577Z [0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;12m-----------[0m[0m [0m[0m[1m[38;5;9m^^^^^^^^^^^^^[0m[0m [0m[0m[1m[38;5;9mexpected `i32`, found `u64`[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2422015Z [0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;12m|[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2423040Z [0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;12marguments to this function are incorrect[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2423906Z [0m [0m[0m[1m[38;5;12m|[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2424575Z [0m[1m[38;5;10mnote[0m[0m: function defined here[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2426053Z [0m [0m[0m[1m[38;5;12m--> [0m[0m/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.169/src/unix/linux_like/linux/mod.rs:6753:12[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2427425Z [0m [0m[0m[1m[38;5;12m|[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2428425Z [0m[1m[38;5;12m6753[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int;[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2429583Z [0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;10m^^^^^[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2430748Z [0m[1m[38;5;14mhelp[0m[0m: you can convert a `u64` to an `i32` and panic if the converted value doesn't fit[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2431850Z [0m [0m[0m[1m[38;5;12m|[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2433357Z [0m[1m[38;5;12m21[0m[0m [0m[0m[1m[38;5;12m| [0m[0m libc::ioctl(dest.as_raw_fd(), IOCTL_FICLONE[0m[0m[38;5;10m.try_into().unwrap()[0m[0m, src.as_raw_fd())[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2434954Z [0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[38;5;10m++++++++++++++++++++[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2435460Z
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2455008Z [0m[1mFor more information about this error, try `rustc --explain E0308`.[0m
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2513354Z [1m[31merror[0m[1m:[0m could not compile `reflink` (lib) due to 1 previous error
Release - Linux-x86_64 Build binary 2024-12-28T09:29:16.2514550Z [1m[33mwarning[0m[1m:[0m build failed, waiting for other jobs to finish...
Release - Linux-x86_64 Build binary 2024-12-28T09:29:44.6096299Z ##[error]Process completed with exit code 101.
๐ข It looks Linux-x86_64
doesnโt support reflinks. Maybe we can make reflinks an optional feature and add it to macOS and Windows targets specifically.
๐ Removed reflink
from default features. This is a breaking change but fortunately we donโt have that many users that will be affected from this.
Letโs check the results one more.
gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525597866 3m39s 2024-12-28T09:42:44Z
gh -R iesahin/xvc run view 12525597866
...
X Release - NetBSD-x86_64 in 3m13s (ID 34937298706)
โ Set up job
โ Checkout
X Build binary
- Publish artifacts and release
โ Post Build binary
โ Post Checkout
โ Complete job
...
View this run on GitHub: https://github.com/iesahin/xvc/actions/runs/12525597866
๐ข Now turn NetBSD
target off as well.
๐ FreeBSD
and Linux-x86_64
targets are also building. Letโs take a look why aarch linux targets fail.
gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525643284 4m46s 2024-12-28T09:52:04Z
gh -R iesahin/xvc run view 12525643284
โ Release - FreeBSD-x86_64 in 4m14s (ID 34937389302)
โ Release - Linux-x86_64 in 4m26s (ID 34937389370)
X Release - Linux-aarch64 in 4m38s (ID 34937389440)
X Release - Linux-aarch64 in 4m22s (ID 34937389491)
X Release - Windows-x86_64 in 4m24s (ID 34937389538)
X Release - Windows-aarch64 in 4m24s (ID 34937389585)
โ Release - macOS-x86_64 in 2m36s (ID 34937389633)
โ Release - macOS-aarch64 in 2m35s (ID 34937389669)
...
gh -R iesahin/xvc run view 12525643284 --log-failed
...
๐ It looks those targets donโt have libsqlite3
installed. Letโs add bundled-sqlite
to these targets as well.
gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12525734325 4m11s 2024-12-28T10:07:36Z
gh -R iesahin/xvc run view 12525734325 --log-failed
๐ข Adding Android as a target didnโt work. Letโs remove this. It looks it requires more work.
๐ I think weโll eventually move to Xvc to distribute binaries. We can build Android binary on Termux and link it in the releases page or push it as a release artifact.
๐ข I need to learn more about Github releases. If we can add artifacts, binaries to the release, maybe we can do some of this work locally.
๐ We can start by looking at gh
commands capabilities.
๐ข It looks itโs possible to upload assets to releases. Letโs check how that works.
gh release upload --help
Upload asset files to a GitHub Release.
To define a display label for an asset, append text starting with `#` after the
file name.
USAGE
gh release upload <tag> <files>... [flags]
FLAGS
--clobber Overwrite existing assets of the same name
INHERITED FLAGS
--help Show help for command
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
LEARN MORE
Use `gh <command> <subcommand> --help` for more information about a command.
Read the manual at https://cli.github.com/manual
Learn about exit codes using `gh help exit-codes`
๐ So basically we can just upload files to tags. We can list releases and work with them like any other.
gh -R iesahin/xvc release list
v0.6.13-alpha.3 Latest v0.6.13-alpha.3 2024-12-25T13:34:46Z
v0.6.13-alpha.2 v0.6.13-alpha.2 2024-12-13T19:05:11Z
v0.6.13-alpha.1 v0.6.13-alpha.1 2024-12-13T18:53:55Z
v0.6.13-alpha.0 v0.6.13-alpha.0 2024-11-30T18:36:49Z
v0.6.12 v0.6.12 2024-11-30T17:58:55Z
v0.6.11 v0.6.11 2024-09-11T10:52:50Z
v0.6.10 v0.6.10 2024-08-04T15:49:05Z
v0.6.9 v0.6.9 2024-07-29T12:20:07Z
v0.6.8 v0.6.8 2024-07-15T13:53:52Z
v0.6.7 v0.6.7 2024-03-19T19:10:26Z
v0.6.6 v0.6.6 2024-03-08T13:23:58Z
v0.6.5 v0.6.5 2024-01-09T10:03:13Z
v0.6.5-beta.0 v0.6.5-beta.0 2024-01-01T14:03:12Z
v0.6.4 v0.6.4 2023-12-05T10:13:49Z
v0.6.4-alpha.0 v0.6.4-alpha.0 2023-12-02T09:57:33Z
v0.6.3 v0.6.3 2023-11-02T17:57:45Z
v0.6.2 v0.6.2 2023-10-13T18:01:09Z
v0.6.1 v0.6.1 2023-10-05T21:14:32Z
v0.6.0 v0.6.0 2023-08-28T09:46:57Z
v0.5.1 v0.5.1 2023-01-28T21:35:20Z
v0.5.0 v0.5.0 2023-01-23T08:29:19Z
v0.4.2 v0.4.2 2023-01-17T09:52:55Z
v0.4.2-alpha.8 v0.4.2-alpha.8 2022-12-09T18:43:03Z
v0.4.2-alpha.7 v0.4.2-alpha.7 2022-12-09T18:49:17Z
v0.4.2-alpha.6 v0.4.2-alpha.6 2022-12-09T18:08:51Z
v0.4.2-alpha.5 v0.4.2-alpha.5 2022-12-09T09:14:06Z
v0.4.2-alpha.0 v0.4.2-alpha.0 2022-11-27T15:20:17Z
v0.4.1-alpha.0 v0.4.1-alpha.0 2022-11-26T08:07:23Z
v0.4.0 v0.4.0 2022-11-26T07:28:56Z
v0.3.4 v0.3.4 2022-11-20T08:43:55Z
and we can delete releases.
for r in v0.4.2-alpha.8 v0.4.2-alpha.7 v0.4.2-alpha.6 v0.4.2-alpha.5 v0.4.2-alpha.0 v0.4.1-alpha.0 ; do ; gh -R iesahin/xvc release delete "${r}" ; done
๐ข Now, letโs list them again
gh -R iesahin/xvc release list
v0.6.13-alpha.3 Latest v0.6.13-alpha.3 2024-12-25T13:34:46Z
v0.6.13-alpha.2 v0.6.13-alpha.2 2024-12-13T19:05:11Z
v0.6.13-alpha.1 v0.6.13-alpha.1 2024-12-13T18:53:55Z
v0.6.13-alpha.0 v0.6.13-alpha.0 2024-11-30T18:36:49Z
v0.6.12 v0.6.12 2024-11-30T17:58:55Z
v0.6.11 v0.6.11 2024-09-11T10:52:50Z
v0.6.10 v0.6.10 2024-08-04T15:49:05Z
v0.6.9 v0.6.9 2024-07-29T12:20:07Z
v0.6.8 v0.6.8 2024-07-15T13:53:52Z
v0.6.7 v0.6.7 2024-03-19T19:10:26Z
v0.6.6 v0.6.6 2024-03-08T13:23:58Z
v0.6.5 v0.6.5 2024-01-09T10:03:13Z
v0.6.5-beta.0 v0.6.5-beta.0 2024-01-01T14:03:12Z
v0.6.4 v0.6.4 2023-12-05T10:13:49Z
v0.6.4-alpha.0 v0.6.4-alpha.0 2023-12-02T09:57:33Z
v0.6.3 v0.6.3 2023-11-02T17:57:45Z
v0.6.2 v0.6.2 2023-10-13T18:01:09Z
v0.6.1 v0.6.1 2023-10-05T21:14:32Z
v0.6.0 v0.6.0 2023-08-28T09:46:57Z
v0.5.1 v0.5.1 2023-01-28T21:35:20Z
v0.5.0 v0.5.0 2023-01-23T08:29:19Z
v0.4.2 v0.4.2 2023-01-17T09:52:55Z
v0.4.0 v0.4.0 2022-11-26T07:28:56Z
v0.3.4 v0.3.4 2022-11-20T08:43:55Z
v0.3.3 v0.3.3 2022-11-08T08:50:31Z
v0.3.2 v0.3.2 2022-10-26T15:23:57Z
v0.3.1 v0.3.1 2022-10-18T09:51:17Z
๐ The latest one has failed again.
$ gh -R iesahin/xvc run list | rg Release | head -n 1
completed failure v0.6.13 Release v0.6.13 pull_request 12533365613 5m13s 2024-12-29T07:03:43Z
$ gh -R iesahin/xvc run view 12533365613
X v0.6.13 Release iesahin/xvc#263 ยท 12533365613
...
ANNOTATIONS
X Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run
Release - Linux-aarch64: .github#96
...
๐ข It looks we are coming to an end to this session. On which occasions will we create a release?
๐ I think itโs better to release non-alpha tags only.
๐ข Then the rule in the release is release will be something like
on:
workflow_dispatch:
push:
tags:
- "v*.*.*"
- "!v.*.*-alpha.*"
๐ And now we have this result:
$ gh -R iesahin/xvc run list | rg Release | head -n 1
completed success v0.6.13 Release v0.6.13 pull_request 12533498361 8m58s 2024-12-29T07:24:15Z
$ gh -R iesahin/xvc run view 12533498361
โ v0.6.13 Release iesahin/xvc#263 ยท 12533498361
Triggered via pull_request about 21 minutes ago
JOBS
โ Release - FreeBSD-x86_64 in 4m14s (ID 34953236573)
โ Release - Linux-x86_64 in 4m3s (ID 34953236678)
โ Release - Linux-aarch64 in 4m50s (ID 34953236735)
โ Release - Windows-x86_64 in 8m47s (ID 34953236800)
โ Release - Windows-aarch64 in 6m42s (ID 34953236848)
โ Release - macOS-x86_64 in 2m37s (ID 34953236910)
โ Release - macOS-aarch64 in 2m36s (ID 34953236965)
ARTIFACTS
xvc-macOS-arm64.tar.gz
xvc-macOS-x86_64.tar.gz
xvc-Linux-musl-x86_64.tar.gz
xvc-FreeBSD-x86_64.tar.gz
xvc-Linux-musl-arm64.tar.gz
xvc-Windows-msvc-arm64.zip
xvc-Windows-msvc-x86_64.zip
For more information about a job, try: gh run view --job=<job-id>
View this run on GitHub: https://github.com/iesahin/xvc/actions/runs/12533498361
๐ข Ah, cool, letโs check the release list
gh -R iesahin/xvc release list
v0.6.13-alpha.3 Latest v0.6.13-alpha.3 2024-12-25T13:34:46Z
v0.6.13-alpha.2 v0.6.13-alpha.2 2024-12-13T19:05:11Z
v0.6.13-alpha.1 v0.6.13-alpha.1 2024-12-13T18:53:55Z
v0.6.13-alpha.0 v0.6.13-alpha.0 2024-11-30T18:36:49Z
...
๐ Why there is no latest release?
๐ข We must tag it first.
๐ Ah, cool, letโs tag then.
๐ข Pushed changes and tagged with v.0.6.13-alpha.5
๐ I think itโs possible to make a release today.
๐ข It looks so, yes.
๐ We can merge the PR and tag it. Then everything should work.
๐ข We need some cleanup though. In the YAML files.
๐ We can leave it to the next release I think.
gh -R iesahin/xvc run list
in_progress v0.6.13 Rust-CI v0.6.13 pull_request 12533690474 9m18s 2024-12-29T08:02:29Z
completed failure Rust-CI Rust-CI v0.6.13-alpha.5 push 12533689102 6m9s 2024-12-29T08:02:19Z
completed success Release Release v0.6.13-alpha.5 push 12533689099 9m11s 2024-12-29T08:02:19Z
...
๐ข Now we have another failure in the usual CI. Letโs take a look at it.
<..> After downloading the logs and unzipping and checking
๐ The issue seems to be in the doc tests, with
2024-12-29T08:14:40.7389990Z Testing docs/ref-xvc-file-copy.md:165 ... failed
...
---- expected: stdout
++++ actual: stdout
| XC [..] c85f3e81 data7.txt
| FC 19 [..] c85f3e81 c85f3e81 data6.txt
| SS [..] [..] c85f3e81 data3.txt
| FC 19 [..] c85f3e81 c85f3e81 data2.txt
| XC [..] c85f3e81 data.txt
| FH 19 [..] c85f3e81 c85f3e81 another-set/data3.txt
| FH 19 [..] c85f3e81 c85f3e81 another-set/data2.txt
| FH 19 [..] c85f3e81 c85f3e81 another-set/data.txt
|
- Total #: 8 Workspace Size: 276 Cached Size: 19
+ Total #: 8 Workspace Size: 278 Cached Size: 19
|
๐ข These tests are brittle but they provide valuable information. Letโs fix it and push again.
๐ Did so. We can also remove some of the watches that produces so much logs.
๐ข Iโm a bit ambivalent about them. I was thinking that we could these watches when debugging but later experience showed that we need more granular watches when debugging and almost never use these in other times. Letโs remove some of these as well.
๐ We can output more in certain commands but the tracing output doesnโt help much in the usual runs and if Xvc gets popular that we cannot cope with the bug reports, then we can put more watches anyway.
๐ข Another option is to produce no code for watches for the release but that wonโt change anything for our debug cycles.
๐ I think this one is a fair trial. We can always put back watches when debugging.
๐ข Watches can also produce usual output, instead of tracing. We wonโt forget to remove them this way.
๐ Ah, yep, thatโs a good option too.
๐ข We can have a trace! macro similar to the current one and we can use it for user consumption. Then we can also have a watch macro that sends output to the stderr.
๐ Good idea. Letโs do this in the next release.
๐ข Letโs take a look at the tests before pushing this cleanup
gh -R iesahin/xvc run list
completed success v0.6.13 Rust-CI v0.6.13 pull_request 12533993607 13m49s 2024-12-29T08:47:50Z
...
๐ CI succeeded and the release didnโt run. Letโs do some more cleanup.
gh -R iesahin/xvc run list
in_progress v0.6.13 Rust-CI v0.6.13 pull_request 12534416152 43s 2024-12-29T09:57:02Z
...