Skip to content

Releases: LastDragon-ru/lara-asp

Maintenance ⚒️

10 Dec 12:47
7.1.0
be1770d
Compare
Choose a tag to compare
Mark Type Count Packages
Features 1 documentator

Package documentator

Features

  • Min version of league/commonmark set to ^2.6.0 (because of Delimiter Stack changes) (37cba0d)

Bugfixes 🐛

28 Nov 07:19
7.0.1
dab4035
Compare
Choose a tag to compare
Mark Type Count Packages
Bug Fixes 3 documentator, testing

Package documentator

Bug Fixes

  • null output in generated help of lara-asp-documentator:preprocess command (8a017bf)
  • Parsing {@see} inline tags while help generation for lara-asp-documentator:preprocess command (ebc708f)

Package testing

Bug Fixes

  • \LastDragon_ru\LaraASP\Testing\Utils\TestData relative paths (./, ../) handling (3d81688)

Autumn Evolution 🍂

17 Nov 07:57
7.0.0
af69ffa
Compare
Choose a tag to compare
Mark Type Count Packages
Breaking changes 31 *, core, documentator, formatter, graphql, migrator, serializer, spa
Features 34 core, dev, documentator, serializer
Performance Improvements 4 documentator
Bug Fixes 19 core, documentator, graphql, serializer
💀 Deprecations 8 core, documentator, migrator, serializer
Miscellaneous 5 *, dev
Code Refactoring 18 *, core, documentator, formatter, graphql, migrator, serializer, spa

