brick_build
Code generation library and interface for Brick components. Useful for creating serdes generators for adapters.
4.1.0
8.0K downloads/mo
#3234 most downloaded on pub.dev
GetDutchie/brick
What this package is like to depend on
Last release 9 months ago
01 Nov 2025
Ships unpredictably
gaps range from 9 days to 1.3 years
Most releases are documented
notes for 39 of 44 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
54 releases · first in 2020
1 release in the last 12 months
see the full history below
Release timeline
54 releases · Jan 2020 to Nov 2025Releases
latest 54-
4.1.001 Nov 2025Release notes
Open source →- Support
analyzer>=8.0.0 <10.0.0 - Support
build>=3.0.0 <5.0.0 - Support
source_gen>=3.0.0 <5.0.0
- Support
-
4.0.018 Feb 2025Release notes
Open source →- Dart minimum SDK is updated to
3.4.0 - All dependency restrictions are updated to include the minimum released version.
- Dart minimum SDK is updated to
-
3.3.102 Jan 2025Release notes
Open source →- Remove
FieldSerializable#nullablerequirement ondeserializerNullableClause - Update minimum
brick_coreto1.4.0
- Remove
-
3.3.024 Dec 2024Release notes
Open source →- Add documentation to increase pub.dev score
- Update minimum
brick_coreto1.3.0 - Update analysis to modern lints
-
3.2.106 Sep 2024Release notes
Open source →- Revert
.getDisplayString()change due to Flutter 3.22 being restricted to analyzer <6.4.1.metais pinned to1.12in this version of Flutter, andanalyzer >=6.5.0, where the change was made, requiresmeta >= 1.15. This change will eventually be re-reverted.
- Revert
-
3.2.027 Aug 2024Release notes
Open source →- Add convenience mixin
AnnotationFinderWithFieldRenamefor field renames in generators - Add
SharedChecker#withoutNullResultTypefor retrieving the final typed version of a field. "withoutNull" was used instead of the more idiomatic "non-null" because non-null in the Dart ecosystem and lower-level analyzer means "not null-safe." This method strips null suffixes and type symbols like<and>. - BREAKING CHANGE Remove
StringHelpers.kebabCaseandStringHelpers.pascalCase. These should be invoked from theAnnotationFinderWithFieldRename#renameFieldmethod.
- Add convenience mixin
-
3.1.026 Aug 2024Release notes
Open source →- Apply standardized lints
constantizeAggregateBuilder- Update
analyzerconstraints to>=6.0.0 <7.0.0 - Format CHANGELOG.md
-
3.0.123 May 2023 -
3.0.010 Mar 2023Release notes
Open source →- Update
AggregateBuilder#requiredImportsdocs - Remove unnecessary assignment in
BaseBuilder#replaceWithinFile - Update minimum
analyzerconstraint to5.0.0
- Update
-
3.0.0-pre.103 Mar 2023 pre-releaseNothing published for this version
-
2.1.209 Jan 2023Release notes
Open source →- Remove
// This file should NOT be version controlled and should not be manually edited.from adapter generator and model dictionary generator. Both file types can be version controlled;manually editedis redundant givent the precedingGENERATED CODE DO NOT EDITwarning
- Remove
-
2.1.103 Oct 2022Release notes
Open source →- Add
#hasEnumDeserializeFactoryand#hasEnumSerializeMethodtoSharedChecker
- Add
-
2.1.009 Sep 2022 -
2.0.218 Aug 2022Release notes
Open source →- Loosen dependency restrictions to major versions
- Fix duplicate imports to
brick.g.dartwhen class names start with the same prefix
-
2.0.125 Feb 2022Release notes
Open source →- Add
fromJsonConstructorandtoJsonMethodtoSharedChecker, supporting easy discovery of standard methodsfactory fromJsonand#toJson.
- Add
-
2.0.1+125 Feb 2022Nothing published for this version
-
2.0.1+225 Feb 2022Nothing published for this version
-
2.0.1+325 Feb 2022Nothing published for this version
-
2.0.016 Feb 2022Release notes
Open source →- BREAKING CHANGE
brick.g.dartandadaptersare now saved to abrick/folder. This replaces theappfolder. Please renameapptobrickto safely migrate. - BREAKING CHANGE models are now discovered by the
.model.dartsuffix. This permits models to be stored anywhere in a package. Please rename yourmodels/*.dartfiles tomodels/*.model.dart. - Fix adapters builder
- Fix
brick.g.dartimports
- BREAKING CHANGE
-
2.0.0-rc.307 Feb 2022 pre-release -
2.0.0-rc.202 Feb 2022 pre-release -
2.0.0-rc.102 Feb 2022 pre-releaseRelease notes
Open source →- BREAKING CHANGE
brick.g.dartandadaptersare now saved to abrick/folder. This replaces theappfolder. Please renameapptobrickto safely migrate. - BREAKING CHANGE models are now discovered by the
.model.dartsuffix. This permits models to be stored anywhere in a package. Please rename yourmodels/*.dartfiles tomodels/*.model.dart.
- BREAKING CHANGE
-
1.4.007 Feb 2022Release notes
Open source →- Alphabetize methods (internal refactor)
- Upgrade
analyzerdependency to3.2.0
-
1.4.0+107 Feb 2022 -
1.3.020 Jan 2022 -
1.2.309 Dec 2021Release notes
Open source →- Allow forced type nullability on
getAssociationMethodfor improved null safety on future internals.
- Allow forced type nullability on
-
1.2.224 Sep 2021Release notes
Open source →- Add
checkForFieldmethod to enforce constructor preference over field definition for type inference in adapter generation.
- Add
-
1.2.2+127 Sep 2021Release notes
Open source →- Access
checkForFieldby default only when deserializing for fields instead of constructor overrides
- Access
-
1.2.119 Sep 2021 -
1.2.010 Sep 2021Release notes
Open source →- Add Dart Lints
- Improve null safe checking in example
- Add
repositoryHasBeenForceCastto determine whether a repository needs to use the null operator!. Warnings clutter the console when runningflutter buildorflutter testand they cannot be disabled with--no-sound-null-safety - Convert
SerdesGenerator.getAssociationMethodtoSerdesGenerator#getAssociationMethodto accessrepositoryHasBeenForceCast
-
1.2.0+110 Sep 2021Nothing published for this version
-
1.2.0+210 Sep 2021Release notes
Open source →- Remove
@visibleForOverridingannotation fromSerdesGenerator#deserializeNullableClause
- Remove
-
1.2.0+310 Sep 2021Release notes
Open source →- Remove
// ignore_for_file: unnecessary_non_null_assertionand// ignore_for_file: invalid_null_aware_operatorfrom all adapters and add// ignore_for_file: prefer_null_aware_operators - Remove setting
repositoryHasBeenForceCastinSerdesGenerator#getAssociationMethod
- Remove
-
1.1.016 Apr 2021Release notes
Open source →- BREAKING CHANGE removing
testing.dartin favor of new packagebrick_build_test. Please useimport 'package:brick_build_test/brick_build_test.dart'instead.source_gen_testis not null safe, and testing shouldn't be in distributed packages anyway.
- BREAKING CHANGE removing
-
1.1.0+118 Apr 2021Release notes
Open source →- Do not generate null-safe return values in adapters if the member cannot be null. For example, this would remove
data['name'] == null ? null :in the REST adapter function of field that cannot be null in Dart >=2.12
- Do not generate null-safe return values in adapters if the member cannot be null. For example, this would remove
-
1.1.0+222 Jun 2021 -
1.1.0+328 Jun 2021Release notes
Open source →- Ignore
unnecessary_non_null_assertionandinvalid_null_aware_operatorin adapter generated code. If a repository is forced to a non-null value (repository!) subsequent access of the repository must not have an operator (repository.instead ofrepository?). Brick determines properties on a per-member basis, requiring a break in architecture to resolve subsquent access. These are linter warnings, not errors, and therefore they're safe to ignore for adapters.
- Ignore
-
1.0.005 Apr 2021 -
1.0.0-nullsafety.521 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.421 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.321 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.221 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.121 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.015 Mar 2021 pre-releaseNothing published for this version
-
0.0.921 Feb 2021Release notes
Open source →- If
fromGeneratorortoGeneratoris declared, the field will be generated for deserializing and serializing adapters, respectively - Strictly assign analyzer ahead of nullability release versions
- If
-
0.0.806 Feb 2021Release notes
Open source →- Add method
ignoreCoderForFieldtoSerdesGenerator. This doesn't change existing functionality; it only moves it to an overridable method.
- Add method
-
0.0.8+106 Feb 2021Release notes
Open source →- Remove
getInheritedConcreteMapfromfields_for_class.dartas it's no longer used.
- Remove
-
0.0.8+214 Feb 2021 -
0.0.717 Jun 2020Release notes
Open source →- Use assignable instead of super type comparison when checking for siblings to account for inherited classes (#55)
- Add ability to overwrite the nullable check for deserializing members
-
0.0.603 Mar 2020Release notes
Open source →- Rename
ProviderSerializabletoProviderSerializableGeneratorto be more explicit - Rename
SharedChecker#mapArgstoSharedChecker#typeArguments
- Rename
-
0.0.421 Jan 2020Release notes
Open source →- Update for new brick_core API on
Where - Move shareable methods from
OfflineFirstSerdesGeneratortoSerdesGenerator - Constrain version of brick_core
- Split code to separate projects:
rest_serdesto brick_rest_generators,sqlite_serdesand subsequent SQLite builders to brick_sqlite_generators, and all OfflineFirst-specific logic to brick_offline_first_with_rest_build. testing.dartis available for useful testing methods- This package is now a series of utilities and interfaces; it no longer produces generated code.
- Update for new brick_core API on
-
0.0.314 Jan 2020 -
0.0.213 Jan 2020 -
0.0.110 Jan 2020Nothing published for this version