Architectural report

We use a set of architctural rules defined in GtGtoolkitArchitecturalReport GtConstrainerReport subclass: #GtGtoolkitArchitecturalReport instanceVariableNames: '' classVariableNames: '' package: 'GToolkit-Constraints' to ensure various architectural rules that have value for us are respected. We run this report during the release process. In case one of these architectural rules is not satisfied we do not release.

The current status of the report is shown below.

To report is created in the method GtGtoolkitArchitecturalReport>>#build: build: aComposite aComposite name: 'GToolkit Architectural Report'. aComposite addConstraint: GtClassWithCommentsContainingMissingReferences new; addConstraint: GtReturnPragmasShouldPointToExistingClasses new; addConstraint: GtRBAcceptVisitorCalledFromNonVisitingMethods new; addConstraint: GtButtonsDefiningActionsThroughModels new; addConstraint: GtLooksSubscribingToEventsNotFromInitializeListenerMethods new; addConstraint: GtBlocEventsShouldHaveDispatchMethodSimilarToClass new; addConstraint: GtBlocStencilBuilderShouldImplementReset new; addConstraint: GtSubscriptionsShouldNotUseDeliveryConditionWhere new; addConstraint: GtWeakSubscriptionsWithBlockSubscribers new; addConstraint: GtGlamorousToolkitBookPagesContainingMissingReferences new; "addConstraint: GtBaselinesShouldProperlySpecifyDependencies new;" addConstraint: GSubclassesOfExternalObjectShouldImplementStartUp new; addConstraint: GtAnnouncementSubscriberShouldNotBeChanged new; addConstraint: GtBoxerExternalObjectsShouldOnlyImplementFFILibrary new; addConstraint: GtDoNotManuallyFindThisContextMethodDefinition new; addConstraint: GtPharoPackageDependenciesConstraint new; addConstraint: GtEqualsMethodsShouldReturnAValueConstraint new; addConstraint: GtHashMethodsShouldReturnAValueConstraint new; addConstraint: GtClassesImplementingEqualsShouldAlsoHaveHashConstraint new; addConstraint: GtClassesShouldNotOverrideGtDisplayStringConstraint new; addConstraint: GtMethodsWithUndeclaredVariablesConstraint new