<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>emre şahin's digital garden 🍃 - devlog</title>
    <link>https://emresahin.net/tags/devlog/</link>
    <description>Posts in the devlog tag</description>
    <language>en</language>
    <managingEditor>contact@emresahin.net (Emre Şahin)</managingEditor>
    <lastBuildDate>Tue, 15 Sep 2026 19:46:32 +0000</lastBuildDate>
    <atom:link href="https://emresahin.net/tags/devlog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>devlog 5</title>
      <published>2024-07-08T20:35:24+00:00</published>
      <updated>2024-07-08T20:35:24+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Mon, 08 Jul 2024 20:35:24 +0000</pubDate>
      <link>https://emresahin.net/devlog-5/</link>
      <guid isPermaLink="true">https://emresahin.net/devlog-5/</guid>
      <description>While writing Xvc tests for Python, I hit an error caused by the ECS single-load protection. The single-loader allows only one instance of Xvc to be run in a single process. This is no problem for the shell, but it looks like it won’t be possible to use multiple Xvc instances in a single Python p...</description>
      <category>devlog</category>
      <category>Xvc</category>
      <category>devlog</category>
      <category>multiprocessing</category>
      <category>Jupyter</category>
      <category>python</category>
      <category>ecs</category>
      <category>testing</category>
      <content:encoded><![CDATA[<p>While writing Xvc tests for Python, I hit an error caused by the ECS single-load protection.</p>
<p>The single-loader allows only one instance of Xvc to be run in a single process. This is no problem for the shell, but it looks like it won’t be possible to use multiple Xvc instances in a single Python process.</p>
<p>It’s possible to overcome this with an elaborate multiprocessing setup in the wrapper, but I won’t bother with it for now.</p>]]></content:encoded>
    </item>
    <item>
      <title>Xvc Devlog 221031</title>
      <published>2022-11-05T09:18:00+00:00</published>
      <updated>2022-11-05T09:18:00+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Sat, 05 Nov 2022 09:18:00 +0000</pubDate>
      <link>https://emresahin.net/xvc-devlog-221031/</link>
      <guid isPermaLink="true">https://emresahin.net/xvc-devlog-221031/</guid>
      <description>🐇 It’s the last day of October. How are you doing, mister? 🐢 Yep. It was a nice October. I would like to finish by increasing the coverage. 🐇 How about setting up a runner on your machine to test them locally? 🐢 Not now. I should fix the tests as always. Later I can take a look at it. I don’t wan...</description>
      <category>xvc</category>
      <category>devlog</category>
      <category>ci/cd</category>
      <category>cross-compilation</category>
      <category>apple silicon</category>
      <category>testing</category>
      <category>xvc</category>
      <category>redirection</category>
      <category>shell</category>
      <content:encoded><![CDATA[<p>🐇 It’s the last day of October. How are you doing, mister?</p>
<p>🐢 Yep. It was a nice October. I would like to finish by increasing the coverage.</p>
<p>🐇 How about setting up a runner on your machine to test them locally?</p>
<p>🐢 Not now. I should fix the tests as always. Later I can take a look at it. I don’t want to distract myself with it.</p>
<p>🐇 You’ll need to create Apple Silicon binaries, though.</p>
<p>🐢 I think I can cross-compile for aarch.</p>
<p>🐇 You were doing this in the past, trying to build all binaries on a single Ubuntu VM. It didn’t work, as far as I remember.</p>
<p>🐢 I hadn’t even read <a href="https://rust-lang.github.io/rustup/cross-compilation.html">this section</a> then, and there is a <a href="https://github.com/cross-rs/cross">dedicated project</a> for it. The proper way is to use that. I’ll return to this after fixing the tests. I think we can release Xvc on all platforms supported by Rust.</p>
<p>🐇 Using <code>cross-rs</code> on GitHub Actions may be challenging. It seems <a href="https://stackoverflow.com/questions/66849112/how-do-i-cross-compile-a-rust-application-from-macos-x86-to-macos-silicon">Apple Silicon doesn’t need that much work</a> either. You can set up cross-compilation with <code>rustup</code> targets.</p>
<p>🐢 Yeah. It looks so. Let’s take a look at the <a href="https://emresahin.net/xvc-devlog-221030">previous devlog.</a></p>
<p>🐇 The page seems missing. Would you like to fix your site first?</p>
<p>🐢 Ah, yeah. I should, maybe. Now it’s time to fix those PRs. I’ll take care of the site later. I should change the theme anyway.</p>
<p>🐇 Ok. Let’s take a look at <a href="https://github.com/iesahin/xvc/pulls">outstanding PRs</a>.</p>
<p>🐢 I want to fix the failed tests locally first. Yesterday I wasn’t able to redirect the output. It looks like the correct way of doing it is <code>cargo test --all-features --no-fail-fast &gt; $TMPDIR/xvc-test.log 2&gt;&amp;1</code>. It’s required to put <code>2&gt;&amp;1</code> at the end, not between the redirection and output.</p>
<p>🐇 There is also the <code>&amp;&gt;</code> operator that you may want to use. <code>cargo test --all-features --no-fail-fast &amp;&gt; $TMPDIR/xvc-test.log</code> should be equivalent to this.</p>
<p>🐢 I’ll try it when the tests finish.</p>
<p>🐇 In the meantime, you can work to fix the documentation. In another repository, perhaps.</p>
<p>🐢 Good idea. Let me clone that.</p>
<p>🐇 Looks like the tests have finished and the only error is Minio. It couldn’t find the env variables you defined.</p>
<p>🐢 Restarted the shell and the tests. Returned to docs now.</p>
<hr>
<p>🐢 Added a few function docs. Storage tests seem to pass. Probably they will fail in GA because of <code>rsync</code> tests using <code>one.emresult.com</code> login in my name.</p>
<p>🐇 If that’s expected, you can push and begin to fix it.</p>
<p>🐢 Yeah, let’s push the tests.</p>
<hr>
<p>🐢 It looks like connecting to localhost also poses a challenge. Instead, I can create a user for <code>xvc</code> on the server and limit its usage.</p>
<p>🐇 Hmm. Good idea for now.</p>
<p>🐢 I created a new user <code>xvc-test@one.emresult.com</code> and its SSH keys. I’ll update the action to write the secret to the keyfile.</p>
<hr>
<p>🐇 Looks like you forgot to install <code>mc</code> for Minio connection.</p>
<p>🐢 Yeah, I must convert Minio tests to use <code>s3cmd</code>.</p>
<p>🐇 And your region in <code>s3</code> configuration seems to be wrong.</p>
<p>🐢 I’ll need to check this.</p>
<p>🐇 There is this line in the tests <code>let region = env::var("AWS_DEFAULT_REGION").unwrap_or("us-east-1".to_string());</code> that’s probably causing that error. You should define the region properly.</p>
<p>🐢 I set this to <code>eu-central-1</code> directly and will check the Minio error in the next session.</p>
<p>🐇 👏</p>
<hr>
<p>🐢 It’s working except for the rsync tests now.</p>
<p>🐇 I think you can just use localhost to run the tests. You may need to install openssh-server, but it should work with localhost without configuration.</p>
<p>🐢 There may be a step missing in the configuration. I’ll try to make it run.</p>
<hr>
<p>🐢 I’m trying to use <code>.ssh/config</code> in GA to allow connections to the server. It doesn’t work for some reason.</p>
<p>🐇 You may try to log in to the server outside of the tests and check if it’s running.</p>
<hr>
<p>🐢 Yesterday’s last attempt was successful, and now we have working remote storage tests.</p>
<p>🐇 👏👏👏🥳</p>
<p>🐢 I’m merging the PR.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
