The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
1.90 2022-01-28

- [feature] Allow option_build to set value on read/write
- [feature] Allow option_build on object construction
- [feature] Test permutations of option_build, option_default, and option_coerce
- [feature] Implement lazy_build hook in Venus::Role::Optional
- [feature] Implement self_coerce hook in Venus::Role::Optional
- [feature] Implement self_assert hook in Venus::Role::Optional
- [feature] Use Venus::Assert#expression when asserting with option_assert

1.85 2022-12-31

- [feature] Implement Venus::Fault
- [feature] Implement Venus::Role::Comparable#{is,st}
- [feature] Implement Venus::Role::Deferrable
- [update] Update value class assertions to use "expression" syntax

1.80 2022-12-24

- [feature] Implement Venus::Role::Serializable
- [feature] Implement Venus::Role::Subscribable

1.75 2022-12-22

- [update] Replace Venus::Cli#{program,podfile} with "path" attribute
- [update] Convert Venus::Cli#init method to attribute
- [update] Implement Venus::Assert#expression, and add ref aliases
- [update] Update Venus::Assert to raise exceptions with expectation(s)

1.71 2022-12-20

- [feature] Implement Venus::Log
- [feature] Implement Venus::Cli

1.68 2022-12-16

- [feature] Implement Venus::Data#string

1.67 2022-12-15

- [feature] Allow envvars to control tracing in Venus::Error
- [feature] Add unused arguments to Venus::Opt

1.66 2022-12-14

- [feature] Cache Venus::Meta for better performance
- [update] Update Venus::Role::Optional

1.65 2022-12-09

- [feature] Implement Venus::Gather
- [feature] Implement Venus::Role::Optional
- [update] Deprecate Venus::Role::Coercible#coerce

1.55 2022-11-21

- [feature] Implement Venus::Prototype
- [feature] Support Venus::Role::Pluggable#construct

1.50 2022-09-17

- [feature] Implement Venus::Assert#accept
- [feature] Implement exportable "cast" function
- [feature] Implement Venus::Assert#format
- [feature] Support Venus::Assert#conditions
- [feature] Implement Venus::Assert $type methods
- [feature] Implement Venus::Assert#validator
- [feature] Implement Venus::Match#where
- [feature] Allow Venus::Match#result to accept/set a value
- [feature] Implement Venus::Assert#{clear,within}
- [feature] Implement Venus::Array#shuffle

1.40 2022-09-10

- [change] Update callback naming in Venus::Role::Coercible
- [feature] Implement Venus::Space#integrates
- [feature] Implement Venus::Role::Rejectable
- [feature] Implement Venus::Role::Unacceptable
- [feature] Implement Venus::Role::Defaultable
- [feature] Implement Venus::Role::Makeable
- [feature] Implement Venus::Space#{lfile,pfile,tfile}
- [update] Include examples in the distribution
- [update] Update Venus::Meta methods to return with wantarray
- [update] Update Venus::Test to support rendering the encoding tag

1.30 2022-08-31

- [change] Remove Venus::Role::Testable#{istrue,isfalse}
- [feature] Implement Venus::Path#lines
- [feature] Implement Venus::Role::Assertable
- [feature] Implement Venus::Assert, Venus::Type#coded
- [feature] Implement math methods for Venus::Number
- [feature] Port applicable methods in Venus::String to Venus::Number
- [feature] Implement Venus::Type#identify
- [feature] Implement Venus::Array#{head,tail}
- [feature] Implement Venus::Kind#{renew,self}
- [feature] Move {class,meta,space,type} into Venus::Role::Reflectable
- [feature] Implement Venus::Role::Valuable#mutate
- [feature] Implement Venus::Role::Assertable#{check,assert,coerce}
- [feature] Implement Venus::Role::Coercible#coerce_attr
- [feature] Support dispatching from Venus::Box#unbox
- [feature] Implement Venus::Role::Reflectable#reify
- [update] Fix overloaded interpolation issue
- [update] Update Venus::Role::{Accessible,Valuable}
- [update] Rename Venus::Error#origin to frame
- [update] Prevent bad symbols on imports
- [update] Support overloaded "empty" invocants in Venus::Try
- [update] Ensure true/false is returned over 1/0
- [update] Reset srand on fork in Venus::Process
- [update] Skip t/Venus_Random.t if rand is undeterministic
- [update] Implement Venus::Role::Accessible#assign

1.23 2022-08-18

