Skip to content

Commit

Permalink
Merge pull request #235 from hpi-swa-teaching/development
Browse files Browse the repository at this point in the history
SWT Summer 2021
  • Loading branch information
codeZeilen committed Apr 28, 2022
2 parents 932b40f + c08b8fe commit 359c72b
Show file tree
Hide file tree
Showing 585 changed files with 3,191 additions and 693 deletions.
18 changes: 18 additions & 0 deletions .baselinetests.smalltalk.ston
@@ -0,0 +1,18 @@
SmalltalkCISpec {
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'Algernon',
#directory : 'packages',
#load : 'Tests',
#platforms : [ #squeak ],
#useLatestMetacello : true
}
],
#preLoading : [
'scripts/preLoading.st'
],
#testing : {
#categories : [ 'BaselineOfAlgernonTests' ]
}
}

23 changes: 23 additions & 0 deletions .coverage.smalltalk.ston
@@ -0,0 +1,23 @@
SmalltalkCISpec {
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'Algernon',
#directory : 'packages',
#load : 'Tests',
#platforms : [ #squeak ],
#useLatestMetacello : true
}
],
#preLoading : [
'scripts/preLoading.st'
],
#testing : {
#coverage : {
#categories : [ 'Algernon' ]
},
#exclude : {
#categories : [ 'BaselineOfAlgernonTests' ]
}
}
}

20 changes: 20 additions & 0 deletions .github/workflows/coverage-reporter.yml
@@ -0,0 +1,20 @@
name: Coverage Reporter
on: [push]

jobs:
coverage:
name: Coverage Report
runs-on: ubuntu-latest
env:
ST_IMAGE: Squeak64-trunk
steps:
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
id: smalltalkci
with:
smalltalk-image: ${{ env.ST_IMAGE }}
- run: smalltalkci -s ${{ env.ST_IMAGE }} ./.coverage.smalltalk.ston
shell: bash
timeout-minutes: 15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47 changes: 47 additions & 0 deletions .github/workflows/release.yml
@@ -0,0 +1,47 @@
name: Release

env:
smalltalk: 'Squeak64-5.3'
PATH_TO_SAR: '/home/runner/.smalltalkCI/_builds/Algernon.sar'

on:
push:
tags:
- "v*"
jobs:
release:
runs-on: ubuntu-latest
name: Release Algernon
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # full-clone, needed for commit messages
- name: Retrieve Release Version
if: startsWith(github.ref, 'refs/tags/')
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- uses: hpi-swa/setup-smalltalkCI@v1
id: smalltalkci
with:
smalltalk-image: ${{ ENV.smalltalk }}
- run: smalltalkci -s ${{ ENV.smalltalk }} ./.release.smalltalk.ston
shell: bash
timeout-minutes: 15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Release Notes
run: |
LAST_VERSION=$(git tag --list --sort=-version:refname "v*" | head -2 | tail -1)
echo "Comparing $LAST_VERSION to $RELEASE_VERSION"
# Make sure that the latest version number changed
test "0" -ne "$(git diff --exit-code $LAST_VERSION..$RELEASE_VERSION -- packages/Algernon.package/ALGInstallation.class/instance/latestVersion.st > /dev/null; echo $?)"
git log $LAST_VERSION..$RELEASE_VERSION --pretty=format:'- %s' | tee ${{ github.workspace }}-CHANGELOG.txt
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: ${{ ENV.PATH_TO_SAR }}
name: Algernon ${{ ENV.RELEASE_VERSION }}
body_path: ${{ github.workspace }}-CHANGELOG.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

