Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
39b287f
Added Exlusion constraint as described at https://www.postgresql.org/…
deem0n Jan 29, 2019
f05dc48
Merge 8a7852095a8aa28de0cb66354254535b98da2780
deem0n Jan 29, 2019
ca32754
Merge branch 'master' of https://github.com/juliendelplanque/FAMIXNGSQL
deem0n May 26, 2020
325f6b7
Added ExclusionConstraint to the MetaModel generation process.
deem0n Feb 21, 2021
7af7700
Fix the update metamodel help text
deem0n Feb 21, 2021
2d12fc5
Update BaselineOfFAMIXNGSQL.class.st
deem0n May 29, 2022
af698ac
Reflect Moose changes for TNamespaceEntity -> TNamedEntity
deem0n May 29, 2022
44ab4bb
Merge branch 'master' of https://github.com/deem0n/FAMIXNGSQL
deem0n May 29, 2022
89be4fb
fix trait TNamespaceEntity
deem0n May 29, 2022
83d5379
Model is generated under Pharo 10, but there are some issues with tra…
deem0n Jul 27, 2023
93e93e3
Restore SQL metamodel relations on Moose 13 and report source analysi…
deem0n Sep 17, 2026
9dedd5e
Preserve SQL entity identities and source anchors across MSE round trips
deem0n Sep 17, 2026
1ca9535
Document Pharo 13 setup, model analysis and export workflows
deem0n Sep 17, 2026
3c4becd
Merge branch 'pharo13-pgmetadata-integration'
deem0n Sep 17, 2026
3ab3795
Exclude abstract SQL base from global metamodel regeneration
deem0n Sep 17, 2026
96b25de
Test Pharo 13 and prebuilt Moose 13 with PostgreSQL in CI
deem0n Sep 17, 2026
ae51a39
Use a filesystem-safe smalltalkCI report name
deem0n Sep 17, 2026
cf7792c
Prepare v2.0.0 release notes and publish CI test reports
deem0n Sep 17, 2026
d5c7c69
Accept the string-valued Moose major version in CI
deem0n Sep 17, 2026
55c0780
Update GitHub Actions to Node.js 24 releases
deem0n Sep 17, 2026
3690217
Display PostgreSQL as the SQL model source language
deem0n Sep 17, 2026
4929734
Update README.md
NicolasAnquetil Sep 20, 2026
660aa7d
Refactor entity count code in README.md
NicolasAnquetil Sep 20, 2026
4b19ec1
Rename SQL query relations to preserve Moose navigation
deem0n Sep 20, 2026
6e1c636
Enable standard Moose maps for SQL reference containment
deem0n Sep 20, 2026
739e0bf
Merge pull request #10 from moosetechnology/merge-dorofeev
deem0n Sep 20, 2026
0ed4131
Clarify Playground and Inspector contexts after PR #10
deem0n Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Tests

on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
test:
name: ${{ matrix.image }} / PostgreSQL 15
runs-on: ubuntu-22.04
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
image: [Pharo64-13, Moose64-13]
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: famixngsql_ci
POSTGRES_USER: famixngsql_ci
POSTGRES_PASSWORD: famixngsql_ci
ports:
- 55432:5432
options: >-
--health-cmd "pg_isready -U famixngsql_ci -d famixngsql_ci"
--health-interval 5s
--health-timeout 5s
--health-retries 12
env:
FAMIXNGSQL_TEST_HOST: 127.0.0.1
FAMIXNGSQL_TEST_PORT: '55432'
FAMIXNGSQL_TEST_DATABASE: famixngsql_ci
FAMIXNGSQL_TEST_USER: famixngsql_ci
FAMIXNGSQL_TEST_PASSWORD: famixngsql_ci
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: hpi-swa/setup-smalltalkCI@c0a3a3b942ac515b6c3846ca2f65802d353757ef # v1
with:
smalltalk-image: ${{ matrix.image }}
- name: Load and test in a clean image
run: smalltalkci -s '${{ matrix.image }}' .smalltalk.ston
- name: Upload JUnit results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ matrix.image }}-test-results
path: FAMIXNGSQL-2-Pharo13-Moose13.xml
if-no-files-found: warn
retention-days: 14
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.DS_Store
artifacts/
12 changes: 11 additions & 1 deletion .smalltalk.ston
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
SmalltalkCISpec {
#name : 'FAMIXNGSQL-2-Pharo13-Moose13',
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'FAMIXNGSQL',
#directory : 'src',
#load : [ 'Tests', 'GeneratorTests' ],
#onConflict : #useIncoming,
#onUpgrade : #useIncoming,
#platforms : [ #pharo ]
}
]
],
#preTesting : 'scripts/ci/configure-database.st',
#testing : {
#packages : [ 'FamixNGSQL-Importer-Tests', 'FAMIXNGSQLMetamodelGenerator-Tests', 'PgMetadata-tests' ],
#defaultTimeout : 120,
#failOnZeroTests : true
}
}
35 changes: 22 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
language: smalltalk
sudo: false

