Current section

Files

Jump to
selecto_mix CHANGELOG.md
Raw

CHANGELOG.md

CHANGES
=======
V NEXT
----------
V 0.4.7
----------
- Added `mix selecto_mix.verify` and bounded-exhaustive verification for
deterministic normalized-domain artifact encoding across atom/string keys
and construction order.
- Canonicalized artifact JSON keys recursively so semantically equivalent
in-memory artifacts produce identical encoded output.
- Enabled `mix selecto.gen.domain --adapter ... --table ... --live` for
database-backed domains, generating the SelectoComponents LiveView and
template without requiring an Ecto schema.
- Added explicit runtime connection guidance and validation for DB-backed
LiveViews; generation-time database credentials remain outside generated
application source.
- Added DB-backed `--live --saved-views` composition using adapter persistence.
- Fixed explicit database table normalization in `selecto.gen.domain`.
- Fixed generated adapter-backed persistence contexts so default arguments,
module names, and named runtime connections compile correctly.
- Added end-to-end Igniter coverage for DB-backed LiveView generation.
- Bump package version to `0.4.7`.
V 0.4.6
----------
- Relaxed generated installer and README dependency ranges to allow the
coordinated 0.5 Selecto release line while preserving current lower bounds.
- Updated generated installer and README dependency baselines for the
coordinated point release: `selecto >= 0.4.6`,
`selecto_db_postgresql >= 0.4.4`, and `selecto_components >= 0.4.8`.
- Bump package version to `0.4.6`.
V 0.4.5
----------
- Updated generated LiveView route guidance to include a
`SelectoComponents.QueryContract.Plug` `query-contract.json` endpoint beside
the Explorer route.
- Fixed generated LiveView templates so the SelectoComponents form/controller
is always rendered, with collapsed/expanded state passed into the component,
instead of hiding the whole controller and leaving generated pages blank.
- Updated README dependency guidance for `selecto_mix >= 0.4.5`.
- Bump package version to `0.4.5`.
V 0.4.4
----------
- Updated installer and README dependency baselines for the coordinated point
release: `selecto >= 0.4.5`, `selecto_db_postgresql >= 0.4.3`, and
`selecto_components >= 0.4.7`.
- Fixed generated LiveView output to avoid duplicate `render/1` and
`toggle_show_view_configurator` definitions, and to emit colocated HEEx
templates beside the generated LiveView module so Phoenix can render them.
- Bump package version to `0.4.4`.
V 0.4.3
----------
- Fixed schema introspection and domain generation so `:binary_id` and `:uuid`
fields stay UUID-aware instead of degrading to plain strings in generated
Selecto configs.
- Added regression coverage for binary-id primary keys and UUID columns in the
schema introspector and generated domain map output.
- Bump package version to `0.4.3`.
V 0.4.2
----------
- Added `mix selecto.gen.domain` support for `--view`,
`--materialized-view`, `--primary-key`, and `--include-views` so existing DB
views can be generated as read-only Selecto domain sources.
- Updated DB-backed domain generation to carry through relation metadata via
`source_kind` and `readonly`, and to preserve explicit primary-key overrides
for view-backed sources where the database may not expose a usable key.
- Added `mix selecto.gen.view` for dry-run publication of registered
`published_views`, printing the compiled Selecto SQL and generated `CREATE
VIEW` / `CREATE MATERIALIZED VIEW` DDL for inspection.
- Extended `mix selecto.gen.view` to generate Ecto migration files for
published views, using the same validated DDL path for `up` and matching drop
statements for `down`.
- Added published-view index suggestion rendering to `mix selecto.gen.view`
dry-run output and generated migration comments so follow-up indexing guidance
stays attached to the published view artifact.
- Updated generated domains to always emit a `functions: %{}` section so UDF
registrations have an explicit home in the base domain config.
- Preserved existing base-domain `functions` registries during
`mix selecto.gen.domain` regeneration instead of dropping custom UDF specs.
- Added commented `deffunction` examples to generated overlay templates for
scalar and table UDF registrations.
- Updated installer dependency baselines and README guidance for the coordinated
ecosystem release, keeping generated Selecto dependency ranges broad
(`>= ... and < 0.5.0`) instead of pin-like exact versions.
- Bump package version to `0.4.2`.
V 0.4.1
--------
- Updated `mix selecto.gen.saved_view_configs` generated docs and templates to
reflect the current SelectoComponents view-mode set, and added the generated
`load_view_config/4` helper expected by current components code.
- Fixed raw saved view config context generation to emit `load_view_config/4`
alongside the existing get/list/save/update/delete helpers.
- Updated generated LiveView templates to use the canonical
`SelectoComponents.Views.spec/4` helper and document that extension-provided
views such as `:map` and `:timeseries` are merged automatically.
- Updated `mix selecto.gen.exported_views` docs/templates to reflect the
current exported view-mode set and clarify that `SelectoComponents.Form`
renders the exported views manager automatically when configured.
- Updated `mix selecto.gen.filter_sets` guidance to reflect current
`SelectoComponents.Form` integration, where assigning `filter_sets_adapter`
is sufficient for the built-in filter sets UI.
- Updated `mix selecto.gen.live_dashboard` guidance to reflect current
dashboard routing conventions and clarify which generated metrics/index
sections are placeholders for app-specific data.
- Updated `mix selecto.add_timeouts` generated monitor output so it no longer
references a nonexistent `Selecto.QueryTimeoutMonitor` helper module.
- Refreshed stale `selecto_mix` task documentation by removing the nonexistent
`mix selecto.update` reference and listing the currently shipped generators.
- Fixed `mix selecto.gen.domain` auto-generation of saved views to stop passing
an unsupported `--yes` flag.
- Bump package version to `0.4.1`.
V 0.4.0
--------
- Updated installer dependency baselines for the `0.4.0` ecosystem release.
- Updated generated install dependencies to include the external
`selecto_db_postgresql` adapter package for the default PostgreSQL path.
- Updated `mix selecto.install` to add the `postgrex` database driver required
by the default PostgreSQL adapter path, while preserving an existing app-level
`postgrex` dependency declaration when present.
- Bump package version to `0.4.0`.
V 0.3.16
--------
- Raised the minimum supported Elixir version to `1.18`.
- Bump package version to `0.3.16`.
V 0.3.15
--------
- Updated `mix selecto.components.integrate` to treat Phoenix LiveView
colocated hooks as the canonical SelectoComponents integration path, removing
generated `./selecto_hooks`, `TreeBuilderHook`, and Alpine.js requirements.
- Updated integration patching/manual guidance so generated LiveSocket wiring
uses only `phoenix-colocated/selecto_components` hooks plus the Tailwind
`@source` entry for SelectoComponents.
- Bump package version to `0.3.15`.
V 0.3.14
--------
- Updated package metadata description to better reflect Selecto domain
generation and validation responsibilities.
- Added package links for SQL pattern references and the hosted demo
(`https://seeken.github.io/selecto-sql-patterns`,
`https://testselecto.fly.dev`).
- Bump package version to `0.3.14`.
V 0.3.13
--------
- Added native `mix selecto.gen.api` scaffolding task in `selecto_mix` so
Selecto API generation no longer requires a separate app-level
`selecto_api` dependency declaration.
- Updated `mix selecto.gen.updato_api` to be a compatibility alias that
delegates to `mix selecto.gen.api`.
- Updated README API scaffolding docs to prefer `mix selecto.gen.api`.
- Bump package version to `0.3.13`.
V 0.3.12
--------
- Updated installer dependency baselines in `mix selecto.install` to target
current ecosystem releases (`selecto >= 0.3.10`,
`selecto_components >= 0.3.12`).
- Updated README dependency guidance for the coordinated ecosystem release.
- Bump package version to `0.3.12`.
V 0.3.11
--------
- Added `mix selecto.gen.updato_api` wrapper task delegating to
`mix selecto_api.gen.api`.
- Updated README wrapper docs to reflect `selecto_api` ownership for API
scaffolding.
- Bump package version to `0.3.11`.
V 0.3.10
--------
- Fixed Northwind generation/introspection behavior in domain generator and
Ecto introspection paths, with updated coverage in `selecto_mix` tests.
- Added StreamData-backed property coverage for parser/validator and
config-merger robustness (`test/selecto_mix_property_test.exs`).
- Added README documentation for running the SelectoMix property suite.
- Bump package version to `0.3.10`.
V 0.3.9
-------
- Added `usage-rules.md` with focused package guidance for agentic workflows and
dependency rule aggregation tooling.
- Added `MULTI_TENANT_USAGE_PATTERNS.md` with generator-focused guidance for
tenant-aware domain overlays, join validation, and generated app wiring.
- Updated `mix selecto.gen.saved_views` generated context template to support
map-style contexts and tenant-scoped context keys through
`SelectoComponents.Tenant.scoped_context/3` when available.
- Updated `mix selecto.gen.filter_sets` generated context template to scope
domain keys and create-path domain attrs for tenant-aware filter set
persistence.
- Added generator coverage test ensuring `mix selecto.gen.filter_sets` emits
tenant-scoped domain helpers in generated context modules.
- Bump package version to `0.3.9`.
V 0.3.8
-------
- Fixed installer task compilation in consuming apps by restoring `:igniter`
dependency availability in all environments (not scoped to dev/test).
- Added `mix selecto.install` (Igniter task) to bootstrap Selecto dependencies,
run components integration, and support development-mode vendor clones from
a configurable GitHub source owner (`--development-mode --source your-fork`).
- Documented the recommended happy-path installation flow in README:
`mix igniter.install selecto_mix`, then `cd assets && npm install`, then
`mix assets.build`.
- Added `mix selecto_mix.install` as an alias to `mix selecto.install` for
explicit package-scoped install UX.
- Fixed `mix selecto.install` dependency rewrites to preserve valid comma
separation when appending/removing dependency lines in `mix.exs`.
- Fixed `mix igniter.install selecto_mix` installer dispatch for
`mix selecto_mix.install` by defining `supports_umbrella?/0`.
- Fixed `mix igniter.install selecto_mix` compatibility by converting
`mix selecto_mix.install` to an `Igniter.Mix.Task` alias implementation
(resolves missing `parse_argv/1` runtime error).
- Bump package version to `0.3.8`.
V 0.3.7
-------
- Updated `mix selecto.components.integrate` to always print clear post-run
asset steps: `cd assets && npm install` and `mix assets.build`.
- Bump package version to `0.3.7`.
V 0.3.6
-------
- Fixed a crash in `mix selecto.components.integrate` when updating existing
`hooks: {...}` LiveSocket config blocks by switching to `Regex.replace/4`
capture replacement.
- Bump package version to `0.3.6`.
V 0.3.5
-------
- Fixed `mix selecto.components.integrate` to use
`phoenix-colocated/selecto_components` plus local `./selecto_hooks` imports
instead of non-existent `selecto_components/assets/js/hooks` paths in Hex
dependency installs.
- Added legacy import normalization when re-running
`mix selecto.components.integrate`, so previously generated broken hooks
import lines are auto-corrected.
- Bump package version to `0.3.5`.
V 0.3.4
-------
- Fixed generated saved-view dropdown links in `mix selecto.gen.domain` so
`#{@path}`/`#{v}` interpolation renders correctly in HEEx.
- Replaced Alpine-only dropdown behavior with a native `<details>` menu in
generated views, avoiding "stuck open" behavior when Alpine is absent.
- Updated `mix selecto.components.integrate` to detect `vendor/` vs `deps/`
for JavaScript SelectoComponents import paths (CSS already did this).
- Fixed `mix selecto.components.integrate` to use
`phoenix-colocated/selecto_components` + local `./selecto_hooks` imports
instead of non-existent `selecto_components/assets/js/hooks` in Hex deps,
and auto-normalize legacy broken import lines when re-run.
- Bump package version to `0.3.4`.
V 0.3.3
-------
- Added generated saved-view management functions in
`mix selecto.gen.saved_views` context output:
`list_views/1`, `rename_view/3`, and `delete_view/2`.
- Kept generated behavior compatibility with `SelectoComponents.SavedViews`
while making richer saved-view UIs easier to build.
- Bump package version to `0.3.3`.