51 changes: 38 additions & 13 deletions .github/workflows/smalltalk-ci.yml
Expand Up @@ -4,23 +4,48 @@ on: [push]
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
os: [ubuntu-latest, macos-latest, windows-latest]
smalltalk:
- Squeak64-5.3
- Squeak64-5.2
- Squeak64-5.1
- Squeak64-trunk
runs-on: ${{ matrix.os }}
name: ${{ matrix.smalltalk }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
id: smalltalkci
with:
smalltalk-version: ${{ matrix.smalltalk }}
- run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-version }}
shell: bash
timeout-minutes: 15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
id: smalltalkci
with:
smalltalk-image: ${{ matrix.smalltalk }}
- run: smalltalkci -s ${{ matrix.smalltalk }}
shell: bash
timeout-minutes: 15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
baselinetests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
smalltalk:
- Squeak64-5.3
runs-on: ${{ matrix.os }}
name: Baseline tests for ${{ matrix.smalltalk }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
id: smalltalkci
with:
smalltalk-image: ${{ matrix.smalltalk }}
- run: |
ALGERNON_GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "Detected git branch: $ALGERNON_GIT_BRANCH"
FILE='packages/BaselineOfAlgernonTests.package/BOALGTest.class/instance/currentGitBranch.st'
sed "s/String empty/'$ALGERNON_GIT_BRANCH'/g" "$FILE" > tmpfile
mv tmpfile "$FILE"
- run: smalltalkci -s ${{ matrix.smalltalk }} ./.baselinetests.smalltalk.ston
shell: bash
timeout-minutes: 15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22 changes: 22 additions & 0 deletions .release.smalltalk.ston
@@ -0,0 +1,22 @@
SmalltalkCISpec {
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'Algernon',
#directory : 'packages',
#load : 'Tests',
#platforms : [ #squeak ],
#useLatestMetacello : true
}
],
#preLoading : [
'scripts/preLoading.st'
],
#postLoading : [
'scripts/create_sar.st'
],
#testing : {
#categories : [],
#failOnZeroTests : false
}
}

4 changes: 1 addition & 3 deletions .smalltalk.ston
Expand Up @@ -12,9 +12,7 @@ SmalltalkCISpec {
'scripts/preLoading.st'
],
#testing : {
#coverage : {
#categories : [ 'Algernon' ]
}
#categories : [ 'AlgernonTests' ]
}
}