This version is the deep refactoring of how the Application/Config and other global Laravel things are injected into classes (no implicit dependencies, see #151), how the package configs looks (no more untyped arrays, see #152), how the Formatter works internally (simplification and more extendabilities). And, probably the most interesting part, is improvements of the Documentator - the Processor is used for all tasks, the links will be correctly updated when one document is included into another; code links support, etc.

Please follow Upgrade Guide to migrate 🤗. You can ask a question and/or discuss in release disscussion.

All packages

Miscellaneous

  • Migrate to .gitattributes instead of exclude-from-classmap (8d91470)
  • Minimal version of nikic/php-parser set to ^5.0 (8311940)
  • Minimal version of symfony/serializer set to ^6.4.0 (related to 67389ca) (23ed588)
  • Relative links validation in Markdown documents (#171, ae5403d)

Code Refactoring

Package core

Features

  • \LastDragon_ru\LaraASP\Core\Helpers\Translator will not change keys with namespace (::) (df4e159)
  • \LastDragon_ru\LaraASP\Core\Path\FilePath and \LastDragon_ru\LaraASP\Core\Path\FilePath\DirectoryPath (replacement of \LastDragon_ru\LaraASP\Core\Utils\Path util) (8323a04)
  • Added \LastDragon_ru\LaraASP\Core\Utils\Cast::toObject() and \LastDragon_ru\LaraASP\Core\Utils\Cast::toObjectNullable() (d477a5c)
  • Added Cast::toNullable() (e65d0ff)
  • Added File::isFile() and File::isDirectory() (6862a0a)
  • Path::isNormalized() (d6ded7f)

Bug Fixes

  • Path::getRelativePath() will return correct path when $root is file (9478b44)

Deprecations 💀

  • \LastDragon_ru\LaraASP\Core\Provider\WithConfig::bootConfig(). Please use \LastDragon_ru\LaraASP\Core\Provider\WithConfig::registerConfig() instead (a94b1d8)
  • \LastDragon_ru\LaraASP\Core\Utils\ConfigMerger (there is no replacement) (1215419)
  • The \LastDragon_ru\LaraASP\Core\Utils\Path is deprecated. Please use \LastDragon_ru\LaraASP\Core\Path\FilePath/\LastDragon_ru\LaraASP\Core\Path\DirectoryPath instead (a192b7f)

Code Refactoring

Package dev

Features

  • Container::call() return type detection (1a924a3)

Miscellaneous

  • Removed dev:example command (the Runner contract will be used to run examples) (75b2703)

Package documentator

Features

  • --exclude option for lara-asp-documentator:preprocess (58b80de)
  • \LastDragon_ru\LaraASP\Documentator\Markdown\Location\Append can be used to append text to the Document (1f603be)
  • \LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Links\ClassConstantLink also support enum cases (0ec6c16)
  • Added Text::getPathTitle() (converts filename into document title) (cbb7458)
  • Better block id for Preprocess task (#189, f0164fd)
  • Command lara-asp-documentator:commands will update relative links inside generated documents (76fd9b9)
  • Composer Package helper (ddadefa)
  • Editor:mutate() can add new lines (eaf3b34)
  • include:artisan instruction (#166, 59f4acb)
  • include:document-list/include:package-list instruction can sort documents/packages (#192, 7b04d49) ☣
  • Markdown Document mutations (#179, #180, 0e2b70d) ☣
  • Markdown helper to easy document modification (#179, 1512b81)
  • New include:example runner (#165, 3b74c52) ☣
  • New helper Text (0f1db84)
  • New markdown mutation \LastDragon_ru\LaraASP\Documentator\Markdown\Mutations\HeadingsLevel (ceefd12)
  • Preprocess instructions priority (#194, 4336f6c) ☣
  • Preprocess task will use Markdown parser instead of regexps (#186, 7b0c766) ☣
  • Preprocessor tasks will properly re-link relative links (926ecb9) ☣
  • Processor Task can postpone processing until all other files (#172, 9028c23) ☣
  • Processor "Code Links" task (#187, dbcab1a) ☣
  • Processor File metadata (#181, 4d6c019) ☣
  • Processor Optional dependency (a25feab)
  • Processor wildcard tasks support (124891b)
  • The lara-asp-documentator:preprocess command will use \LastDragon_ru\LaraASP\Documentator\Processor\Contracts\Factory to obtain instance of \LastDragon_ru\LaraASP\Documentator\Processor\Processor (6c544c1)
  • The Processor (#162, 2fdac35)

Performance Improvements

  • Document::mutate() will clone document only once (73897b7)
  • Lazy Document parsing (edcbd0b)
  • Minor Markdown mutations improvements (#184, 460883e) ☣
  • Processor Lazy tasks & (weak) FileSystem cache (#185, b2d206c)

Bug Fixes

  • @link/@see in php docblock will be replaced to FQN (prefixed by \) (5864fdc)
  • \LastDragon_ru\LaraASP\Documentator\Processor\Exceptions\FileTaskFailed message (2d18aa5)
  • \LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Links\Factory::create() will trim whitespaces (8fc2bec)
  • \LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Task source file path resolution (42b2adf)
  • Document::toSplittable() will remove self links (+ added SelfLinksRemove mutation) (7842200)
  • include:artisan output when verbosity is not normal (024f9c5)
  • Location detection/update for links with inline nodes inside label (#182, a137201) ☣
  • Markdown Document EOF after parse/mutate (9c0fafd)
  • Markdown Editor:mutate() will rtrim all changed lines to avoid whitespaces at the end of the line (571c1a1)
  • Markdown Editor overlaps calculation (b76ee17)
  • Markdown Move mutation will not update self links/references (953c327)
  • More accurate CodeLinks similarity check (#193, b5497d6) ☣
  • Preprocessor regexp to find instruction when <target "value"> (32e0d3b)
  • Preprocessor will store original target in Context (75d30bd)
  • Reference will include next empty line (the same as all other blocks) (0a20267)
  • Variables names for include:artisan (no wrapping by "") (3da6fea)

Deprecations 💀

  • Markdown helper. Please use MarkdownDocument/Text helpers instead (caeff9e)
  • The LastDragon_ru\LaraASP\Documentator\Processor\Metadata\PhpDocBlock, please use LastDragon_ru\LaraASP\Documentator\Processor\Metadata\PhpClassMarkdown instead (a72fefc) ☣

Code Refactoring

  • \LastDragon_ru\LaraASP\Documentator\Processor\Metadata\Composer metadata will return \LastDragon_ru\LaraASP\Documentator\Composer\Package instead of \LastDragon_ru\LaraASP\Documentator\Composer\ComposerJson (a79801b) ☣
  • Dependencies classes rename (3268d70) ☣
  • Preprocessor Instruction contract simplification (no Resolver) (#174, 8c3d7f9) ☣
  • Preprocessor moved to Processor namespace (#176, f953237) ☣
  • Preprocessor swit...
Read more

Bugfixes 🐛

20 Sep 13:10
6.4.2
8f513a0
Compare
Choose a tag to compare
Mark Type Count Packages
Bug Fixes 2 documentator, graphql

Package documentator

Bug Fixes

  • \LastDragon_ru\LaraASP\Documentator\Processor\Exceptions\FileTaskFailed message (995d2db)

Package graphql

Bug Fixes

  • SchemaBuilderWrapper fix for "nuwave/lighthouse:6.45.0" (5b80fa0)

Bugfixes 🐛

13 Jul 09:12
6.4.1
b8fbd1b
Compare
Choose a tag to compare
Mark Type Count Packages
Bug Fixes 2 documentator, graphql

Package documentator

Bug Fixes

  • Preprocessor regexp to find instruction when <target "value"> (16686b9)

Package graphql

Bug Fixes

  • HasOneThrough sorting fix (Laravel v11.15.0 compatibility) (bbecb7c)

The Processor 👨‍🦰

26 May 07:50
6.4.0
a0aba35
Compare
Choose a tag to compare
Mark Type Count Packages
Features 3 core, documentator, serializer
Bug Fixes 1 core
💀 Deprecations 1 serializer

Package core

Features

Bug Fixes

  • Path::getRelativePath() will return correct path when $root is file (cf82d55)

Package documentator

Features

Package serializer

Features

  • New Serialized attribute/accessors/mutator (5bb6e1c)

Deprecations 💀

  • \LastDragon_ru\LaraASP\Serializer\Casts\AsSerializable, please use \LastDragon_ru\LaraASP\Serializer\Casts\Serialized attribute instead (db030b9)

May Day 🛠

01 May 14:12
6.3.0
7d7bf1d
Compare
Choose a tag to compare
Mark Type Count Packages
Features 4 core, documentator, graphql, testing
Performance Improvements 1 graphql
Bug Fixes 5 graphql-printer, migrator, testing
💀 Deprecations 1 graphql
Miscellaneous 1 dev

Package core

Features

  • Octane compatible resolvers for Application, Container and Config (e12355a)

Package dev

Miscellaneous

  • Removed dev:directive command (f113cb2)

Package documentator

Features

  • New instruction include:graphql-directive (#158, b054625)

Package graphql

Features

Performance Improvements

  • Printer registered as a scopedIf (1e6a623)

Deprecations 💀

  • Passing Type into AstManipulator::addTypeDefinition() and returning it from TypeDefinition::getTypeDefinition(), the TypeReference should be used instead (the main reason is to avoid possible losing of Type properties) (9e5f219)

Package graphql-printer

Bug Fixes

  • Directive filters independent from Settings::isPrintDirectiveDefinitions() (90194c4)
  • substr() => mb_substr() (c64a81f)

Package migrator

Bug Fixes

  • Registration of RawMigrationCreator (5552218)
  • SmartMigrator::getMigrationFiles() path normalization (c7bbaf0)

Package testing

Features

Bug Fixes

  • WithTestObject will correctly remove table after test (5f3b1ab)

Laravel v11 Support 🧐

28 Mar 11:30
6.2.0
f156fb8
Compare
Choose a tag to compare
Mark Type Count Packages
Features 4 *, dev, documentator
Bug Fixes 1 spa
💀 Deprecations 6 documentator, spa, testing
Miscellaneous 6 *

All packages

Features

Miscellaneous

  • composer dependency analyser tool (#140, 5192462)
  • composer.json normalization (#145, 3e30a97)
  • Deprecated class/methods marked by trigger_deprecation() (#148, 4979a4e)
  • Minimal version of laravel/framework set to ^10.34.0 (66e86e9)
  • Removed doctrine/dbal dependency (27da03c)
  • Switch to individual illuminate/* packages instead of laravel/framework (#117, #141, ce80ae2)

Package dev

Features

Package documentator

Features

  • Fetching instruction parameters via Reflection API/PhpDoc (#149, 639792b)
  • requirements command will support package merging (07adf1d)

Deprecations 💀

  • LastDragon_ru\LaraASP\Documentator\Utils\Path (please use LastDragon_ru\LaraASP\Core\Utils\Path instead) (#146, d2c7592)
  • ParameterizableInstruction::getParametersDescription() (phpdoc should be used instead) (b66d8e4)

Package spa

Bug Fixes

  • Support Illuminate\Validation\InvokableValidationRule in WithValueProvider (594e043)

Deprecations 💀

  • LastDragon_ru\LaraASP\Spa\Http\Request (use custom class and WithValueProvider trait instead) (db17969)
  • Validation rules will not implement deprecated Illuminate\Contracts\Validation\Rule in the next major version (4c05b89)

Package testing

Deprecations 💀

  • LastDragon_ru\LaraASP\Testing\Database\RefreshDatabaseIfEmpty (use own trait instead) (dd6a34e)
  • LastDragon_ru\LaraASP\Testing\TestCase (69a1227)

More assertions 🥩

14 Mar 09:54
6.1.0
2690a59
Compare
Choose a tag to compare
Mark Type Count Packages
Features 7 documentator, graphql, graphql-printer, testing
Bug Fixes 5 documentator, graphql, graphql-printer, testing
💀 Deprecations 2 graphql, testing

The release introduces more testing assertions and much better docs for them.

Package documentator

Features

  • IncludeDocBlock (include:docblock) will replace inline @see/@link to FQCN if possible (71aa7b6)

Bug Fixes

  • IncludeDocBlock (include:docblock) will include whole docblock by default (00ace46)
  • Preprocessor regexp mode (added u flag) (ea497bb)

Package graphql

Features

  • Added assertGraphQLIntrospectionEquals() assertion (539ba11)
  • Added assertGraphQLSchemaNoBreakingChanges() assertion (ed9bfc1)
  • Added assertGraphQLSchemaNoDangerousChanges() assertion (ee41b8c)
  • Added assertGraphQLSchemaValid() assertion (49941c5)

Bug Fixes

  • The current schema will be pass to assertGraphQLPrintableEquals()/assertGraphQLExportableEquals() when not specified (9c930b2)

Deprecations 💀

  • *:getDirectiveLocations()/*:getLocations(), please use *::locations() instead (224a69a)

Package graphql-printer

Features

  • GraphQLExpected can hold the Schema (that required for export) (a6a316e)

Bug Fixes

  • Printer::process() will not throw DirectiveDefinitionNotFound (same as for a type) (3246647)

Package testing

Features

  • Added ResponseAssertions::assertPsrResponse() assertion (6d42dda)

Bug Fixes

  • ScheduleAssertions::assertScheduled() command class detection (018d177)

Deprecations 💀

  • ResponseAssertions::assertThatResponse(), please use ResponseAssertions::assertPsrResponse() instead (81125e9)

Spring Evolution 🌷

01 Mar 12:25
6.0.0
551536e
Compare
Choose a tag to compare
Mark Type Count Packages
Breaking changes 46 *, core, documentator, formatter, graphql, migrator, queue, testing
Features 20 documentator, formatter, graphql, serializer, testing
Performance Improvements 2 graphql
Bug Fixes 9 documentator, graphql
💀 Deprecations 5 graphql
Miscellaneous 4 *, documentator
Code Refactoring 30 *, core, documentator, graphql, migrator, queue, testing

The new release with a huge number of API changes addressed to make the code more clear and extendable. The majority are related to the GraphQL part and introduce several improvements (or breaking changes if you like 😁). Probably the most critical is the change of query syntax - the extra operators and fields were split into different types, which removes any possible conflicts between them (no way to solve it in v5). This is mean that the default syntax now is users(where: { field: { name: { equal: "..." } } }) { ... }/comments(order: [ {field: {user: {name: asc}}} ]) instead of users(where: { name: { equal: "..." } } ) { ... }/comments(order: [ {user: {name: asc}} ]) (notice to field: {...}). The second - all enums were converted into PHP enums internally, so the case of member names followed by the PHP convention (Asc instead of asc). Also, note about input types auto-generation improvements and that the recommended way to add operators is inside GraphQL schema with extend scalar SearchByOperators* (now should be possible to do all the same as in config).

Please follow Upgrade Guide to migrate 🤗 (and learn how to switch back to the previous query syntax 😉). You can ask a question and/or discuss in release disscussion.

All packages

Miscellaneous

  • Better dependencies (#123, 0d1d914)
  • Minimal version of phpstan/phpdoc-parser set to ^1.25 (0b096ac)
  • Tools extracted from composer.json into vendor-bin (#122, 76f629c)

Code Refactoring

Package core

Code Refactoring

  • Removed deprecated Helper::callAfterBoot() (8357bc5) ☣
  • Removed deprecated InstanceCache trait (cfa1db7) ☣

Package documentator

Features

  • IncludePackageList (include:include:package-list) will also detect path to UPGRADE.md (should be in the same directory where README) (2f2adeb)
  • template parameter support for IncludeDocumentList (include:document-list) (af8f2e4)
  • template parameter support for IncludePackageList (include:include:package-list) (d2dbf7f) ☣

Bug Fixes

  • Added missed nikic/php-parser requirement + compatibility with v5 (abcae15)
  • requirements command will use local composer.json for HEAD (80486bd)

Miscellaneous

  • Removed phpdocumentor/reflection-docblock, the phpstan/phpdoc-parser will be used instead (6faba1b)

Code Refactoring

  • Instruction classes reorganization (9c8a066) ☣
  • Instruction templates reorganization (f4a00ee) ☣
  • Removed deprecated LastDragon_ru\LaraASP\Documentator\Preprocessor\Instruction (52f6d87) ☣

Package formatter

Features

  • duration() fraction seconds and new format syntax support (#108, 9bc90af) ☣
  • Formatter::filesize() support for robibyte (RiB) and quebibyte (QiB) (#106, 56b83fa) ☣
  • time()/date()/datetime() will accept only string as $format name (5612367) ☣

Package graphql

Features

  • Ability to disable operators (#113, 01c7f71)
  • Input type auto-generation improvements (#114, #127, accd8bf) ☣
  • Root types for @searchBy and @sortBy (#118, #129, 693df03) ☣
  • Setting builder.allowed_directives will be applied for Implicit types only. For the Explicit types, all directives will be copied (#132, 6839e8f)
  • Type extensions improvements (#136, 1703d95) ☣
  • Universal builder property resolver (#120, #87, f5934ef) ☣
  • @sortBy: Added (missed) @sortByExtendOperators directive (0b1652c)
  • @sortBy: Default nulls ordering (#110, #111, e528aec) ☣
  • @sortBy: Nulls ordering operators nullsFirst/nullsLast (#119, e260593)
  • @sortBy: Support of Operators::Object (467b023) ☣
  • @stream: ResolveInfo::enhanceBuilder() will be used only if really necessary (also, it is faster, and required to enhance/support any builder) (08f0e26) ☣

Performance Improvements

  • Bindings registration (bindIf() => scopedIf()) (41387ae)
  • Per type Operators cache (8fda774)

Bug Fixes

  • Detection of operator-directive for implicit type (b5a777e)
  • Lighthouse v6.34.0 compatibility (failed tests) (ce67672)
  • @searchBy: Directive locations (b56b21b) ☣
  • @sortBy: Directive locations (4d4e8ce) ☣
  • @sortBy: Possible too long alias name for joined relation (73c87ec)
  • @sortBy: Random order will be available only for Query and Eloquent builders (7ffc919)
  • @sortBy: Str::camel() replaced to Str::studly() as it should be (dc5b70f)

Deprecations 💀

  • LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Scout\FieldResolver, use LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\BuilderPropertyResolver instead (122f29b) ☣
  • @searchBy: @searchByOperatorRelation, the @searchByOperatorRelationship should be used instead (8cdb50e)
  • @searchBy: @searchByOperators (the @searchByExtendOperators should be used instead) (a710b68)
  • @searchBy: enum SearchByTypeFlag { yes }/enum SortByTypeFlag { yes }, please use enum SearchByTypeFlag { Yes }/enum SortByTypeFlag { Yes } instead (75639af)
  • @sortBy: enum SortByTypeDirection { asc, desc }, please use enum SortByTypeDirection { Asc, Desc } instead (c9a515b)

Code Refactoring

  • Ability to override type of *FieldSource/*ArgumentSource (760a71d) ☣
  • Added TypeSource::isObject() (0c53721) ☣
  • Added TypeSource::isScalar(), TypeSource::isEnum() (0600d0d) ☣
  • Added parent to the Source (30f3e95) ☣
  • API Improvements (#130, 7a43a09) ☣
  • AstManipulationBuilderInfo => HandlerContextBuilderInfo (b8eacb2) ☣
  • AstManipulator::getOriginTypeDefinition() => (more useful) AstManipulator::getOriginType() (2f29617) ☣
  • Better names for (internal) directives (#128, abef051) ☣
  • Builder Context (#116, 79b3bf0) ☣
  • Context moved to LastDragon_ru\LaraASP\GraphQL\Builder\Context namespace (e65075d) ☣
  • InputObject::getFieldDirectiveOperator() => InputObject::getFieldOperatorDirective() (e0f97a8) ☣
  • Manipulator::getPlaceholderTypeDefinitionNode() => AstManipulator::getOriginTypeDefinition() (342a170) ☣
  • Operator:isBuilderSupported() => Operator:isAvailable() (55d486f) ☣
  • OperatorDirective::getDirectiveLocations() renamed to OperatorDirective::getLocations() (2bfe45c) ☣
  • Operators (#133, 4e91f28) ☣
  • Property not Stringable anymore (fd5d8ef) ☣
  • Removed deprecated ClientException::getCategory() (24cb66f) ☣
  • @searchBy: @searchByOperatorRelation renamed to `@searchByOperatorRelat...
Read more