Skip to content

Releases: Atlantic18/Skipper

3.5.3.1893

Choose a tag to compare

@ludekvodicka ludekvodicka released this 03 Oct 06:50
214f0f9

Changes in version 3.5.3.1893

  • Fixed a crash on Apple Silicon Macs when a project could not be loaded. Project-loading errors are now handled safely and diagnostic reports include the original error.

3.5.2.1891

Choose a tag to compare

@ludekvodicka ludekvodicka released this 01 Oct 16:18
214f0f9

Changes in version 3.5.2.1891

  • Bundle export settings: the export path is now saved correctly for a bundle stored in its own file. Before, the path got one extra ../, so the export went one directory too high. (support-ticket)

3.5.1.1890

Choose a tag to compare

@ludekvodicka ludekvodicka released this 10 Sep 06:45
214f0f9

Changes in version 3.5.1.1890

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Native Windows on ARM (ARM64) support - Skipper now runs natively on Windows on ARM devices as a dedicated ARM64 build, no x64 emulation required. (New!)
  • Native 64-bit Windows package - Skipper is now distributed as a native x64 build alongside the existing 32-bit one, lifting the address-space limit of the 32-bit process on very large models. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Linux builds are now compiled on Ubuntu 22.04 LTS and macOS builds on macOS 15.
  • Linux system requirements: the Linux package now requires glibc 2.35 or newer. It runs on Ubuntu 22.04 LTS, Debian 12, Fedora 36 and Red Hat Enterprise Linux 10 and their later releases.
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.
  • Laravel and Knex migrations: rolling back a changed named index now restores its previous type, name, and columns instead of repeating the forward definition.
  • Laravel and Knex migrations: changing a named index now replaces the previous definition before creating the updated one, preventing duplicate index errors.
  • Laravel migrations: removing a property from a named index now replaces the previous index definition instead of generating an empty migration.
  • Doctrine 2 attributes: a trailing comma inside a PHP 8 attribute group or argument list (as written by code formatters such as Prettier) no longer produces an empty attribute and invalid PHP on re-export; the same fix covers docblock annotation argument lists (support-ticket)
  • Doctrine 2 attributes: attribute overrides now export valid PHP 8 code. The nested ORM\Column inside ORM\AttributeOverrides was written without the new keyword, so PHP rejected the generated file with Constant expression contains invalid operations. (support-ticket)
  • Doctrine 2 attributes: importing attribute overrides no longer loses their content. Every override inside ORM\AttributeOverrides was dropped during the import and came back as an empty list on the next export.

3.5.1.1889

Choose a tag to compare

@ludekvodicka ludekvodicka released this 09 Sep 16:36
214f0f9

Changes in version 3.5.1.1889

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Native Windows on ARM (ARM64) support - Skipper now runs natively on Windows on ARM devices as a dedicated ARM64 build, no x64 emulation required. (New!)
  • Native 64-bit Windows package - Skipper is now distributed as a native x64 build alongside the existing 32-bit one, lifting the address-space limit of the 32-bit process on very large models. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Linux builds are now compiled on Ubuntu 22.04 LTS and macOS builds on macOS 15.
  • Linux system requirements: the Linux package now requires glibc 2.35 or newer. It runs on Ubuntu 22.04 LTS, Debian 12, Fedora 36 and Red Hat Enterprise Linux 10 and their later releases.
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.
  • Laravel and Knex migrations: rolling back a changed named index now restores its previous type, name, and columns instead of repeating the forward definition.
  • Laravel and Knex migrations: changing a named index now replaces the previous definition before creating the updated one, preventing duplicate index errors.
  • Laravel migrations: removing a property from a named index now replaces the previous index definition instead of generating an empty migration.
  • Doctrine 2 attributes: a trailing comma inside a PHP 8 attribute group or argument list (as written by code formatters such as Prettier) no longer produces an empty attribute and invalid PHP on re-export; the same fix covers docblock annotation argument lists (support-ticket)
  • Doctrine 2 attributes: attribute overrides now export valid PHP 8 code. The nested ORM\Column inside ORM\AttributeOverrides was written without the new keyword, so PHP rejected the generated file with Constant expression contains invalid operations. (support-ticket)
  • Doctrine 2 attributes: importing attribute overrides no longer loses their content. Every override inside ORM\AttributeOverrides was dropped during the import and came back as an empty list on the next export.

3.5.1.1888

Choose a tag to compare

@ludekvodicka ludekvodicka released this 08 Sep 12:15
214f0f9

