Well, I’m sorry. The whole Piston package was broken for the last two weeks. In fact, it was a problem with internal reorganizations and broken requires.
This also illustrated the fact that I needed some kind of automated testing… Which I advocate, but didn’t do anything about until now for Piston. Well, no more ! Piston now has a suite of specifications, coded using RSpec.
I briefly touched on this issue a week ago in Piston import bugs and behavioural specifications. Back then, I had three specifications. I now have twenty:
1 $ spec --format specdoc specs 2 3 update when no local changes 4 - retrieves the latest fulltext from the remote repository 5 - records remote revision that was merged 6 7 update when a local change 8 - should merge local changes with remote ones 9 10 convert with no svn:externals 11 - does not touch the working copy 12 13 convert with one svn:externals 14 - removes existing folder to replace with piston export 15 - remembers the revision we converted from 16 17 convert with hard-coded revision in svn:externals 18 - retrieves the specified revision text 19 - locks the pistoned directory to that revision 20 21 convert with non HEAD externals 22 - retrieves the same revision we had in our WC 23 - remembers the revision that was present, not HEAD 24 - does not lock the pistoned directory 25 26 import with a valid repository URL 27 - gets the fulltext of all files 28 - remembers the root of the import 29 - remembers the upstream repository's UUID 30 - remembers the revision we imported from 31 - remembers the revision this WC was at when we imported 32 33 switching to a branch in the same repository (without local mods) 34 - gets the fulltext of the branch 35 - changes the root of the pistoned dir to the new import location 36 - keeps the upstream repository's UUID unchanged 37 - remembers the upstream revision we pistoned from 38 39 Finished in 103.968133 seconds 40 41 20 specifications, 0 failures
At the moment, the four most important commands are specified: convert, import, update and switch. And even then, only the golden path. Which means I am missing tons of specifications. But at least, I can now guarantee that Piston works, which is a huge step forward from the 1.3.2 relelase.
As I continue to further specify Piston, things can only get better.
Also, a very big thank you to all the people who told me they had problems with Piston. Bug reports, although never enjoyable, are an absolute necessity.