/SqueakIssueIntegration

Issue Integration in Squeak.

Primary LanguageSmalltalkMIT LicenseMIT

Squeak Issue Integration Build Status Coverage Status

This is an Issue Integration for the programming environment Squeak. It allows groups of developers to create, manage and edit issues directly inside of the image. All issues are held and managed by an Issue Management System like GitHub.

Features

Currently only GitHub is supported as an Issue Management System. GitHub Issues support title, body, assignee, labels. Closed Issues are ignored by the system.

  • Create Issues for methods and classes
  • Create Issues right from the Debugger
  • View all Issues by repository
  • Indication of Issues related to a certain class or method directly inside the system browser by exclamation icons (the icon is red for issues assigned to you, orange otherwise)
  • Edit and close Issues
  • Fix me button to open a system browser with the class or method the Issue is related to in focus

How to use

Migration

In case you use an older version of the Issue Integration, namely v0.1, we recommend to execute the following code to remove deprecated links from the menu bar:

TheWorldMenu registry copy do: [ :each | (each first = 'Issue Package Browser ') ifTrue: [TheWorldMenu registry remove: each.]].

Installation

Run the following code in a Workspace:

{
Metacello new
    baseline: 'IssueIntegration';
    githubUser: 'hpi-swa-teaching'
    project: 'SqueakIssueIntegration'
    commitish: 'v1.0'
    path: 'packages'
}
do: [ :baseline | baseline get ];
do: [ :baseline | baseline
    onConflict: [ :ex | ex allow ];
    load: 'default' ].

Set Up

Open the Issue Integration (Apps -> Issue Integration) and click on Settings. The Settings window opens. Then find the package you are working on. Enter the following information:

  • The name of your github project e.g. hpi-swa-teaching/SqueakIssueIntegration (or a direct link: https://github.com/user/repo)
  • Your GitHub username. This is necessary to highlight issues assigned to you.
  • An OAuth-Token. To authenticate you at the Issue Management System you need an OAuth-Token. You can click the Create new OAuth-Token button to directly open your webbrowser at GitHub's token creation page. If your repository is public, leave everything as it is (public_repo scope checked), scroll down and hit the Generate token button. If your repository is private, make sure to also check the repo scope. Copy the generated token and hit the Save (and quit) button inside the Settings window.

Create an Issue

To create an Issue you can right-click on a method or class in the System Browser or the Debugger and select create Issue in the context menu (the option only appears in packages with a set up issue management). You can give it a title and optional description. If you want to assign the issue directly to one of your team members you can enter their username in the Issue Creator. Please note that you and the assignee both need push access to the repository for the assignment to work. You also need push access to assign labels to the Issue.

See existing Issues in the System Browser

All existing Issues for a method or class are indicated with a little exclamation icon next to the name (if an issue is assigned to you the exclamation icon indicates this by changing it's color to red). To show, edit or close them you can access all Issues of this method or class in its context-menu.

See and edit Issues by repository inside the Issue Browser

Open the Issue Integration (Apps -> Issue Integration). Select the repository and click through the list of issues. All changes you make to issues are directly sent to GitHub and saved.

Development

Pull Requests are welcome. Please make sure to run the tests locally before pushing to the master branch. To run the tests, make sure your port 8080 is not in use. It is used during tests to start a GitHub mock server to be independent from your internet connection and GitHub's availability.