Changes in version 3.5.1.1888

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Native Windows on ARM (ARM64) support - Skipper now runs natively on Windows on ARM devices as a dedicated ARM64 build, no x64 emulation required. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Migrated deployment to Ubuntu 26.04 (GCC 15) and macOS 15
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.
  • Laravel and Knex migrations: rolling back a changed named index now restores its previous type, name, and columns instead of repeating the forward definition.
  • Laravel and Knex migrations: changing a named index now replaces the previous definition before creating the updated one, preventing duplicate index errors.
  • Laravel migrations: removing a property from a named index now replaces the previous index definition instead of generating an empty migration.
  • Doctrine 2 attributes: a trailing comma inside a PHP 8 attribute group or argument list (as written by code formatters such as Prettier) no longer produces an empty attribute and invalid PHP on re-export; the same fix covers docblock annotation argument lists (support-ticket)
  • Doctrine 2 attributes: attribute overrides now export valid PHP 8 code. The nested ORM\Column inside ORM\AttributeOverrides was written without the new keyword, so PHP rejected the generated file with Constant expression contains invalid operations. (support-ticket)
  • Doctrine 2 attributes: importing attribute overrides no longer loses their content. Every override inside ORM\AttributeOverrides was dropped during the import and came back as an empty list on the next export.

3.5.1.1887

Choose a tag to compare

@ludekvodicka ludekvodicka released this 07 Sep 18:04
214f0f9

Changes in version 3.5.1.1887

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Native Windows on ARM (ARM64) support - Skipper now runs natively on Windows on ARM devices as a dedicated ARM64 build, no x64 emulation required. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Migrated deployment to Ubuntu 26.04 (GCC 15) and macOS 15
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.
  • Laravel and Knex migrations: rolling back a changed named index now restores its previous type, name, and columns instead of repeating the forward definition.
  • Laravel and Knex migrations: changing a named index now replaces the previous definition before creating the updated one, preventing duplicate index errors.
  • Laravel migrations: removing a property from a named index now replaces the previous index definition instead of generating an empty migration.
  • Doctrine 2 attributes: a trailing comma inside a PHP 8 attribute group or argument list (as written by code formatters such as Prettier) no longer produces an empty attribute and invalid PHP on re-export; the same fix covers docblock annotation argument lists (support-ticket)

3.5.1.1886

Choose a tag to compare

@ludekvodicka ludekvodicka released this 10 Aug 07:17
214f0f9

Changes in version 3.5.1.1886

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Native Windows on ARM (ARM64) support - Skipper now runs natively on Windows on ARM devices as a dedicated ARM64 build, no x64 emulation required. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Migrated deployment to Ubuntu 26.04 (GCC 15) and macOS 15
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.

3.5.1.1882

Choose a tag to compare

@ludekvodicka ludekvodicka released this 21 Jul 14:58
214f0f9

Changes in version 3.5.1.1882

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Migrated deployment to Ubuntu 26.04 (GCC 15) and macOS 15
  • Laravel migrations: changing a property of a column that already has a unique index (for example NOT NULL to nullable) no longer tries to create that index a second time. The migration failed with 'Duplicate key name'.
  • Knex migrations: changing a property of a column that already has a unique index no longer re-creates the index. Turning a primary key into a plain unique column no longer drops an index that does not exist.
  • Laravel migrations: after() is no longer generated inside change(). The column is already in place, so it only forced a full table rebuild on MySQL and was ignored by the other database platforms.

3.5.1.1881

Choose a tag to compare

@ludekvodicka ludekvodicka released this 15 Jul 13:38
214f0f9

Changes in version 3.5.1.1881

  • Native Apple Silicon (arm64) support - Skipper now runs natively on Apple Silicon Macs as a Universal 2 (arm64 + Intel) build, no Rosetta required. (New!)
  • Security and stability: upgraded the core third-party library stack - OpenSSL 3.6.3, Boost 1.91, and refreshed vcpkg-managed libraries (libcurl, libxml2/libxslt and others), rebuilt with the current Visual Studio 2019 (v142) toolset.
  • Updated the Qt framework to 5.15.19 (KDE Patch Collection), adding accumulated upstream fixes on top of the maintained Qt 5.15 LTS series.
  • Migrated deployment to Ubuntu 26.04 (GCC 15) and macOS 15

3.5.0.1878

Choose a tag to compare

@ludekvodicka ludekvodicka released this 07 Jul 09:42
214f0f9

