People

Agenda

  • Discuss and decide goals for this iteration.

Notes

  • This iteration is about cleaning up rough edges.

Tasks for this week

Tasks may be part of a project or be random small ones (max an hour) that just need doing.

what Who estimate(h)
Make make-it-so accept any number of input files Lars 1
Add a “archive: systree” action Lars 1
Make controller check pipelines get all their parameters Lars 1
Make controller, icktool allow deleting resource Lars 1
Write a dummy controller program that can be profiled Lars 4
Specify a lint command to icktool Daniel 1
Total Lars 8
Total Daniel 8

Task descriptions

  • Make make-it-so accept any number of input files: Currently you have to run make-it-so separately for each input file, in a loop. Put the loop inside make-it-so, for user convenience.

    Acceptance criteria: Lars can run icktool make-it-so pipelines/*.ick in the ick source tree, to update the “standard library of pipelines” on his instance.

  • Add a “archive: systree” action: Currently, to build a systree, you have to run the entire debootstrap, which is rather slow. Add an action to the worker manager, which archives the systree. This allows one to build a systree by building on top of another systree.

    Acceptance criteria: Lars can build two systrees (build-essential and python-all), the latter of which is built on top of the former.

  • Make controller check pipelines get all their parameters: Currently, the controller does not check at all, in any way, that pipelines get all the parameters they declare they want. Change the controller so that it checks that all pipelines used in a build get all the parameters they declare they want, and fail the build (before actually executing any actions) if that is not so.

    Acceptance criteria: Trigger a project build with a missing parameter results in a failed build. A yarn scenrio tests this.

  • Make controller, icktool allow deleting resource: Add to controller API endpoints to delete resources: project, pipelines, build, logs. Add to icktool a command to use the endpoints.

    Acceptance criteria: There are yarns to check that one can delete a project, pipeline, build, and log, and they pass. It is not necessary for deleting a project to also delete any builds or logs associated with it, or to delete the log if a build is deleted.

  • Write a dummy controller program that can be profiled: Currently, we can’t use the Python profiler to see where time is spent in the controller, because of complications with gunicorn. Write a little dummy controller, which reads dummy API requests from a file, and executes them, as if it were the full controller, but not running as a service under gunicorn. Run it always under the Python profiler.

    Acceptance criteria: Running the dummy controller results in Python profiler output.

  • Specify a lint command to icktool: Write a short specification for an icktool command lint, which checks projects and pipelines in the controller for things that look fishy, but aren’t errors, as such. For example pipelines that aren’t used by any projects.

    Acceptance criteria: Review on the ick-discuss list is positive. The spec should list any checks lint should do, when it gets implemented. The spec is added to ick.liw.fi as a blog post.