[Reproducible-commits] [blog] 01/01: First draft of reprotest week 7

Ceridwen ceridwen-guest at moszumanska.debian.org
Wed Jul 13 22:00:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

ceridwen-guest pushed a commit to branch master
in repository blog.

commit c4758c31df95b41f9657c33778f486b0315d50bd
Author: Ceridwen <ceridwenv at gmail.com>
Date:   Wed Jul 13 18:00:31 2016 -0400

    First draft of reprotest week 7
---
 drafts/64.mdwn                              |  5 +++
 drafts/people/ceridwen/reprotest_week7.mdwn | 48 +++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/drafts/64.mdwn b/drafts/64.mdwn
index 0ec3a08..73473b1 100644
--- a/drafts/64.mdwn
+++ b/drafts/64.mdwn
@@ -9,6 +9,11 @@ Media coverage
 GSoC and Outreachy updates
 --------------------------
 
+- Ceridwen
+  [annoucned](https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week7/)
+  untested reprotest support for the other autopkgtest containers and
+  discussed repraring for the second release.
+
 Documentation update
 --------------------
 
diff --git a/drafts/people/ceridwen/reprotest_week7.mdwn b/drafts/people/ceridwen/reprotest_week7.mdwn
new file mode 100644
index 0000000..28bf677
--- /dev/null
+++ b/drafts/people/ceridwen/reprotest_week7.mdwn
@@ -0,0 +1,48 @@
+[[!meta title="Reprotest containers are (probably) working, finally"]]
+[[!meta date="Wed, 13 Jul 2016 11:49:16 -0400"]]
+[[!tag reproducible_builds Debian reprotest Outreachy]]
+Author: ceridwen
+
+After testing and looking at the code for
+[Plumbum](https://plumbum.readthedocs.io/), I decided that it wouldn't
+work for my purposes.  When a command is created by something like
+`remote['ls']`, it actually looks up which `ls` executable will be run
+and uses in the command object an internal representation of a path
+like `/bin/ls`.  To make it work with autopkgtest's code would have
+required writing some kind of middle layer that would take all of the
+Plumbum code that makes subprocess calls, does path lookups, or uses
+the Python standard library to access OS functions and convert them
+into shell scripts.  Another similar library,
+[sh](https://amoffat.github.io/sh/), has the same problems.  I think
+there's a strong argument that something like Plumbum's or sh's API
+would be much easier to work with than adt_testbed, and I may take
+steps to improve it at some point, but for the moment I've focused on
+getting reprotest working with the existing autopkgtest/adt_testbed
+API.
+
+To do this, I created a minimalistic shell AST library in
+`_shell_ast.py` using the [POSIX shell
+grammar](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10).
+I elided a lot of functionality that wasn't immediately relevant for
+reprotest and simplified the AST in some places to make it easier to
+work.  With this, I generate a shell script and run it with
+`adt_testbed.Testbed.execute()`.  With these pieces in place, the
+tests succeed for both null and schroot!  I haven't tested the rest of
+the containers, but barring further issues with autopkgtest, I expect
+they should work.
+
+At this point, my goal is to push the next release out by next week,
+though as usual it will depend on how many snags I hit in the process.
+I see the following as the remaining blockers:
+
+* Test chroot and qemu in addition to null and schroot.
+
+* PyPi still doesn't install the scripts in `virt/` properly.
+
+* While I fixed [part
+  of](https://anonscm.debian.org/cgit/reproducible/reprotest.git/commit/?h=virtualization&id=8f1fe119fd3c7fdf10bace47aa8362d64d4456db)
+  adt_testbed's error handling, some build failures still cause it to
+  hang, and I have to kill the process by hand.
+
+* Better user documentation.  I don't have time to be thorough, but I
+  can provide a few more pointers.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/blog.git



More information about the Reproducible-commits mailing list