Changes in version 3.5.0.1878

  • CLI: apply-patch verb with 36 operations for all model object types (New!)
  • Custom SQL in migrations: raw before/after SQL on up()/down() (Laravel, Knex) - via the GUI Migration SQL editor, the Custom migration tab in Create revision, and the -cli-set-migration-sql verb. (New!)
  • CLI: -license-info command shows current license status (New!)
  • CLI: -license-activate command for headless license activation (no GUI/X server needed) (New!)
  • CLI: 16 command-line verbs for headless schema management (New!)
  • CLI: Three new auto-update verbs: check-update queries Harbor, download-update fetches release, apply-update installs (New!)
  • CLI: SkipperCli.exe console build for CI/CD and scripting use (New!)
  • CLI: AI-ready skill document bundled with installer (DocumentationAi/ folder) (New!)
  • CLI: export-diagram renders schema as PNG or PDF from command line (New!)
  • CLI: create-project, import-project, and import-database verbs (New!)
  • CLI: schema-summary, validate, compare, and export verbs (New!)
  • CLI: apply-merge verb for declarative target-state schema updates (New!)
  • CLI: Enhanced module name resolution with case-insensitive and prefix-match fallbacks
  • CLI: License commands (activate/info/unregister) now return structured JSON for automation instead of GUI dialogs
  • CLI: apply-patch returns per-op ids; add_* ops accept inline orm_attributes (incl. M:N per-side); $ref references within one patch; set_orm_attribute supports all object types.
  • CLI: -cli-export-ops round-trips unsigned columns and required polymorphic associations; write ops report errors on failed generation, unknown region, or bad $ref.
  • CLI: License errors in CLI mode now return structured JSON output instead of attempting to open GUI dialogs
  • CLI: Added -license-unregister command to deactivate and remove license via command line
  • Migration log now stores IANA timezone name (e.g., "Europe/Berlin") for deterministic UTC computation across environments
  • CLI: Added exception handling for std::exception and generic exceptions in patch operations
  • CLI: Automatic headless mode on Linux — QT_QPA_PLATFORM=offscreen set automatically when CLI flags detected without DISPLAY
  • CLI: apply-patch update_index accepts fields to add index columns (idempotent)
  • CLI: NULLABLE_PK and other validation warnings for schema quality checks
  • CLI: schema-summary includes orm_attributes on all object types
  • CLI: new entities auto-create PK, many-to-many auto-creates join entity with composite PK
  • CLI: JSON escape auto-correction and forward-slash namespace conversion for AI tools
  • CLI: lifecycle callbacks configurable in single operation via values parameter
  • CLI: ORM attribute manipulation with Entity.field dotted notation for fields
  • CLI: add_many_to_many and update_many_to_many now persist owner/inverse aliases (previously applied in memory but lost on save, leaving the template-generated aliases)
  • Doctrine 2: PHP 8.4 property hooks ({ get; set; }, including by-reference &get) are now preserved when re-exporting an existing entity. Regression introduced in 3.4.4.
  • CLI: license commands (activate/info/unregister) route trace and message output to stderr, keeping stdout clean JSON for automation
  • CLI: apply-patch rejects unknown field data types (e.g. unsignedBigInteger) at write time instead of failing later during validate
  • CLI: update package extraction now blocks Zip Slip path traversal
  • CLI: -cli-export no longer fails with "Directory []" for a relative project path.
  • Migrations: custom before/after SQL is no longer lost on save; multi-query ordering fixed.
  • CLI: entity/module references resolve by full qualified name (fixes duplicate short names across modules).
  • CLI: add_association links a pre-existing same-named foreign-key column instead of creating a duplicate; a column already used by another association still gets its own column.
  • Fixed an application crash during automatic session-state autosave: when the temporary state database file was locked by another process (e.g. a second running Skipper instance), the backup error escaped into the Qt event loop and terminated the application. Autosave failures are now handled safely and the locked-file situation is avoided.
  • Doctrine 2: Re-exporting an existing entity now preserves custom property visibility (public / protected / private) instead of resetting it. Regression introduced in 3.4.4.
  • CLI: add_field/update_field handle unsigned attribute
  • CLI: INDEX_NO_FIELDS validation warning for indexes without field columns
  • CLI: add_index accepts fields parameter as both string and array (previously string was silently dropped)
  • Fixed migration export producing UTC datetime diffs when exporting on a server with a different timezone than the original author
  • CLI: Removed export-classes and export-migrations verbs; export pipeline generates all files in single pass
  • CLI: Fixed silent crash when module names cannot be resolved; added comprehensive exception handling
  • CLI: Fixed attribute inflation; removed unnecessary export metadata, reducing file size ~5x
  • CLI: Fixed temp directory path leaking into saved project files
  • Doctrine2: Fixed export of has-lifecycle-callbacks attribute to PHP 8 attributes format - was incorrectly placed as ORM\Table parameter instead of standalone #[ORM\HasLifecycleCallbacks] attribute
  • CLI: Fixed Linux CLI crash when X11 display forwarding is broken or unavailable
  • CLI: Fixed headless CLI commands hanging indefinitely on Linux when no license is present
  • Fixed viewer license rejected with MAINTENANCE_EXPIRED (viewer has no maintenance field)
  • Fixed ORM attribute path resolution failing for short entity names and forward-slash paths
  • Fixed many-to-many join entity FK fields missing primary key and NOT NULL constraints
  • Fixed entity rename creating copy in temporary module instead of renaming in-place