dist: jammy
os: linux
services:
- docker
smalltalk:
- Pharo64-13
- Moose64-13
smalltalk_edge:
source: hpi-swa/smalltalkCI
branch: master
env:
global:
- FAMIXNGSQL_TEST_HOST=127.0.0.1
- FAMIXNGSQL_TEST_PORT=55432
- FAMIXNGSQL_TEST_DATABASE=famixngsql_ci
- FAMIXNGSQL_TEST_USER=famixngsql_ci
- FAMIXNGSQL_TEST_PASSWORD=famixngsql_ci
before_script:
- docker run --detach --name famixngsql-postgres --publish 127.0.0.1:55432:5432 --env POSTGRES_DB=famixngsql_ci --env POSTGRES_USER=famixngsql_ci --env POSTGRES_PASSWORD=famixngsql_ci postgres:15
- bash scripts/ci/wait-for-postgres.sh
script:
- smalltalkci .smalltalk.ston
notifications:
email:
on_success: never
on_failure: always

os:
- linux
- osx

smalltalk_edge:
source: peteruhnak/smalltalkCI
branch: master

smalltalk:
- Pharo-7.0
64 changes: 64 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Changelog

## 2.0.0 — 2026-09-17

This is the Pharo 13 / Moose 13 migration of FAMIXNGSQL. It supersedes the
historical Pharo 7 release; the `v1.0.0` tag remains unchanged.

### Breaking changes

- Use `github://deem0n/FAMIXNGSQL:v2.0.0/src` to install the release. Packages use
Tonel under `src`; historical `/repository` loading instructions do not apply.
- Use `FmxSQLModel` in place of the historical `FmxSQLMooseModel`.
- Generated classes and traits target the current Famix infrastructure. Pharo 7,
Pharo 10 and older Moose versions are not supported by this release's tests.
- The default group is `Core`. Historical GT/Telescope/connection-manager UI
packages are isolated in `LegacyUI` and are not validated for this release.
- Regenerated containment and source-anchor relations may differ from older
MSE exports. Cross-version import of historical MSE files is not guaranteed.

### Model and importer

- Restore namespace ownership, association direction and source-holder/anchor
relationships on the current metamodel builder.
- Preserve CHECK and exclusion constraint calls to routines and inverse links.
- Integrate updated PgMetadata extraction through upstream P3 code, including
materialized views, partitioned/foreign tables, routine OIDs/languages,
parameter order/modes and trigger ownership on tables or views.
- Read catalogs in a read-only, repeatable-read transaction and close the
metadata connection after extraction.
- Use separate SQL and PL/pgSQL parser entry points. Preserve source when
syntax, language or name resolution is unsupported.
- Record per-object analysis status, diagnostics and timeouts. Ambiguous calls
retain candidate routines; runtime-dependent dynamic SQL targets are not guessed.
- Preserve entity identity, inverse relations and source anchors through MSE
export/import. Export diagnostics separately as JSON.
- Exclude the abstract structural base generator from global regeneration.

### Tests and continuous integration

- Share smalltalkCI configuration between Travis CI and GitHub Actions.
- Test both a plain Pharo 13 image and the ready-made Moose 13 / Pharo 13 image
against a disposable PostgreSQL 15 service.
- Run importer, metamodel-generator selection and PgMetadata suites. Fixtures
create unique schemas and clean them up after each scenario.

### Known limits

- SQL/PL/pgSQL parsing and semantic analysis are incomplete. The documented `mi`
import retained 70,143 unique entities but still reported 520 parser syntax
failures and additional reference-resolution errors. Consult the analysis
report rather than treating a completed import as complete source coverage.
- The upstream Moose 13 image is a rolling development build. Other runtime
combinations and `LegacyUI` remain unvalidated.
- Some transitive dependencies still follow upstream branches; the dependency
stack is not fully frozen by the FAMIXNGSQL tag alone.
- Package ownership after metamodel regeneration remains tracked in issue #8.

See [README](README.md) for installation and examples, and the
[migration audit](docs/pharo13-migration-audit.md) for detailed evidence.

## 1.0.0 — 2019-09-02

Historical upstream release for Pharo 7:
[release notes](https://github.com/juliendelplanque/FAMIXNGSQL/releases/tag/v1.0.0).
Loading