Skip to content

Releases: feenkcom/gtoolkit

Release v1.0.430

23 Jan 17:06
Compare
Choose a tag to compare
Release version v1.0.430

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.430/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/gt4pharo/commit/d6c72f by Andrei Chiș
Add a highlighter for literal values  [feenkcom/gtoolkit#3570]

Release v1.0.429

23 Jan 15:58
Compare
Choose a tag to compare
Release version v1.0.429

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.429/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/Bloc/commit/5e57d9 by Aliaksei Syrel
introduce focus transfer event

https://github.com/feenkcom/Brick/commit/0a1bfa by Aliaksei Syrel
handle transfer focus when managing pager focus

https://github.com/feenkcom/gtoolkit-coder/commit/7d6d79 by Aliaksei Syrel
Merge 18b639d992dc87f358a841dc77ab2cee1c7f40d4

https://github.com/feenkcom/gtoolkit-coder/commit/14ee48 by Aliaksei Syrel
optimize protocol nad method list in the navigation

https://github.com/feenkcom/gtoolkit-external-process/commit/78868b by svenvc
GtNativeExternalProcessChild>>#terminateAll added that uses TASKKILL /F /T to kill all children on Windows

https://github.com/feenkcom/PythonBridge/commit/c05da8 by svenvc
PBPharoPipenvProcess>>#stop changed to use GtNativeExternalProcessChild>>#terminateAll that uses TASKKILL /F /T to kill all children on Windows

https://github.com/feenkcom/gtoolkit-demos/commit/c47e41 by Oscar Nierstrasz
Modified initializeDb to automatically load slideshow pages with <lePage> pragmas

https://github.com/feenkcom/gt4gemstone/commit/bcdeb6 by Andrei Chiș
Fix missing code after failed merge

Release v1.0.428

23 Jan 14:44
Compare
Choose a tag to compare
Release version v1.0.428

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.428/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/gtoolkit-coder/commit/18b639 by Andrei Chiș
Merge 0669a64897039f6a28c2f2ee334eef44b2953827

https://github.com/feenkcom/gtoolkit-coder/commit/a12b87 by Andrei Chiș
Update priority for #gtLocalVersionsFor:

https://github.com/feenkcom/gt4pharo/commit/07b7d8 by Andrei Chiș
Merge d2778d485cc661f0518b4f19994295673e0b9a38

https://github.com/feenkcom/gt4pharo/commit/57a4d3 by Andrei Chiș
Add a filter for searching though method literals [feenkcom/gtoolkit#3573]

https://github.com/feenkcom/gtoolkit-inspector/commit/98543f by Andrei Chiș
Update priorities for views in compiled methods

Release v1.0.427

23 Jan 13:12
Compare
Choose a tag to compare
Release version v1.0.427

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.427/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/gt4git/commit/d32b10 by Andrei Chiș
Add a priority to #gtGitCommitsFor:

Release v1.0.426

23 Jan 12:07
Compare
Choose a tag to compare
Release version v1.0.426

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.426/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/magritte/commit/840ec0 by Juraj Kubelka
Merge branch 'master' into feenk


https://github.com/feenkcom/magritte/commit/9077ac by Juraj Kubelka
Merge remote-tracking branch 'upstream/master'


https://github.com/feenkcom/magritte/commit/a281ca by Sean DeNigris
Merge pull request #347 from seandenigris/enh_simplify-gt-column-view-api

[Enh]: GT Columned View from Description - Simplify API

https://github.com/feenkcom/magritte/commit/55fdf7 by Sean DeNigris
[Enh]: GT Columned View from Description - Simplify API

Remove special method accepting a container

https://github.com/feenkcom/magritte/commit/f1f43b by Sean DeNigris
Merge pull request #346 from seandenigris/bug_action-comparison2

[Bug]: action comparison

https://github.com/feenkcom/magritte/commit/a45b45 by Sean DeNigris
[Bug]: action comparison

We were only looking at part of the state - species and action - which caused some actions to overshadow others. In fact, since these are mutable, we are better off sticking with identity comparison



https://github.com/feenkcom/magritte/commit/7687c2 by Sean DeNigris
Cached Mementos - To Copy or Not To Copy? (#344)

* Cached Mementos - To Copy or Not To Copy?

- Hopefully finally resolves a buffet of related issues (and PRs) mentioned below
- Add Lepiter page describing the situation

- The problem is that mementos were copying described values in two places:
    - ```smalltalk
MACachedMemento>>cookRawPull: aDictionary

	super cookRawPull: aDictionary.
	aDictionary keysAndValuesDo: [ :key :value |
		| isCollectionOfRelations |
		isCollectionOfRelations := value isCollection and: [ key isKindOf: MAToManyRelationDescription ].
		isCollectionOfRelations ifTrue: [ 
			aDictionary at: key put: value copy ] ].```
    - There are several problems with the above: Firstly, it is applied to cached mementos. This overly broad, since the motivating problem affects the `original` dictionary - something only checked mementos have. Even worse, it applies to all pulls, not just those to `original` dictionaries. This lead to a host of problems described in more detail below.
    - ```smalltalk
MACheckedMemento>>reset
	super reset.
	self setOriginal: (self pullRawTransforming: [ :e | e copy ]).
```
        - While this second copying might sometimes be what we want, it clearly does not work in some scenarios, creating the false impression that the model object has changed elsewhere, which prevents committing the memento.
        - For example, {{gtMethod:MAMementoTest>>testSingletonValue}} was failing because the value was a class and the memento was storing a copying of it. Validation then failed because the installed class is not equivalent to a copy.
- Let's take a step back and review the domain model. For checked mementos, there are three versions of model state:
    - 1. the model itself, which is the real *current* state
    - 2. the cache, which is the desired state which the memento will attempt to push all at once on commit
    - 3. the original, which is the memento's copy of the model state at the time the memento was created. This will be used before committing to make sure the model state hasn't changed elsewhere because otherwise committing might intentionally overwrite/destroy needed data.
- The motivating problem with the *original*, which inspired all this copying, is that, if a field references a collection, and we hold onto that actual collection, and the elements in the collection are changed from the outside, our "original" will also change and validation will never fail and so offers no protection.
    - {{gtMethod:MACheckedMementoTest>>testValidateFailsOnReferencedCollectionChange}} tests for this. If we comment out the `#copy` in {{gtMethod:MACheckedMemento>>reset}} it will fail.
    - Interestingly, outside changes also "bleed" into the cache, but it seems not to matter. If a user was worried about outside changes, they would use an {{gtClass:MACheckedMemento}} which would flag the problem during validation, not an {{gtClass:MACachedMemento}}. Choosing that memento type means we are specifically *not* checking for whether the model has changed elsewhere. Since the cache is changing with the model, there will be nothing to commit unless we explicitly change the field in the memento, which seems like the expected behavior.
- There are a bunch of seemingly related GH issues and PRs:
    - 2019-09-04 - [Mementos Should Ignore Default values](https://github.com/magritte-metamodel/magritte/issues/120) - claims to be fixed by the "...Copy Collections" fix below, but I don't see how
    - 2022-05-31 - [Cached Memento Should Copy ToMany Collections](https://github.com/magritte-metamodel/magritte/pull/281) - this first fix led to a lot of future pain. The primary mistake seems to have been that it was applied to all pulls by cached mementos, instead of just pulls to the original dictionary by checked mementos only. The issue talks about "the protection of the cache", but I think I meant "the protection of the original dictionary" because I don't see what damage could be caused by the cache changing underneath you. If you explicitly change a field, it will overwrite the cache, and if not it will be ignored because it is equivalent to the real live model state.
    - 2022-08-22 - [Checked Memento "Original" Should Copy Collections](https://github.com/magritte-metamodel/magritte/pull/295) - the description states "Otherwise changes to the model can bleed through to the "original" dictionary". However, the fix is applied to cached memento, not checked memento only
    - 2022-08-23 - [Bloc Form To-One Tokens Pointing to Copy](https://github.com/magritte-metamodel/magritte/pull/304) - tried to workaround ramifications of the overly broad copy problem fix
    - 2022-08-23 - [Mementos - Only Copy Checked Original](https://github.com/magritte-metamodel/magritte/pull/305/files) attempted to improve the situation by replacing the original behavior - when pulling copy every value in every memento type - with a more targeted approach - copy only when setting the original of a checked memento. However, this still copied *all* values, not just the problematic referenced collections. It also missed the fact that cached mementos were copying collections during all pulls via `#cookPullRaw:`, not just when pulling to the original dictionary. It also seemingly undid some of the fix above
    - 2023-11-18 Checked Memento raises errors for Pier components - there is a now-passing test for just this scenario - MAMementoTest>>testSingletonValue

https://github.com/feenkcom/magritte/commit/5bd298 by Sean DeNigris
Merge pull request #343 from seandenigris/issue_3478

[Bug]: GT Issue 3478 - ElementBuilder does not honor beHidden

https://github.com/feenkcom/magritte/commit/145fc2 by Sean DeNigris
[Bug]: Issue 3478 - ElementBuilder does not honor beHidden

https://github.com/feenkcom/magritte/commit/551825 by Sean DeNigris
Merge pull request #341 from seandenigris/gt-col-list-from-container

[Enh]: GT Columned List View from Container

https://github.com/feenkcom/magritte/commit/debdd3 by Sean DeNigris
[Enh]: GT Columned List View from Container

Previously Container was auto-generated from a class and could not be modified.

https://github.com/feenkcom/magritte/commit/d0eab4 by Sean DeNigris
Merge pull request #339 from seandenigris/enh_element-initial-answer

[Enh]: Element Descriptions - Initial Answer

https://github.com/feenkcom/magritte/commit/23259d by Sean DeNigris
[Enh]: Element Descriptions - Initial Answer

Slightly different than `default`. Default is what the value of the field *is* if not explicitly set. The initial answer is what the value *might be* e.g. to make it easier to fill out a form.

https://github.com/feenkcom/magritte/commit/ae3566 by Sean DeNigris
Merge pull request #338 from seandenigris/enh_gt-form-memento-inspect

[Enh]: GT Form - Add "Inspect Memento" Button

https://github.com/feenkcom/magritte/commit/a022e0 by Sean DeNigris
[Enh]: GT Form - Add "Inspect Memento" Button

Like GT's own form

https://github.com/feenkcom/magritte/commit/b24afd by Sean DeNigris
Merge pull request #336 from seandenigris/clean_remove-uid-props

[Clean]: Extract UID Property Support to Dynabook Foundation

https://github.com/feenkcom/magritte/commit/2c6445 by Sean DeNigris
[Clean]: Extract UID Property Support to Dynabook Foundation

UID stuff moved out of `MATPropertyOwner`

https://github.com/feenkcom/magritte/commit/dac718 by Sean DeNigris
Merge pull request #335 from seandenigris/enh_ma-print-string

[Enh]: Print via Desc - `#maFullPrintString` & Separator Config

https://github.com/feenkcom/magritte/commit/bc7c2f by Sean DeNigris
[Enh]: Print via Description - `#maFullPrintString` and Separator Configuration 

https://github.com/feenkcom/magritte/commit/dd7f65 by Sean DeNigris
Merge pull request #333 from seandenigris/enh_property-uuid-setter

[Enh]: UUID Property Setter

https://github.com/feenkcom/magritte/commit/eea847 by Sean DeNigris
[Enh]: UUID Property Setter 

Trying to keep the API small, but needed this in real world use

https://github.com/feenkcom/magritte/commit/96015b by Sean DeNigris
[Enh] GT columns from desc

Add columns to a gt list for each described field

https://github.com/feenkcom/magritte/commit/6d67df by Jan Blizničenko
Made loadable in Pharo 11 and 12 (#323)

* Baseline supporting Pharo 11 and 12

* Updated Grease version

* Mention Pharo 9+ in README

https://github.com/feenkcom/magritte/commit/2201d8 by Juraj Kubelka
Feenk: Announce description property changes (#331)

* Add `blocStencil`to number description [feenkcom/gtoolkit#2543]

* Magritte descriptions announce property value changes  [feenkcom/gtoolkit#3371]

- add `MAPropertyChangedAnnouncement`
- currently we support all properties and `MAActionDescription >> #label:` (which stored as an instance variable)

* add `MAElementDescription>>#autoAccept` [feenkcom/gtoolkit#3371]

* improve method comments [feenkcom/gtoolkit#3371]

* add `MATPropertyOwner >> #unsubscribel:` [feenkcom/gtoolkit#3378]

https://github.com/magritte-metamodel/magritte/pull/331#discussion_r1282550975

https://github.com/magritte-metamodel/magritte/pull/331/files/7bdfa5ea02083caf4b1257492f936bf1855f46b5#r1282553171

- https://github.com/magritte-metamodel/magritte/pull/331#discussion_r1282553994
- https://github.com/magritte-metamodel/magritte/pull/331#discussion_r1282554255
- https://github.com/magritte-metamodel/magritte/pull/331#discussion_r1282554397

---------

Co-authored-by: Veit Heller <[email protected]>
Co-authored-by: Andrei Chis <[email protected]>

https://github.com/j-brant/SmaCC/commit/d301a2 by John Brant
ts parser changes

https://github.com/feenkcom/gtoolkit/commit/b126cd by Tudor Girba
add page with editing python sources feenkcom/gtoolkit#3572

Release v1.0.425

22 Jan 16:11
Compare
Choose a tag to compare
Release version v1.0.425

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.425/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/PythonBridge/commit/15348a by svenvc
PBPharoProcessKiller added (not yet integrated)
error handler in PBPharoPipenvProcess changed

https://github.com/feenkcom/lepiter/commit/9a8d82 by Veit Heller
Add tableOfContentsPageID property to volatile monitor

Release v1.0.424

22 Jan 11:04
Compare
Choose a tag to compare
Release version v1.0.424

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.424/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/Bloc/commit/3ba165 by Aliaksei Syrel
event listener shouldn't handle space task events

https://github.com/feenkcom/bloc-pac/commit/c68013 by Aliaksei Syrel
infiniteElement should dispatch events rather than firing them

Release v1.0.423

22 Jan 09:55
Compare
Choose a tag to compare
Release version v1.0.423

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.423/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/pharo-telemetry/commit/a0de70 by Aliaksei Syrel
[feenkcom/gtoolkit#3571] collect MessageTally when recording a memory telemetry

https://github.com/feenkcom/Bloc/commit/a95076 by Aliaksei Syrel
[feenkcom/gtoolkit#3571] collect MessageTally when recording a memory telemetry

https://github.com/feenkcom/gtoolkit-world/commit/4083cb by Aliaksei Syrel
Merge e409e212c3d41fdb8130cfaaf5e98bc9d626b742

https://github.com/feenkcom/gtoolkit-world/commit/27f218 by Aliaksei Syrel
[feenkcom/gtoolkit#3571] collect MessageTally when recording a memory telemetry

Release v1.0.422

22 Jan 08:45
Compare
Choose a tag to compare
Release version v1.0.422

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.422/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/gt4gemstone/commit/6888aa by Alistair Grant
Ensure that a reconnected session is in the GtGemStoneSessionRegistry.

Release v1.0.421

20 Jan 19:25
Compare
Choose a tag to compare
Release version v1.0.421

Metacello new
    baseline: 'GToolkitForPharo9';
    repository: 'github://feenkcom/gtoolkit:v1.0.421/src';
    load

All commits (including upstream repositories) since last build:
https://github.com/feenkcom/gtoolkit-debugger/commit/ec236b by Don Roberts
Add keyboard shortcut to debugger button labels