Roadmap

Roadmap

The Roadmap of Sparrow6 project development.

Done

  • Perl/Bash tasks

  • test.pl6 - embedded test support ( aka m10 - METEN minimalistic embedded test engine )

  • multiroot story support ( ability to run multi root stories )

  • ignore_story_err implementation

  • set_stdout implementation

  • ignore_error() instead of ignore_story_err()

  • implement cwd attribute

  • implement purge-cache

  • Add self!set-sparrow-root(); to Sparrow6::SparrowHub::API constructor

  • s6 - install/search/list plugin

  • freeze SparrowHub index for Sparrow/Perl5, disable upload action

  • read config support (set-conf/conf/SP6_CONF)

  • sudo support

  • Implement os() function

  • Rewrite resources/sparrow6common.pm to Perl6

  • Port Sparrowdo::DSL to Sparrow6::DSL

  • Sparrowdo - convert outthentic tests to regular tests

  • Sparrowdo - support for config

  • Sparrow6::Task::Runner::Api story => task renaming

  • Sparrowdo copy local files

  • Regexp interpolation

  • Sequences, Ranges, Withins

  • Streams for Sequences, Ranges and Withins

  • Handle comments inside code/generators correctly

  • Port Otthentic::DSL tests to Sparrow6

  • Don't allow nested contexts

  • Task states ( ability to exchange data between tasks - implimented for Perl )

  • Ruby support

  • Python support

  • Document Sparrow6::Task::Check

  • S6 - --repo-init command

  • Document task states

  • Ruby plugins, bundle install test

  • Rename sparrow.index to index

  • module_run added

  • Powershell support

  • Renaming: suite.yaml => config.yaml

  • Renaming: story* => task*

  • Renaming: story => task

  • Renaming: story.check => task.check

  • Rewrite Sparrow client to s6 ( Sparrow::S6 )

  • Switch Tomtit to Updated Sparrowdo version ( github master branch )

  • Switch Sparrowdo to Updated Sparrowdo version ( github master branch )

  • SparrowHub reference removed from docs

  • modules/ => tasks/ renaming

  • ignore_task_err => ignore_task_error renaming

  • story_run => task_run renaming

  • story_var => task_var renaming

  • Consider lightweight SparrowHub alternative ( Azure free host, domain ) - http://repo.southcentralus.cloudapp.azure.com

  • Create information on SparrowHub retirement - reddit

  • s6 cli module-run added

  • Documenting repo.southcentralus.cloudapp.azure.com

  • Perl6 support ( after renaming )

  • Args stringification

Urgent

  • Reconsider Sparrowdo bootstrap ( need to remove some packages from there - git, perl ? )

New syntax / renaming

  • target_os() => os() # implemented but should be documented

  • meta.txt => task.txt (???)

  • sparrow.json => sparrow6.json (?)

New features

These features are almost done, just list them here

  • Task states ( ability to exchange data between tasks )

  • config.pl6 support (???)

  • m10

  • streams # streams presented as a Hash ( need to document )

  • streams_arrays # streams presented as an Array ( need to document )

  • dump_streams ( implemeted for Perl, need to document )

  • note: expressions ( done, need to document )

  • m10 ( need to add more helpers )

  • Low priority - document Sparrow6::Task::Runner Class

  • Low priority - document m10 feature ( METEN - Minimalistic Embedded Testing Engine )

  • Low priority - s6 --install install plugin without plugin name ( read data from sparrow.json in CWD )

Documentation

  • hook set_stdout gets merged with task stdout in ( implimented, need to document )

  • task check is not triggered if there is no task ( implimented, need to document ) - breaking changes