7 changes: 4 additions & 3 deletions .squot
@@ -1,5 +1,6 @@
OrderedDictionary {
'packages\/Algernon.package' : #SquotCypressCodeSerializer,
'packages\/AlgernonTests.package' : #SquotCypressCodeSerializer,
'packages\/BaselineOfAlgernon.package' : #SquotCypressCodeSerializer
'packages/Algernon.package' : #SquotCypressCodeSerializer,
'packages/AlgernonTests.package' : #SquotCypressCodeSerializer,
'packages/BaselineOfAlgernon.package' : #SquotCypressCodeSerializer,
'packages/BaselineOfAlgernonTests.package' : #SquotCypressCodeSerializer
}
33 changes: 22 additions & 11 deletions README.md
@@ -1,6 +1,9 @@
# Algernon Launcher
[![GitHub release](https://img.shields.io/github/release/hpi-swa-teaching/Algernon-Launcher.svg?label=small%20release&maxAge=0)](https://github.com/hpi-swa-teaching/Algernon-Launcher/releases/latest) [![Github All Releases](https://img.shields.io/github/downloads/hpi-swa-teaching/Algernon-Launcher/total.svg?maxAge=0)](https://github.com/hpi-swa-teaching/Algernon-Launcher/releases) ![smalltalkCI](https://github.com/hpi-swa-teaching/Algernon-Launcher/workflows/smalltalkCI/badge.svg)
Master: [![Coverage Master](https://coveralls.io/repos/github/hpi-swa-teaching/Algernon-Launcher/badge.svg?branch=master)](https://coveralls.io/github/hpi-swa-teaching/Algernon-Launcher?branch=master) Development: [![Coverage Development](https://coveralls.io/repos/github/hpi-swa-teaching/Algernon-Launcher/badge.svg?branch=development)](https://coveralls.io/github/hpi-swa-teaching/Algernon-Launcher?branch=master)
[![GitHub release](https://img.shields.io/github/release/hpi-swa-teaching/Algernon-Launcher.svg?label=small%20release&maxAge=0)](https://github.com/hpi-swa-teaching/Algernon-Launcher/releases/latest)
[![Github All Releases](https://img.shields.io/github/downloads/hpi-swa-teaching/Algernon-Launcher/total.svg?maxAge=0)](https://github.com/hpi-swa-teaching/Algernon-Launcher/releases)
![smalltalkCI](https://github.com/hpi-swa-teaching/Algernon-Launcher/workflows/smalltalkCI/badge.svg)
Master: [![Coverage Master](https://coveralls.io/repos/github/hpi-swa-teaching/Algernon-Launcher/badge.svg?branch=master)](https://coveralls.io/github/hpi-swa-teaching/Algernon-Launcher?branch=master)
Development: [![Coverage Development](https://coveralls.io/repos/github/hpi-swa-teaching/Algernon-Launcher/badge.svg?branch=development)](https://coveralls.io/github/hpi-swa-teaching/Algernon-Launcher?branch=development)

<p align="center">
<img src="https://user-images.githubusercontent.com/44369294/89326002-e93a5800-d689-11ea-89f0-d685e7a4f1e9.png" width="465" alt="Algernon"/>
Expand All @@ -11,19 +14,21 @@ Algernon is a productivity tool for Squeak programmers; your personal assistant
## Installation
Follow our [setup guide](https://github.com/hpi-swa-teaching/Algernon-Launcher/wiki/Setup-Guide) to install Algernon.

The latest versions (above 3.0.0) only support squeak versions 5.3+.

## Usage

Algernon allows for keyboard only interaction - no need to use your mouse!

| Control | Action |
|-------------|-------------------|
| Alt + Space | Show Algernon |
| Esc | Hide Algernon |
| Arrow up | Navigate up |
| Arrow down | Navigate down |
| Tab | Navigate in |
| Shift + Tab | Navigate out |
| Enter | Run selected item |
| Control | Action |
|------------------|-------------------|
| Doubleclick ctrl | Show Algernon |
| Esc | Hide Algernon |
| Arrow up | Navigate up |
| Arrow down | Navigate down |
| Tab | Navigate in |
| Shift + Tab | Navigate out |
| Enter | Run selected item |

*Important Notice:* Please be aware that using Algernon for the first time might be slow. The first query triggers the indexing that is used for searching objects. After a few seconds delay in the first query, Algernon should run fast as expected.

Expand Down Expand Up @@ -57,11 +62,17 @@ Use the Test Runner Tool in your Squeak Image and select all *AlgernonTests*. No

* [Ann Katrin Kuessner](https://github.com/annkatrinkuessner)
* [Ben Bals](https://github.com/BenBals)
* [Benedikt Weber](https://github.com/bewee)
* [Franz Sauerwald](https://github.com/FranzSw)
* [Jannis Rosenbaum](https://github.com/sinnaj-r)
* [Jonathan Schneider](https://github.com/jonaschn)
* [Kai Robert Kirsten](https://github.com/robertkirsten)
* [Kay Erik Jenß](https://github.com/kej-jay)
* [Laura Meister](https://github.com/dieknolle3333)
* [Louis Kirsch](https://github.com/timediv)
* [Niklas Mohrin](https://github.com/niklasmohrin)
* [Nils Lissner](https://github.com/TheGrayStone)
* [Oliver Heß](https://github.com/Olliwehr)
* [Philip Weidenfeller](https://github.com/phlprcks)
* [Pius Ladenburger](https://github.com/GittiHab)
* [Tobias Dürschmid](https://github.com/tobiduer)
Expand Down
4 changes: 4 additions & 0 deletions packages/Algernon.package/ALGActionType.class/class/icon.st
@@ -0,0 +1,4 @@
icon
icon

^ #Method
@@ -1,5 +1,6 @@
{
"class" : {
"icon" : "NL 6/4/2021 14:17",
"newFor:" : "beb 5/21/2020 10:30" },
"instance" : {
"action" : "J.J. 7/11/2015 18:24",
Expand Down
Expand Up @@ -5,12 +5,13 @@ helpTexts
add: 'do'->'Run a given command. Do not print the output.';
add: '=' -> 'Run a given commad. Print the result.';
add: 'browse'->'Open a given class in the Browser.';
add: 'fileout'->'generates a .st file in Resources of squeak image Folder';
add: 'open'->'open an app, tool or morph';
add: 'saverepo'->'saves to Repository with a working copy';
add: 'inspect'->'open Inspector for an object';
add: 'explore'-> 'open Explorer for an object or all intances of a given class';
add: 'save'-> 'save the image without closing it';
add: 'saveandquit'-> 'save the image then close it';
add: 'quit'-> 'quit the image without saving';
add: 'fileout'->'Generates a .st file in Resources of squeak image Folder';
add: 'open'->'Open an app, tool or morph';
add: 'inspect'->'Open Inspector for an object';
add: 'explore'-> 'Open Explorer for an object or all intances of a given class';
add: 'front'-> 'Bring a given window to the front';
add: 'expand'-> 'Expand a given window from collapsed to contracted or from contracted to fullscreen';
add: 'collapse'-> 'Collapse a given window';
add: 'contract'-> 'Contract a given window from fullscreen';
add: 'close'-> 'Close a given window';
yourself
@@ -1,6 +1,7 @@
filtering
keywords
^ Set newFrom: {'run'. 'browse'. 'fileout'.
'open'. 'saverepo'. 'do'.
'open'. 'do'.
'inspect'. 'explore'. '='.
'save'. 'saveandquit'. 'quit'}
'front'. 'expand'. 'collapse'.
'contract'. 'close' }
@@ -1,6 +1,6 @@
{
"class" : {
"helpTexts" : "rk 7/15/2020 10:51",
"keywords" : "jRo 8/1/2020 00:43" },
"helpTexts" : "lm 7/6/2021 20:54",
"keywords" : "lm 7/6/2021 20:53" },
"instance" : {
"filter:given:" : "pw 8/4/2020 00:30" } }
4 changes: 3 additions & 1 deletion packages/Algernon.package/ALGBreadcrumbs.class/README.md
@@ -1,4 +1,6 @@
An ALGBreadcrumbs is a GUI component that is responsible for displaying the current hierarchy.

Instance Variables
controller: ALGController reference to ALGController
controller: ALGController reference to ALGController
defaultCrumb: TextMorph default breadcrumb shown on start
navigateBackIconMorph: Morph contains two icons: shift and tab
@@ -0,0 +1,4 @@
constants
iconInsideSpacing

^ 2
@@ -0,0 +1,4 @@
constants
iconSpacing

^ 8
Expand Up @@ -2,5 +2,7 @@ updating
clear

self removeAllMorphsIn: self submorphs.
self initializeDefaultCrumb.
self updateWidth
self
initializeNavigateBackIcon;
initializeDefaultCrumb;
updateWidth
@@ -0,0 +1,13 @@
initialization
createNavigateBackIconMorph
| shiftIconMorph tabIconMorph |

shiftIconMorph := self createNavigationIcon: #NavigateBack.
tabIconMorph := self createNavigationIcon: #HasChildren.
shiftIconMorph
position: (self position x + self class crumbSpacing) @ shiftIconMorph position y.
tabIconMorph
position: (shiftIconMorph position x +
shiftIconMorph width +
self class iconInsideSpacing) @ tabIconMorph position y.
^ self packIconsIntoMorph: { shiftIconMorph . tabIconMorph }
@@ -0,0 +1,6 @@
initialization
createNavigationIcon: aSymbol

^ (ALGIconFactory getInstance loadIconFor: aSymbol) asMorph
height: self height;
center: self center.
@@ -0,0 +1,3 @@
accessing
defaultCrumb: anObject
defaultCrumb := anObject

0 comments on commit 359c72b

Please sign in to comment.