v0.0.10: Build and use asset graph (major internal change)
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.