Skip to content

v0.0.10: Build and use asset graph (major internal change)

Compare
Choose a tag to compare
@cxw42 cxw42 released this 26 May 19:04
Now the command graph and the asset graph are separate.
The hopen files create the command graph; the command graph
creates the asset graph; and the asset graph creates the
blueprint files (e.g., `Makefile`).

Appveyor:
 - Always run with the latest Data::Hopen from Github

Dependencies:
 - Test: +Test::Exception
 - Runtime: +Class::Tiny::ConstrainedAccessor, +vars::i

Architectural changes:
 - Split asset graph off from command graph
 - Rename `Op`s in A::h to `Cmd`s or `Node`s to help keep everything straight

Code changes include:
 - Add system environment to DAG's scope
 - Give each hopen-file package a unique name, just in case the same
   hopen file is run twice.  This is setting up for eventually being
   able to run multiple phases with a single invocation of hopen(1).
 - Remove some apparently-unused dependencies from Makefile.PL
 - Add Appveyor badge to README
 - Bump required version of Data::Hopen
 - Add App::hopen::Asset, and its type constraints
 - Asset: permit storing App::hopen::Util::BasedPath instances directly
 - Add --build option
 - BasedPath: add orig_cwd; enforce requirement that path parameter be
   a relative path.
 - t/lib/HopenTest: Remove the creation of the "DUT" package alias since
   it prevents BUILD from being called correctly in Class::Tiny
   subclasses.  Just use `$DUT->foo` instead.
 - Begin adding tests of A::h::H
 - Added A::h::G::Cmd with make(), {made}, {made_by}, and run()
 - Added A::h::G::AssetOp with constrained `asset` accessor
 - Added A::h::Gen::Make::AssetGraphNode
 - Updated tests per changes to Data::Hopen::Scope 2019-03-08
 - A::h::Gen::asset() can update C<how> on existing AssetOp instances

Tests:
 - Removed tests left over from Data::Hopen - we don't need to run the
   same tests here as well.