Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[v1.8.2] - 2025-08-04¶
Added¶
- Deployment automation script (
deploy-docs-container.sh
) with dynamic CLI flags to specify Docker image name, container name, and port mapping for flexible documentation site deployment. - Dockerfile improvements for the documentation site, including symlink dereferencing and cleaning steps to prevent build errors and ensure reliable image builds.
- Updated documentation package listing, converting it into a Markdown table with icon images and checkbox indicators for guides availability, enhancing visual clarity and usability.
[v1.8.0] - 2025-08-02¶
Added¶
- Modularization of
db
package as a standalone Go module:github.com/entiqon/db
. - Updated import paths from
github.com/entiqon/entiqon/...
togithub.com/entiqon/db/...
. - Added initial test coverage and CI integration for
db
module. - Future modules like
core
will be added modularly following this pattern. - Icon and documentation support for:
- Category 1: Entiqon Sharicon (orange shared folder)
- Category 2: Entiqon Corecon (green gear)
- Category 3: Entiqon Datacon (green DB cylinder)
- Category 4: Entiqon Commicon (teal antenna)
- Category 5: Entiqon Toolicon (red wrench & hammer)
Note: This is a breaking change; downstream users must update import paths accordingly.
Codename: Atlas
[v1.7.0] - 2025-06-09¶
- refactor(token): rename HasError β IsErrored(), SetErrorWith β SetError()
- feat(token): add GetError(), SetError(), IsErrored() (Errorable contract)
- feat(token): introduce Kind enum and Kindable interface
- feat(token): add SetKind(), GetKind() to BaseToken
- chore(token): update BaseToken.String() to use Kindable & Errorable
- docs: add base_token.md and update token.md to document new contracts
- test: add tests for Errorable and Kindable methods (nil-safe coverage)
Codename: Forge
[v1.6.0] - 2025-05-25¶
Added¶
- Support for aliasable SQL expressions with optional table qualification
- Introduces reusable token abstraction for handling elements like
table.column AS alias
- Provides helper methods:
Raw()
,String()
,WithTable()
,IsValid()
, etc.
Notes¶
This version enables standardized handling of SQL identifiers across the builder, including aliases and table scoping.
It's the first practical application of the previously introduced AliasableToken
.
Codename: Keystone
Changelog¶
[v1.5.0] β 2025-05-24¶
β¨ Features¶
StageToken
: Standardized clause tagging for error validation- Public Dialect API: Enables custom dialect implementations
- Enhanced builder error tagging with
StageToken
π οΈ Refactors¶
- Normalized ParamBinder and Condition to use injected Dialect
- All builders updated to unified token/dialect handling strategy
- Centralized placeholder resolution across WHERE, SET, VALUES
β Test Coverage¶
- builder: 94.4%
- driver: 100.0%
- core/builder: 95.5%
- bind, test packages: 100%
- error/token: >75%
π Docs¶
- Updated all builder guides
- Documented new dialect interface and StageToken strategy
[v1.4.0] - 2025-05-22¶
β¨ Added¶
NewCondition
: semantic-aware condition constructor with support for:- Inline and placeholder syntax (e.g.,
"status = active"
,"status = ?"
+ value) - Type inference (
int
,bool
,float64
,string
) - Operator support:
=
,!=
,<>
,<
,>
,<=
,>=
,IN
,NOT IN
,BETWEEN
,LIKE
,NOT LIKE
- Inline and placeholder syntax (e.g.,
ParamBinder
: unified argument binding for dialects (?
,$N
,:field
)condition_helpers.go
: includesInferLiteralType
,ParsePlaceholderPattern
,AllSameType
, andContainsUnboundPlaceholder
π§± Builders Implemented¶
SelectBuilder
InsertBuilder
UpdateBuilder
DeleteBuilder
UpsertBuilder
(withON CONFLICT
,DO UPDATE
, andDO NOTHING
)
β Validation¶
- All builders enforce:
- Table presence
- Column count/value alignment
- Alias rejection in INSERT/UPSERT
- Invalid or unsupported condition rejection via
AddStageError(...)
UpsertBuilder
supportsRETURNING
only if the dialect allows it (SupportsReturning()
)
π§ͺ Test Coverage¶
- Achieved 100% coverage on:
select.go
,insert.go
,update.go
,delete.go
,upsert.go
condition_renderer.go
,condition_helpers.go
,param_binder.go
[v1.3.0] - 2025-05-19¶
β¨ Added¶
update_builder.md
: merged and normalized UpdateBuilder documentation- Introduced
Dialect Guide
with version-tagged interfaces and test philosophy - Added
Principles & Best Practices
section to README.md - Linked all finalized builder docs under
docs/developer/builder/
- Version tags added to all builder docs (
Since v1.2.0
) - Explicit
Method Reference
andClause Ordering
sections added to guides
π§ͺ Coverage¶
- Achieved 100.0% test coverage across all:
- Builder methods
- Token resolvers
- Dialect interfaces (base, postgres, resolver)
- Deprecated methods (e.g.,
WithDialect(...)
) remain tested until removal - All helper methods, even unused, are now covered and documented
π§ Philosophy¶
- Injected sarcastic validation quote into dialect guide:
βEven if necessary, tests will be tested.β
- All docs and builders adhere to strict validation, quoting, and fluent chaining principles
[v1.2.0] - 2025-05-18¶
π Documentation¶
- Moved all builder documentation into
/docs/builder/
- Added centralized
/docs/index.md
with badges, overview, and links - Integrated GitHub Pages deployment via Actions
- Updated README to offload examples and link each builder spec
π Builders¶
- Finalized
UpsertBuilder
with clause-order enforcement - Added
BuildInsertOnly()
toInsertBuilder
for better delegation - 100% test coverage including all validation branches and dialect fallback
- Strict enforcement of alias rules in
UpdateBuilder
andUpsertBuilder
βοΈ CI/CD¶
- Introduced
docs.yml
GitHub Action to auto-deploy docs on push tomain
- Pages deploy pipeline ensures live site reflects every change
Entiqon is now fully documented and auto-published, with hardened query building and consistent structure across all SQL operations.
[v1.1.0] - 2025-05-17¶
β¨ Added¶
- Introduced dialect-aware escaping via
WithDialect(...)
in all builders -
Implemented
PostgresEngine
with support for:- Escaping table and column identifiers
- Escaping conflict and returning fields in UPSERT
- Exposed
Dialect Engine
interface for future extensibility
π§ Refactored¶
- Unified condition handling via
token.Condition
withSet
,IsValid
,AppendCondition
- Applied shared
NewCondition(...)
constructor across all builders - Updated
Select
,Insert
,Update
,Delete
, andUpsert
to support dialect injection - Improved
UpsertBuilder
to delegate properly and inject dialect intoInsertBuilder
π Documentation¶
-
Updated README with:
- Dialect usage example
- New βDialect Supportβ section
- Go module version badge
Entiqon now provides a consistent, safe foundation for dialect-specific SQL generation β ready for PostgreSQL, and future engines.
[v1.0.0] - 2025-05-16¶
Added¶
SelectBuilder
upgraded to support argument binding and structured condition handling- Consistent
Build() (string, []any, error)
signature across all builders - Enhanced `ConditionToken