Questionable

  • Sparrowdo - Sparrow6::DSL::Assert - workaround for input_param method

  • Sparrowdo - support for target_host

  • Sparrowdo - cwd cli support ( do we need it? )

  • Sparrowdo - vagrant support ( do we need it ? )

  • Sparrowdo - git ( Sparrlets support, do we need it ? )

  • Sparrowdo - var=name=value command line support

  • Sparrowdo - module_run, task_run cli options support

  • Deprecate set_stdout (???), hook stdout should contribute to task stdout (???)

  • Don't allow generators/codes if check failures (???)

  • Handle code failures in task checks (???)

  • Impliment cwd parameter for Sparrow6 tasks

  • Use api/v2 instead of api/v1

  • meta.txt support

  • Supporting outthentic messages

  • Color/nocolor output

  • Dry run support (??? is it possible with Sparrow6? I doubt)

  • suite.json config support

Medium priority

  • Port existed Sparrowdo:: Modules to Sparrow6

  • Adjust existing Sparrow plugins ( documentation fixes, compatibility with Sparrow6 core )

  • Plugins - fix Perl5 generators as Array refs

  • Write tests for Ruby common libraries - root-dir/common.rb

  • Write tests for Powershell streams support

Low priority

  • s6 cli - save / restore tasks

  • Task descriptions (task.txt)

  • dump_streams() implimentation for Ruby, Python, Powershell

  • Windows support ( run stories, run hooks )

  • Catch stderr for hooks/stories (?)

  • Don't strip comments from one-line code and generator expressions

Other tools support

  • Switch Sparky to Updated Sparrowdo version ( done partly, need to check )

  • Port Sparrowform to Sparrow6

  • Make Old Sparrowhub plugins compatible with Sparrow6

Breaking changes

  • SparrowHub is removed

  • truncating to the match_l is removed, we reports check results as is, even for really long matched strings (examples/match-length.pl6)

  • :blank is deprecated, you should use regexp: ^^ \s* $$ instead

  • suite.ini, suite.json are not supported

  • story.pm files are not supported

  • task recursive execution is not supported

  • outthentic_die, outthentic_exit functions are not supported

  • old reports formats ("production, default, concise") are not supported

  • private plugins supports dropped in favor of private repositories

Sparrow6 v0.0.33

Sparrow is a Raku based automation framework

Authors

  • Alexey Melezhik

License

Artistic-2.0

Dependencies

File::Directory::TreeHash::Merge:ver<1.0.0>YAMLishJSON::TinyData::DumpColorizable

Test Dependencies

Provides

  • Sparrow6
  • Sparrow6::Common::Config
  • Sparrow6::Common::Helpers
  • Sparrow6::DSL
  • Sparrow6::DSL::Assert
  • Sparrow6::DSL::Bash
  • Sparrow6::DSL::CPAN::Package
  • Sparrow6::DSL::Common
  • Sparrow6::DSL::Directory
  • Sparrow6::DSL::File
  • Sparrow6::DSL::Git
  • Sparrow6::DSL::Group
  • Sparrow6::DSL::Package
  • Sparrow6::DSL::Service
  • Sparrow6::DSL::Ssh
  • Sparrow6::DSL::Systemd
  • Sparrow6::DSL::Template
  • Sparrow6::DSL::User
  • Sparrow6::DSL::Zef
  • Sparrow6::RakuTask
  • Sparrow6::SparrowTask
  • Sparrow6::Task
  • Sparrow6::Task::Check
  • Sparrow6::Task::Check::Context
  • Sparrow6::Task::Check::Context::Common
  • Sparrow6::Task::Repository
  • Sparrow6::Task::Repository::Helpers::Common
  • Sparrow6::Task::Repository::Helpers::Index
  • Sparrow6::Task::Repository::Helpers::Init
  • Sparrow6::Task::Repository::Helpers::Plugin
  • Sparrow6::Task::Runner
  • Sparrow6::Task::Runner::Helpers::Bash
  • Sparrow6::Task::Runner::Helpers::Check
  • Sparrow6::Task::Runner::Helpers::Common
  • Sparrow6::Task::Runner::Helpers::Perl
  • Sparrow6::Task::Runner::Helpers::Perl6
  • Sparrow6::Task::Runner::Helpers::Powershell
  • Sparrow6::Task::Runner::Helpers::Python
  • Sparrow6::Task::Runner::Helpers::Ruby
  • Sparrow6::Task::Runner::Helpers::Test

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.