- [change] Replace Venus::Role::Testable#{istrue,isfalse} with {is_true,is_false}
- [change] Resolve cross-platform float precision test failures
- [feature] Allow Venus::Class to IMPORT and EXPORT using FROM
- [feature] Add caller info to Venus::Error stacktrace
- [feature] Allow Venus::Error#{is,as} to fallback to name
- [feature] Implement Venus:Random
- [feature] Implement Venus::Error#of
- [update] Set "srand" on fork in Venus::Process
- [update] Include names (for Venus::Error#{as,is}) in all exceptions
- [update] Update Venus::Box#unbox as alias to __handle__unbox
- [update] Make all Venus imports strict

1.10 2022-08-07

- [change] Rename truncate_to_x methods to restart_x
- [feature] Cascade DESTROY from Core
- [feature] Implement Venus::Mixin to mix-in routines
- [feature] Venus::{Json,Yaml} engine override via ENV VAR
- [feature] Allow Venus::Meta to return configurations
- [feature] Allow attr override (prevent accessor install)
- [feature] Implement Venus::Error#{is,as} for better classification
- [feature] Implement Venus::Match#test
- [feature] Implement Venus::{Array,Hash}#call
- [update] Allow Meta to return local-only attrs, bases, roles, and subs
- [update] Improve Venus::Space algorithms, add additional methods
- [update] Add missing documentation in Venus::Date, Venus::String
- [update] Update Venus::Core to better handle non-hashref based objects
- [update] Update criteria on require of classes and roles

1.01 2022-07-23

- [feature] Test, validate, and generate attributes the same as methods
- [feature] Export (on-demand) catch, error, and raise from Venus::{Class,Role}
- [update] Unravel and flattern roles
- [update] Expose errors on require of classes and roles

1.00 2022-07-22

- [change] Replace Moo with Mars architecture
- [feature] Auto-generate VERSION from the main module
- [update] Fix Venus::Date#rfc822 test example 1 on Windows
- [update] Fix Venus::String#camelcase, add pascalcase

0.09 2022-06-28

- [feature] Include Venus::Test in the library
- [feature] Add splice to Venus::Space
- [feature] Add kebabcase to Venus::String
- [feature] Add truncate_to_x methods to Venus::Date
- [feature] Add print_string and say_string to Venus::Role::Printable
- [update] Cleanup documentation
- [update] Generate CHANGELOG from .changelog
- [update] Add "Ethic" to READMEs
- [update] Marker =cut being rendered twice

0.08 2022-03-08

- [defect] Fix inability to deduce floats
- [feature] Implement value casting
- [feature] Implement Venus::Kind#{safe,trap}
- [feature] Implement Venus::Role::Comparable
- [feature] Implement Venus::Role::Testable
- [update] Address test failures reported via CPAN testers issues
- [update] Document all exceptions and methods that throw them
- [update] Document Venus::{Class,Role} configurations
- [update] Fix operator overload documentation rendering
- [update] Refactor Venus::Role::Comparable
- [update] Reimplement Venus::Box#unbox as a virtual method

0.07 2022-02-13

- [defect] Fix Venus::Class attribute declaration issue
- [feature] Extend Venus::Role::Coercion with new abilities
- [feature] Implement Venus::Match#data
- [feature] Implement Venus::Match#expr
- [update] Update documentation

0.06 2022-02-12

- [defect] Fix Venus::Path#mkdirs empty rootdir issue
- [feature] Implement Venus::Process

0.04 2022-02-04

- [feature] Implement Venus::Role::Matchable
- [update] Address CPAN Testers reports

0.03 2022-02-01

- [feature] Implement Venus::Match
- [update] Address CPAN Testers reports

0.02 2022-01-30

- [defect] Fix Dumpable method calls in list context
- [feature] Implement String#append_with,prepend_with
- [feature] Implement String#prepend
- [feature] Implement String#repeat
- [feature] Implement String#substr
- [feature] Implement Venus::Role::Coercible
- [feature] Implement Venus::Role::Digestable
- [feature] Implement Venus::Template
- [feature] Support any JSON library via encode/decode callbacks
- [feature] Support any YAML library, deduce booleans
- [update] Document all proxyable methods
- [update] Document overrides, i.e. overloaded operators
- [update] Document overrides in Venus::Boolean
- [update] JSON::PP support requires 4.00
- [update] Minor refactors to source, documentation, and automation
- [update] Require Perl version 5.18+
- [update] Update CONTRIBUTING.md
- [update] Update String#render token syntax
- [update] Update Venus::Json to use encoder/decoder callbacks