# Dockly 3.0.0 Plans

This document describes the changes we plan to make for version `3.0.0`.
After completing a feature, please move it from the TODO list to the DONE list.

## TODO

* do not require the `dockly.rb` to be loaded when the Rakefile is loaded
    * why?
        * requiring the `dockly.rb` at load time is problematic when a certain
          environment is expected for builds that cannot be replicated in a
          different environment
    * how?
        * instead of having tasks like `dockly:deb:$deb_name`, we can
          parameterize the `dockly:deb` task by the `$deb_name`, allowing the
          `dockly.rb` to be loaded at execution time.
    * additional challenges
        * if there are downstream consumers using anything other than
          `dockly:build_all` or `dockly:build_or_copy_all`, they will need to be
          updated to the new task names
* remove grit
    * why?
        * old deprecated library
        * we use rugged for most git related features
        * it can cause build transients
    * how?
        * implement `Dockly.git_sha` using rugged
        * roll our own `git archive` clone using rugged
    * additional challenges
        * rugged fails when it is loaded in a directory without git, which
          happens in our docker containers
* switch from fog to aws-sdk-v2
    * why?
        * we'd like to use assume role to push assets to s3
    * how?
        * remove all fog calls with aws-sdk calls
    * additional challenges
        * testing
* standardize tmp directories
    * why?
        * it's difficult to know what state needs to be deleted
    * how?
        * add a top level DSL directive
* remove multitask on build all
    * why?
        * fpm uses `Dir.chdir`, which messes with Process.cwd

## DONE

Add a planning document for dockly 3.0.0
Add a planning document for dockly 3.0.0
