Gaphor is the simple modeling tool

Overview
Gaphor logo

Gaphor

Build state Docs build state PyPI Downloads Gitter

Maintainability Test Coverage Sourcery Code style: black standard-readme compliant All Contributors

Gaphor is a UML and SysML modeling application written in Python. It is designed to be easy to use, while still being powerful. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models.

Gaphor Demo

๐Ÿ“‘ Table of Contents

๐Ÿ“œ Background

Gaphor is a UML and SysML modeling application written in Python. We designed it to be easy to use, while still being powerful. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models.

Gaphor is designed around the following principles:

  • Simplicity: The application should be easy to use. Only some basic knowledge of UML or SysML is required.
  • Consistency: UML is a graphical modeling language, so all modeling is done in a diagram.
  • Workability: The application should not bother the user every time they do something non-UML-ish.

Gaphor is a GUI application that is built on GTK and Cairo. PyGObject and PyCairo provide Python bindings for those libraries. Gaphas provides the foundational diagramming functionality.

๐Ÿ’พ Install

You can find the latest version on the gaphor.org website. Gaphor ships installers for macOS and Windows. Those can be found there. The Python package is also available on PyPI.

All releases are available on GitHub.

If you want to start developing on Gaphor, have a look at the Installation section of our Tech docs.

๐Ÿ”ฆ Usage

Creating models

Once Gaphor is started a new empty model is automatically created. The main diagram is already open in the Diagram section.

Select an element you want to place, for example a Class, by clicking on the icon in the Toolbox and click on the diagram. This will place a new Class item instance on the diagram and add a new Class to the model (it shows up in the Navigation). The selected tool will reset itself to the Pointer tool if the option ''Diagram -> Reset tool'' is selected.

Some elements are not directly visible. The section in the toolbox is collapsed and needs to be clicked first to reveal its contents.

Gaphor only has one diagram type, and it does not enforce which elements should be placed on a diagram.

Create a New Diagram

  1. Use the Navigation to select an element that can contain a diagram (a Package or Profile)
  2. Select Diagram, and New diagram. A new diagram is created.

Copy and Paste

Items in a diagram can be copied and pasted in the same diagram or other diagrams. Pasting places an existing item in the diagram, but the item itself is not duplicated. In other words, if you paste a Class object in a diagram, the Class will be added to the diagram, but there will be no new Class in the Navigation.

Drag and Drop

Adding an existing element to a diagram is done by dragging the element from the Navigation section onto a diagram. Diagrams and attribute/operations of a Class show up in the Navigation but can not be added to a diagram.

Elements can also be dragged within the Navigation in order to rearrange them in to different packages.

โ™ฅ Contributing

Thanks goes to these wonderful people (emoji key):


Adam Bjurstrom

๐Ÿ›

Adam Boduch

๐Ÿ’ป โš ๏ธ ๐Ÿ›

Alexander Wilms

๐Ÿ›

Alexis Howells

๐Ÿ“–

Arjan Molenaar

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– ๐Ÿ‘€ ๐Ÿ’ฌ ๐Ÿ› ๐Ÿ”Œ โš ๏ธ

Blippost

๐Ÿค”

Brock Tibert

๐Ÿ›

Christian Hoff

๐Ÿ’ป

Dan Yeaw

๐Ÿ’ป โš ๏ธ ๐Ÿ“– ๐Ÿ“ฆ ๐Ÿš‡ ๐Ÿ› ๐Ÿ’ฌ

DimShadoWWW

๐Ÿ›

Encolpe DEGOUTE

๐ŸŒ

Enno Grรถper

๐Ÿ’ป

Enno Zickler

๐Ÿ›

Jan

๐Ÿ›

JensPfeifle

๐Ÿ“–

Jordi Mallach

๐ŸŒ

Jorge DLG

๐Ÿ›

Kapil Thangavelu

๐Ÿ›

Mikhail Bessonov

๐Ÿ›

Nedko Arnaudov

๐Ÿ›

Rafael Muรฑoz Cรกrdenas

๐Ÿ›

Rui Maciel

๐Ÿค”

Steven Liu

๐Ÿ›

Tiemen Schuijbroek

๐Ÿ› ๐Ÿ’ป

Tobias Bernard

๐ŸŽจ

Tony

๐Ÿšง

Xander982

๐Ÿ–‹ ๐Ÿ›

Yauhen Kirylau

๐Ÿ“– ๐Ÿ“ฆ ๐Ÿค” ๐Ÿ›

albanobattistella

๐ŸŒ

freddii

๐Ÿค” ๐Ÿ“–

freezed-or-frozen

๐Ÿ›

gavr123456789

๐Ÿค”

kellenmoura

๐Ÿ›

melisdogan

๐Ÿ“–

milotype

๐ŸŒ ๐Ÿ“–

samirodj

๐Ÿ›

seryafarma

๐Ÿ“–

tronta

๐Ÿ›

wrobell

๐Ÿ’ป โš ๏ธ ๐Ÿ› ๐ŸŽจ

This project follows the all-contributors specification. Contributions of any kind are welcome!

  1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug. There is a first-timers-only tag for issues that should be ideal for people who are not very familiar with the codebase yet.
  2. Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
  3. Write a test which shows that the bug was fixed or that the feature works as expected.
  4. Send a pull request and bug the maintainers until it gets merged and published. ๐Ÿ˜„

See the contributing file!

ยฉ License

Copyright ยฉ Arjan Molenaar and Dan Yeaw

Licensed under the Apache License v2.

Summary: You can do what you like with Gaphor, as long as you include the required notices. This permissive license contains a patent license from the contributors of the code.

Comments
  • Ability to set BG/FG colors for a node/as a colorscheme

    Ability to set BG/FG colors for a node/as a colorscheme

    I'm submitting a...

    • [ ] Bug report
    • [x] Feature request
    • [ ] Documentation issue or request

    Current behavior

    Currently only text, size and position of the node could be changed.

    Expected behavior

    Also add possibility to set colors of the nodes.

    feature 
    opened by actionless 34
  • Left-align sidebar headers

    Left-align sidebar headers

    Describe the bug The sidebar headers are centered, while the content of each category is left-aligned. This results in a pretty weird layout:

    image

    I think left-aligning the headers would make the layout feel a lot less disjointed and easier to scan.

    OS

    • [x] Linux (Fedora 33)

    Version Version of Gaphor: 2.0.1 from Flathub

    first-timers-only 
    opened by bertob 26
  • Add Support for SysML

    Add Support for SysML

    The Systems Modeling Language (SysML) is a general-purpose modeling language for systems engineering applications. UML is focused on designing software, SysML allows you to design a complex system like an Autonomous Vehicle, Mars Rover, or Medical Device. It allows you to connect the behavior, structure, and requirements of a system through multiple abstraction levels. This is why I am interested in Gaphor, having an open source and simple modeling tool would be a huge boost to teaching engineers how to design complex systems. SysML is a subset and extension of UML.

    High Level Changes

    There are changes to the diagrams, including adding additional diagrams:

    1. Requirements Diagram
    2. Parametric Diagram
    • This is a low impact for Gaphor since we only have 1 diagram type.

    Structure

    Object, Profile, Deployment, and Component diagrams are removed.

    • For Gaphor, the Component and Profile portions of the Palette could be hidden / removed

    Behavior

    Communication, Interaction Overview, and Timing diagrams are removed. Protocol state machines are removed (behavior state machines remain).

    • For Gaphor, what we support for Interactions could be renamed Sequence

    High Priority Changes

    1. Blocks (Class)
    • Associations have no arrowheads on both ends, which is the default we display them as well
    1. Internal Blocks
    • 4 properties of Blocks, but only parts, references are high priority
    • Proxy ports and flow specifications
    1. Requirement (Class)
    • DeriveReqt, Verify, Satisfy (Trace)
    1. Change Palettes
    • Hide Classes, Components, and Profiles Palettes
    • Rename Interactions to Sequence
    • Add Block, Internal Block, and Requirements Palettes

    Medium Priority Changes

    1. Blocks โ€“ value properties and constraint properties
    2. Allocation
    3. Do we need a way to make an Activity (defining reusable behavior of an Action)?

    Low Priority Changes:

    1. Parametric Diagram - I'm not a big fan of the usefulness of modeling parametrics
    2. Model Elements support
    • Conform (dependency)
    • View (package)
    • Viewpoint (Class)
    • Rationale and Problem (Comments)
    1. ValueType
    2. QuantityKind / Unit
    3. Block value properties and constraint properties
    4. Activity extensions
    • Control as Data
    • Continuous Systems
    • Probability
    1. Copy (Trace)
    2. Constraint Blocks

    I'm submitting a...

    • [ ] Bug report
    • [X] Feature request
    • [ ] Documentation issue or request
    feature 
    opened by danyeaw 26
  • Support For ItemFlow (SysML) and InformationFlow (UML)

    Support For ItemFlow (SysML) and InformationFlow (UML)

    Is your feature request related to a problem? Please describe. In order to finish support for STPA, we need support for adding an ItemFlow to a Connector. This will also improve support for SysML and UML.

    For example in SysML: image

    The ItemFlow is represented by the black arrowhead on the connector. Torque is the itemProperty that belongs to the flow, and it is typed by a ValueType, Block, or Signal.

    These are used in STPA to represent the flows in the control flow diagrams: image

    ItemFlows are also allowed on associations, for example creating a Context Diagram using a Block Definition Diagram.

    UML also supports a similar diagram element called an InformationFlow with InformationItems representing the conveyed information that is flowing: image

    In addition to ValueType, Block, and Signal being allowed to represent the type of flow above, UML also supports other Classifiers like DataTypes and Signals.

    Describe the solution you'd like Add support for Signal elements with SysML and UML as well as InformationItems.

    Drag a Block, Signal, DataType, ValueType, or InformationItem on top of a Connector and it creates an ItemFlow. Ideally dragging additional elements should be supported.

    On the propertypage you can remove ItemFlows / InformationItems and change the flow direction.

    Describe alternatives you've considered Avoid usage of flows.

    Additional context Add any other context or screenshots about the feature request here.

    feature 
    opened by danyeaw 25
  • Mac Gaphor 2.0 failing to open Windows Gaphor 1.2.0rc2 .gaphor file

    Mac Gaphor 2.0 failing to open Windows Gaphor 1.2.0rc2 .gaphor file

    Screen Shot 2020-08-01 at 7 05 27 PM

    I'm submitting a...

    • [X] Bug report
    • [ ] Feature request
    • [ ] Documentation issue or request

    Current behavior

    I just tried to open an .gaphor file from a Windows install prior to today in a fresh Gaphor 2.0 install on a Mac and Gaphor coughed at that. "Error while loading model from file Technical details: <class 'gaphor.storage.parser.ParserException'> Invalid XML: tag not known (state=0)"

    Expected behavior

    Open the .gaphor file without errors!

    Minimal reproduction of the problem with instructions

    Try saving a .gaphor file on a Windows Gaphor 1.2 and opening it in Mac Gaphor 2.0

    If this is a feature request please fill out the following:

    
    As a (user, developer, contributor, etc):
    I want:
    So that:
    
    

    System Information

    OS:

    • [ ] Linux (Please put in notes the specific distro)
    • [X] MacOS
    • [ ] Windows 10
    • [ ] Windows 7

    NOTES:

    bug 
    opened by Xander982 23
  • Create a Wikipedia Page for Gaphor

    Create a Wikipedia Page for Gaphor

    I'm submitting a...

    • [ ] Bug report
    • [ ] Feature request
    • [X] Documentation issue or request

    Gaphor isn't found on Wikipedia, and is absent in the list of UML tools. It would be great if it was represented. Creating a wiki page is some work, see this overview.

    opened by danyeaw 23
  • Can't open diagram with a stalled(?) comment node

    Can't open diagram with a stalled(?) comment node

    I'm submitting a...

    • [x] Bug report
    • [ ] Feature request
    • [ ] Documentation issue or request

    Current behavior

    Loading stucks with the exception pritned:

    gaphor.storage.storage INFO Loading file deployment_diagram.gaphor
    gaphor.storage.parser ERROR File corrupted, remove element 8cef44be-7376-11ea-80af-e4f89cae6ece and try again
    NoneType: None
    gaphor.storage.storage INFO Read 140 elements from file
    gaphor.storage.storage WARNING file b'/home/lie/projects/test/deployment_diagram.gaphor' could not be loaded (module 'gaphor.UML' has no attribute 'CommentItem')
    Traceback (most recent call last):
      File "/usr/lib/python3.8/site-packages/gaphor/misc/gidlethread.py", line 127, in __generator_executer
        result = next(self._generator)
      File "/usr/lib/python3.8/site-packages/gaphor/storage/storage.py", line 311, in load_generator
        for percentage in load_elements_generator(
      File "/usr/lib/python3.8/site-packages/gaphor/storage/storage.py", line 182, in load_elements_generator
        yield from _load_elements_and_canvasitems(
      File "/usr/lib/python3.8/site-packages/gaphor/storage/storage.py", line 222, in _load_elements_and_canvasitems
        cls = getattr(UML, elem.type)
    AttributeError: module 'gaphor.UML' has no attribute 'CommentItem'
    

    Expected behavior

    Minimal reproduction of the problem with instructions

    1. create a diagram with comment element (probably it was due to adding and then removing the comment node, see example files attached in one of the comments below)
    2. save it
    3. close the Gaphor app
    4. reopen the diagram again

    System Information

    OS:

    • [x] Linux (Please put in notes the specific distro)
    • [ ] MacOS
    • [ ] Windows 10
    • [ ] Windows 7
    bug 
    opened by actionless 20
  • Usability: Hide stereotype options in the element editor.

    Usability: Hide stereotype options in the element editor.

    When editing a class element, it might make sense to hide the stereotype section since it isn't implemented. At least it appears that way. It may be viewed as defective by some users. My first impression was that I was missing a step somewhere.

    opened by adamboduch 19
  • Popups/tooltips for buttons

    Popups/tooltips for buttons

    Describe the bug

    Should all buttons have popups/tooltips?

    To Reproduce

    Steps to reproduce the behavior:

    1. Hover above the button that looks like a Page with a spanner.
    2. No popup saying what that button does.
    3. Should the down-arrow to the right of Open have a popup?
    4. Should the button with 3 horizontal lines (Menu) have a popup?

    Other buttons like Undo and Redo have popups.

    Expected behavior

    All buttons should have a popup to indicate what they do. This can also help with screenreaders for people who have sight-impairment.

    Screenshots

    Missing popup/tooltip

    OS

    Linux Mint 20.2 Cinnamon

    Version

    Version of Gaphor: 2.6.2

    Additional information

    Help with screen-readers

    Thank you

    bug 
    opened by ovari 18
  • Separate decision and merge nodes

    Separate decision and merge nodes

    Decision or merge node works differently. There shall be a support to set whether a particular node is either a decision, or a merge node. They shall be rendered differently, if possible.

    feature 
    opened by sz332 17
  • Improve Packaging and Sign / Notarize macOS App

    Improve Packaging and Sign / Notarize macOS App

    • Makes packaging more common between Windows and macOS using PyInstaller.
    • Signs and notarizes the .app and .dmg.

    PR Checklist

    Please check if your PR fulfills the following requirements:

    PR Type

    What kind of change does this PR introduce?

    • [ ] Bugfix
    • [X] Feature
    • [ ] Code style update (formatting, local variables)
    • [ ] Refactoring (no functional changes, no api changes)
    • [ ] Documentation content changes

    What is the current behavior?

    macOS apps aren't signed and create warnings that the app isn't trusted

    Issue Number: #395

    What is the new behavior?

    macOS app is signed an notarized using an Apple Developer account.

    Does this PR introduce a breaking change?

    • [ ] Yes
    • [X] No

    Other information

    feature 
    opened by danyeaw 16
  • Add general popup menu for model browser

    Add general popup menu for model browser

    PR Type

    What kind of change does this PR introduce?

    • [ ] Bug fix
    • [x] Feature
    • [ ] Chore (refactoring, formatting, local variables, other cleanup)
    • [ ] Documentation content changes

    What is the current behavior?

    When you cleaned the whole model, there's no way to easily create new top-level packages without putting them in a diagram as well.

    Issue Number: #1954

    What is the new behavior?

    When no element is selected, you can add top level diagrams and packages.

    This allows to add top-level packages and diagrams from anywhere within the model browser (tree view).

    You can now deselect the selected element in the model browser with Ctrl+mouse click.

    image

    Does this PR introduce a breaking change?

    • [ ] Yes
    • [x] No

    Other information

    I considered adding it to the "create diagram" button in the header bar as well.

    • Renamed "tree component" on layout level as model_browser, as it's called in the docs.
    • Fixed issue where only new popover menu's were created and none were cleaned up
    • Remove GTK4 related code from Namespace component.
    • Break dependency from tree component/namespace on function in main window module.
    python 
    opened by amolenaar 2
  • Manually resolve merge conflicts

    Manually resolve merge conflicts

    PR Type

    What kind of change does this PR introduce?

    • [ ] Bug fix
    • [x] Feature
    • [ ] Chore (refactoring, formatting, local variables, other cleanup)
    • [ ] Documentation content changes

    What is the current behavior?

    When a merge conflict happens, you're in trouble.

    Issue Number: #388

    What is the new behavior?

    From the merge conflict a change set is distilled. This change set can be applied to the model by the user. This allows for fine grained control over the changes made to the "resolved" model.

    Does this PR introduce a breaking change?

    • [ ] Yes
    • [ ] No

    Other information

    python 
    opened by amolenaar 1
  • Make operations visible on Blocks

    Make operations visible on Blocks

    This PR enables operations on Blocks so that they are visible on the Block shape and in the Property Editor.

    PR Checklist

    Please check if your PR fulfills the following requirements:

    PR Type

    What kind of change does this PR introduce?

    • [ ] Bug fix
    • [X] Feature
    • [ ] Chore (refactoring, formatting, local variables, other cleanup)
    • [ ] Documentation content changes

    What is the current behavior?

    Operations and Attributes are hidden on Blocks

    Issue Number: #1953

    What is the new behavior?

    Operations and Attributes are visible on Blocks

    Does this PR introduce a breaking change?

    • [ ] Yes
    • [X] No

    Other information

    feature python 
    opened by danyeaw 1
  • Tutorial: Coffee machine

    Tutorial: Coffee machine

    PR Type

    What kind of change does this PR introduce?

    • [ ] Bug fix
    • [ ] Feature
    • [ ] Chore (refactoring, formatting, local variables, other cleanup)
    • [x] Documentation content changes

    What is the new behavior?

    Provide a simple example: develop a coffee machine.

    Goals:

    • Work with some different types of diagrams (static/dynamic)
    • Reap some benefits from modeling: component interfaces, risk analysis
    documentation 
    opened by amolenaar 0
  • Don't show tab bar if there's only one tab

    Don't show tab bar if there's only one tab

    We generally don't show tab bars when there's a single one (except in Builder, but that's for reasons which don't really apply to other apps, i.e. that it has an in-app tiling system). The current status quo is not great, because there's a useless second bar at all times, which just says "main" when you create a new model:

    image

    As far as I understood, the bar was enabled to make it clearer which diagram you're currently working on, so we'd need to find an alternative place to show the title. Would the window title in the headerbar be an option here, e.g. instead of "Gaphor" in the example above?

    Independently from that we should find a better default name than "main". Would something like "Diagram 1" or "Main Diagram" work?

    Followup from #1926

    feature 
    opened by bertob 2
  • Ability to create a package

    Ability to create a package

    Is your feature request related to a problem?

    Add ability to create a package without creating any kind of diagram

    Describe the solution you'd like

    I would like to be able to add packages without creating diagrams.

    Describe alternatives you've considered

    Additional context

    opened by sz332 8
Releases(2.15.0)
  • 2.15.0(Jan 9, 2023)

    Changes

    ๐Ÿš€ Features

    • Append colon and space when inserting CSS props @vanillajonathan (#1992)
    • Append () when inserting a CSS function @vanillajonathan (#1994)
    • Add CSS function completion provider @vanillajonathan (#1976)
    • Resolve (git) merge conflict: choose which branch to load @amolenaar (#1845)
    • Use native file chooser on Windows @oscfdezdz (#1968)

    ๐Ÿ› Bug Fixes

    • Regression: line handles should snap to elements when moved around @amolenaar (#1989)
    • Fix socket hang up error during release upload @danyeaw (#1986)
    • Fix PyInstaller versionfile parse error with pre-release versions @danyeaw (#1978)
    • Fix Translations on Windows, macOS, and AppImage @danyeaw (#1973)
    • Publish to PyPI after all other jobs have passed @amolenaar (#1967)

    ๐Ÿงฐ Maintenance

    • Drop pytest-mock @amolenaar (#1991)
    • Update dependencies @danyeaw (#1979)
    • Bump release-drafter/release-drafter from 5.21.1 to 5.22.0 (#1984)
    • Update docker image to 2023.1.0 @danyeaw (#1983)
    • Update to gvsbuild 2023.1.0 @danyeaw (#1981)
    • Fix PEP597 Encoding Warnings @danyeaw (#1971)

    ๐Ÿ“ Documentation

    • Update contributing guidelines @danyeaw (#1999)

    ๐ŸŒ Translation

    • Translations update from Hosted Weblate @weblate (#1987)
    • Remove translation makefile @danyeaw (#1988)
    • Russian translation updates @weblate (#1985)
    • Russian translation updates @weblate (#1980)
    • Turkish, Swedish, and Russian translation updates @weblate (#1977)
    • Add Turkish and update French and Russian translations @weblate (#1972)

    Thanks again to @BrainKicker, @Ercalvez, @amolenaar, @danyeaw, @oscfdezdz, @sabriunal, @vanillajonathan, and @vikdevelop! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.15.0-x86_64.AppImage(52.52 MB)
    gaphor-2.15.0-installer.exe(24.73 MB)
    gaphor-2.15.0-portable.exe(24.17 MB)
    Gaphor-2.15.0.dmg(35.23 MB)
  • 2.14.1(Dec 28, 2022)

    Changes

    ๐Ÿš€ Features

    • Add autocompletion for CSS properties @vanillajonathan (#1947)

    ๐Ÿ› Bug Fixes

    • Fix coredumps on Flatpak @amolenaar (#1964)
    • Hide New Package menu unless package selected @danyeaw (#1959)
    • Fix macos build @amolenaar (#1957)

    ๐Ÿงฐ Maintenance

    • Windows CI: fix cannot create symlink error @danyeaw (#1963)

    ๐Ÿ“ Documentation

    • Update Getting Started pages @amolenaar (#1956)

    ๐ŸŒ Translation

    • Spanish translation update @weblate (#1965)

    Thanks again to @amolenaar, @danyeaw, @oscfdezdz, and @vanillajonathan! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.14.1-x86_64.AppImage(57.36 MB)
    gaphor-2.14.1-installer.exe(24.66 MB)
    gaphor-2.14.1-portable.exe(24.10 MB)
  • 2.14.0(Dec 24, 2022)

    Changes

    ๐Ÿš€ Features

    • Use system fonts by default for diagrams @amolenaar (#1922)
    • macOS: cursor shortcuts for text entry widgets @amolenaar (#1911)
    • Make sequence diagram messages horizontal by default @amolenaar (#1895)
    • Simplify the greeter and provide more info to new users @amolenaar (#1892)
    • Add custom style sheet language @amolenaar (#1896)
    • Move Control Flow line style to CSS @amolenaar (#1913)

    ๐Ÿ› Bug Fixes

    • Fix loading error @amolenaar (#1942)
    • Move Control Flow line style to CSS @amolenaar (#1913)
    • Do not auto-layout sequence diagrams @amolenaar (#1906)
    • Support non-standard Sphinx directory structures @amolenaar (#1905)
    • Toolbox style updates @amolenaar (#1886)
    • Add tooltips to the application header icons @amolenaar (#1884)

    ๐Ÿงฐ Maintenance

    • Use new actions/cache/(save|restore) @amolenaar (#1946)
    • Remove querymixin from modeling lists @amolenaar (#1941)
    • Upgrade pycairo @amolenaar (#1931)
    • New handle style @amolenaar (#1925)
    • Update poetry to version 1.3.1 @danyeaw (#1923)
    • Use pip as Python module @amolenaar (#1919)
    • Update gvsbuild to upgrade cairo in Windows @danyeaw (#1907)
    • Fix macOS shortcuts on GTK 4 @amolenaar (#1901)
    • Improve Windows build reliability by limiting cores to 2 @danyeaw (#1904)
    • Standard keyboard shortcuts @amolenaar (#1903)
    • Load template as part of self-test @amolenaar (#1894)
    • Update PyInstaller to version 5.7.0 @danyeaw (#1898)
    • Update gvsbuild to upgrade cairo in Windows @danyeaw (#1907)
    • Improve Windows build reliability by limiting cores to 2 @danyeaw (#1904)

    ๐Ÿ“ Documentation

    • Switch doc style to Furo @amolenaar (#1935)
    • Add hint for button to edit CSS in style_sheet.md @Holzhauer (#1883)

    ๐ŸŒ Translation

    • Croatian and Finnish translation updates @weblate (#1934)
    • Hungarian translation updates @weblate (#1914)
    • Hungarian and Czech translation updates @weblate (#1889)
    • Update Swedish translation @vanillajonathan (#1885)
    • Hungarian translation update @weblate (#1878)

    Thanks again to @Holzhauer, @amolenaar, @danyeaw, @milotype, @oscfdezdz, @ovari, @vanillajonathan, @vikdevelop, Hannes Fritz, and Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.14.0-x86_64.AppImage(57.34 MB)
    gaphor-2.14.0-installer.exe(24.65 MB)
    gaphor-2.14.0-portable.exe(24.09 MB)
    Gaphor-2.14.0.dmg(35.09 MB)
  • 2.13.0(Nov 28, 2022)

    Changes

    ๐Ÿš€ Features

    • Build a development Flatpak @amolenaar (#1844)
    • Disable Recent files if no recent files are present @amolenaar (#1842)
    • Support Delete to delete entries from tree view @amolenaar (#1838)
    • Adwaita-based tab view for GTK4 @amolenaar (#1837)
    • Update Message Dialogs to libadwaita @danyeaw (#1813)
    • Package Graphviz with PyInstaller builds @amolenaar (#1797)
    • Diagram auto-layout with Graphviz @amolenaar (#1653)
    • Upgrade about dialog to libadwaita with GTK4 @danyeaw (#1785)

    ๐Ÿ› Bug Fixes

    • Fix file not found for about and keyboard shortcut dialogs @danyeaw (#1877)
    • Ensure both sides of a Gtk.Paned are always visible @amolenaar (#1874)
    • Added extra port below text for actor @amolenaar (#1855)
    • Update folded interface shape when connecting dependency @can-lehmann (#1850)
    • Fix zoom with mouse @amolenaar (#1815)
    • Fix key modifiers for delete element shortcut @amolenaar (#1794)

    ๐Ÿงฐ Maintenance

    • Auto add skip-changelog label for pre-commit.ci and all-contributors @danyeaw (#1875)
    • Add some architectural rules to Gaphor @amolenaar (#1871)
    • Update AppImage build to GTK4 and Python 3.11 @danyeaw (#1857)
    • Python 3.11 updates @amolenaar (#1869)
    • macOS build update @amolenaar (#1864)
    • Update Windows build to use Python 3.11 @danyeaw (#1861)
    • Move mypy.ini to pyproject.toml @danyeaw (#1862)
    • Interact with models without GTK @amolenaar (#1851)
    • Storage module maintenance @amolenaar (#1848)
    • Add documentation on how to interact with Gaphor programmatically @amolenaar (#1820)
    • Pydot cleanup @amolenaar (#1833)
    • Pytest now uses importlib @amolenaar (#1825)
    • Replace deprecated set-output commands @danyeaw (#1818)
    • Use entry points for pyinstaller builds @amolenaar (#1823)
    • Remove lint tooling handled by pre-commit from pyproject.toml @amolenaar (#1822)
    • Diagram auto-layout with Graphviz @amolenaar (#1653)
    • Update gvsbuild to 2022.4.1 to fix zlib error @danyeaw (#1809)
    • Build Windows installers with GTK4 @danyeaw (#1787)
    • Fix typos @kianmeng (#1799)
    • Update gvsbuild to version 2022.4.0 @danyeaw (#1792)
    • Update poetry to version 1.2.2 @danyeaw (#1791)

    ๐ŸŒ Translation

    • Update Swedish translation @vanillajonathan (#1873)
    • Finnish translation updates @weblate (#1870)
    • Czech translation updates @weblate (#1824)
    • Translations updates @weblate (#1811)
    • Add Slovenian Translation @weblate (#1804)

    Thanks again to @amolenaar, @can-lehmann, @danyeaw, @kianmeng, @milotype, @oscfdezdz, @ovari, @perovsek, @vanillajonathan, and Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.13.0-x86_64.AppImage(57.28 MB)
    gaphor-2.13.0-installer.exe(25.49 MB)
    gaphor-2.13.0-portable.exe(24.62 MB)
    Gaphor-2.13.0.dmg(35.04 MB)
  • 2.12.1(Oct 8, 2022)

    Changes

    ๐Ÿ› Bug Fixes

    • Fix/move connected handle @amolenaar (#1778)
    • Fix error when disconnecting line with multiple segments @amolenaar (#1763)

    ๐Ÿงฐ Maintenance

    • Fail CI build if Windows certificate signing fails @danyeaw (#1782)
    • Sourcery and Grammar Cleanup @danyeaw (#1772)
    • Update RAAML diagram numbers @danyeaw (#1774)
    • namespace.py: Actually set properties for rectangle @mathiascode (#1771)
    • Add skip-changelog label to dependabot PRs @danyeaw (#1765)
    • Update Shortcuts window @amolenaar (#1757)

    Thanks again to @amolenaar, @danyeaw, and @mathiascode! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.12.1-x86_64.AppImage(59.94 MB)
    gaphor-2.12.1-installer.exe(25.41 MB)
    gaphor-2.12.1-portable.exe(24.55 MB)
    Gaphor-2.12.1.dmg(41.50 MB)
  • 2.12.0(Sep 26, 2022)

    Changes

    ๐Ÿš€ Features

    • Remove connected items from the diagram @amolenaar (#1724)
    • Support Generic syntax @amolenaar (#1722)
    • Allow sequence diagram messages on lifeline body @amolenaar (#1715)
    • Full tree search (GTK4) @amolenaar (#1698)
    • Inherited stereotype part 2: attributes from super type @amolenaar (#1709)
    • Assign activities to classifiers @amolenaar (#1687)
    • State machines and regions @amolenaar (#1666)
    • Resize of partition keeps actions in the same swimlane @amolenaar (#1668)
    • State diagram: support all pseudostates @amolenaar (#1662)
    • Add Codespaces Configuration @danyeaw (#1660)
    • Support stereotypes inherited from other stereotypes @amolenaar (#1630)

    ๐Ÿ› Bug Fixes

    • Prevent deleting an element in a diagram also deleting the diagram itself @amolenaar (#1751)
    • Fix invalid matrix error when creating use case @amolenaar (#1752)
    • Fix model corruption when connecting a Block to an Actor @amolenaar (#1705)
    • Retain save folder - use Path @amolenaar (#1680)
    • Fix "rename" from popover @amolenaar (#1633)
    • Fix stereotype unapplication @amolenaar (#1644)
    • Fix color scheme warning with libadwaita @danyeaw (#1629)

    ๐Ÿงฐ Maintenance

    • Update gvsbuild to version 2022.3.0 @danyeaw (#1739)
    • Sourcery Refactorings @danyeaw (#1738)
    • Update poetry to version 1.2.1 @danyeaw (#1737)
    • macos: Disable DnD for GTK4 @amolenaar (#1736)
    • Update poetry to version 1.2.0 @danyeaw (#1711)
    • Make model properties strict @amolenaar (#1692)
    • Fix Instant editor focus on GTK4 @amolenaar (#1697)
    • Update poetry to version 1.1.15 @danyeaw (#1691)
    • Fix event-controller warning on GTK4 @amolenaar (#1689)
    • Update Python and Ubuntu distro for readthedocs @danyeaw (#1682)
    • Add copy button for code blocks in docs @amolenaar (#1678)
    • Setup Windows dev environment using pipx @danyeaw (#1671)
    • Replace branch name with file location for PR labeling @danyeaw (#1663)
    • Install gvsbuild with pip @danyeaw (#1664)
    • Update PyInstaller to version 5.3 @danyeaw (#1646)
    • Make the GTK Version Configurable with PyInstaller @danyeaw (#1626)
    • Replace tomli with tomllib for Python 3.11+ @danyeaw (#1625)
    • Move Windows Installation to C:\Program Files @danyeaw (#1602)
    • Simplify hooks for freetype2 compatibility in Windows @danyeaw (#1624)
    • Make GTK4 the Default Version and Enable Adwaita @danyeaw (#1604)
    • Update dependencies @danyeaw (#1605)
    • "Full build" pipeline for PR's @amolenaar (#1589)

    ๐ŸŒ Translation

    • More Hungarian translation updates @weblate (#1734)
    • Update Croatian translation @weblate (#1726)
    • Croatian translation updates @weblate (#1723)
    • Update Finnish, Spanish, German, and Czech translations @weblate (#1701)
    • Chinese (Simplified) translation updates @weblate (#1693)
    • Dutch translation updates @weblate (#1688)
    • Spanish translation update @weblate (#1685)
    • Croation translation update @weblate (#1636)
    • More Czech translation updates @weblate (#1620)
    • Update Czech translation @weblate (#1619)
    • Update Czech translation @weblate (#1618)
    • Add Czech translation @weblate (#1615)

    Thanks again to @Anonynonymouse, @amolenaar, @danyeaw, @milotype, @oscfdezdz, @ovari, @pre-commit-ci, @pre-commit-ci[bot], @sourcery-ai, @sourcery-ai[bot], @vikdevelop, @weblate, Hugel, Jiri Grรถnroos and Sourcery AI! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.12.0-x86_64.AppImage(59.88 MB)
    gaphor-2.12.0-installer.exe(25.39 MB)
    gaphor-2.12.0-portable.exe(24.54 MB)
    Gaphor-2.12.0.dmg(41.36 MB)
  • 2.11.0(Sep 25, 2022)

    Changes

    ๐Ÿš€ Features

    • Make SysML Enumerations also ValueTypes @amolenaar (#1543)
    • Union types @amolenaar (#1593)
    • Todo example of use for css @Toorero (#1596)
    • Let Gaphor check for it's own health @amolenaar (#1583)
    • Add Copy/Paste for GTK4 @amolenaar (#1565)
    • GTK4 list view @amolenaar (#1516)
    • Error Reports window @amolenaar (#1529)
    • Add element to diagram by double click @amolenaar (#1528)

    ๐Ÿ› Bug Fixes

    • Transition can self-reference State @amolenaar (#1600)
    • Ensure all models are saved with UTF-8 encoding @amolenaar (#1594)
    • Fix unlinking elements from the model @amolenaar (#1567)
    • Fix issue with fully pasting a diagram @amolenaar (#1536)
    • Fix scroll speed for touch screens @amolenaar (#1533)

    ๐Ÿงฐ Maintenance

    • Fix codeql warnings and error @danyeaw (#1581)
    • Improve text placement for Associations @amolenaar (#1570)
    • Fix instant editors for GTK4 @amolenaar (#1559)
    • Enable Additional Pre-Commit Checks @danyeaw (#1556)
    • Make dialogs work with GTK 4 @amolenaar (#1530)

    ๐ŸŒ Translation

    • Hungarian translation updates @weblate (#1592)

    Thanks again to @Toorero, @amolenaar, @danyeaw, and @ovari! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.11.0-x86_64.AppImage(60.30 MB)
    gaphor-2.11.0-installer.exe(24.63 MB)
    gaphor-2.11.0-portable.exe(24.11 MB)
    Gaphor-2.11.0.dmg(38.58 MB)
  • 2.10.0(May 22, 2022)

    Changes

    ๐Ÿš€ Features

    • Codegen use all defined modeling languages @amolenaar (#1494)
    • Pin support for activity diagram @amolenaar (#1462)
    • Add Activity item to diagram @amolenaar (#1441)
    • Allow to drag and drop all elements from tree view to diagram @amolenaar (#1414)

    ๐Ÿ› Bug Fixes

    • Fix pin connections when loading a model @amolenaar (#1482)
    • Fix diagram dependency cycle @amolenaar (#1458)

    ๐Ÿงฐ Maintenance

    • Storage cleanup @amolenaar (#1504)
    • Add Skip Duplicate Action and Release-Drafter Permissions @danyeaw (#1497)
    • Update gvsbuild and simplify syntax @danyeaw (#1466)
    • Update permissions for CodeQL GitHub Action @naveensrinivasan (#1453)
    • Include all diagram items in test model @amolenaar (#1434)
    • Fix GTK4 property page layouts @amolenaar (#1439)
    • Refactor Using Sourcery @danyeaw (#1432)
    • Use official RAAML logo in greeter @danyeaw (#1423)
    • Relation metadata @amolenaar (#1421)
    • Rename relationship connector base classes @amolenaar (#1418)
    • Design principles @amolenaar (#1417)

    ๐ŸŒ Translation

    • French translation update @weblate (#1514)
    • Finnish translation updates @weblate (#1490)
    • Finnish translation update @weblate (#1468)
    • Croatian translation update @weblate (#1463)
    • Update Croatian translation @weblate (#1452)
    • Croatian translation updates @weblate (#1442)

    Thanks again to @amolenaar, @danyeaw, @milotype, @naveensrinivasan ! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.10.0.dmg(38.71 MB)
    gaphor-2.10.0-portable.exe(24.02 MB)
    gaphor-2.10.0-installer.exe(24.55 MB)
    Gaphor-2.10.0-x86_64.AppImage(60.16 MB)
    gaphor-2.10.0-py3-none-any.whl(704.79 KB)
    gaphor-2.10.0.tar.gz(877.82 KB)
  • 2.9.1(Mar 18, 2022)

  • 2.9.0(Mar 18, 2022)

    Changes

    ๐Ÿš€ Features

    • Edit newly created diagram name @amolenaar (#1405)
    • New group function for element grouping @amolenaar (#1379)
    • Simulate user behavior with Hypothesis @amolenaar (#1365)
    • Separate Control and Object Flow @amolenaar (#1353)
    • Automatically select dark mode for macOS and Windows @amolenaar (#1336)

    ๐Ÿ› Bug Fixes

    • Proxyport: update ports when proxyport is moved @amolenaar (#1403)
    • Fix AppImage Crashes on Save Command @danyeaw (#1364)
    • Extend Hypothesis Test Coverage and Fix Uncovered Bugs @amolenaar (#1374)
    • Improve reconnect for relationships @amolenaar (#1351)
    • Enable preferences shortcut @amolenaar (#1331)

    ๐Ÿงฐ Maintenance

    • Update connection behavior for Association @amolenaar (#1357)
    • Rename Component Toolbox to Deployment @amolenaar (#1361)

    ๐ŸŒ Translation

    • Update Finnish and German translations @weblate (#1371)
    • Spanish translation updates @weblate (#1350)
    • Croatian translation updates @weblate (#1342)
    • Finnish translation updates @weblate (#1334)

    Thanks again to @amolenaar, @danyeaw, @milotype! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.9.0-x86_64.AppImage(60.25 MB)
    Gaphor-2.9.0.dmg(45.27 MB)
  • 2.8.2(Jan 30, 2022)

    Changes

    ๐Ÿ› Bug Fixes

    • Fix splitting of lines @amolenaar (#1326)

    ๐Ÿงฐ Maintenance

    • #1310 Update to Readme.md - Greeter dialog and new diagram button usage @Texopolis (#1320)

    ๐ŸŒ Translation

    • Hungarian translation update @weblate (#1324)
    • Translate typeValue in properties @amolenaar (#1321)
    • Add Additional Strings for Translation @danyeaw (#1315)
    • Add Bengali translation @weblate (#1318)
    • Hungarian translation updates @weblate (#1311)
    • Update Finnish and Spanish translations @weblate (#1307)

    Thanks again to @Texopolis, @amolenaar, @danyeaw, @oscfdezdz, @ovari, Jiri Grรถnroos, and Saptarshi Mondal! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.8.2-x86_64.AppImage(50.05 MB)
    gaphor-2.8.2-installer.exe(30.61 MB)
    gaphor-2.8.2-portable.exe(30.08 MB)
    Gaphor-2.8.2.dmg(45.03 MB)
  • 2.8.1(Jan 19, 2022)

    Changes

    ๐Ÿš€ Features

    • Simplify the Greeter Dialogs @danyeaw (#1301)

    ๐Ÿ› Bug Fixes

    • Fix Gaphor fails to load in German, update Hungarian and Finnish translations @weblate (#1298)

    ๐Ÿงฐ Maintenance

    • Check for placeholder errors in translations @amolenaar (#1302)

    ๐ŸŒ Translation

    • Chinese (Simplified) translation updates @weblate (#1303)

    Thanks again to @amolenaar, @danyeaw, @lizhuoqi, @ovari, and Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.8.1-x86_64.AppImage(50.05 MB)
    gaphor-2.8.1-installer.exe(30.61 MB)
    gaphor-2.8.1-portable.exe(30.07 MB)
    Gaphor-2.8.1.dmg(45.83 MB)
  • 2.8.0(Jan 15, 2022)

    Changes

    ๐Ÿš€ Features

    • Add UML, SysML, and RAAML Templates @danyeaw (#1279)
    • Stereotypes for ItemFlow properties @amolenaar (#1211)
    • Full Copy/Paste of model elements @amolenaar (#1262)
    • Add official OMG/SysML logos @amolenaar (#1258)
    • Allow for deleting elements in the tree view @amolenaar (#1250)
    • Fix AppImage GLIBC Error on Older Distro Versions @danyeaw (#1228)
    • Start a new model from a template @amolenaar (#1234)
    • Diagram types @amolenaar (#1216)
    • Improve the welcoming experience @amolenaar (#1230)
    • Allocation of structural types to swimlane partitions @amolenaar (#1214)
    • A Magnet-tool @amolenaar (#1208)
    • Notification when model elements are automatically removed @amolenaar (#1207)
    • Store toolbox settings per modeling language @amolenaar (#1215)
    • Grow item when an item is dropped on it @amolenaar (#1203)
    • Add "values" compartment to Block item @amolenaar (#1198)
    • Support SysML Item flow @amolenaar (#1192)
    • Empty square bracket notation @amolenaar (#1186)
    • New code generator @amolenaar (#1170)

    ๐Ÿ› Bug Fixes

    • Fix Sequence diagram loading when message is close to lifeline body @amolenaar (#1289)
    • Load files directly from macOS Finder @amolenaar (#1281)
    • Fix positions of nested items during undo @amolenaar (#1266)
    • Fork node loading @amolenaar (#1252)
    • Fix FileNotFoundError when running packaged app @danyeaw (#1244)
    • Fix ownership of Connector, ProxyPort, and ItemFlow @amolenaar (#1226)
    • Set a minimal height for compartments @amolenaar (#1225)

    ๐Ÿงฐ Maintenance

    • Use symbolic close icon for notebook tabs @mathiascode (#1295)
    • Improve GTK4 compatibility @amolenaar (#1106)
    • Improve clarity of syntax for attributes and operations using a popover @amolenaar (#1242)
    • Clean up Toolbox @amolenaar (#1237)
    • Update to latest gvsbuild, switch to wingtk repo @danyeaw (#1229)
    • Remove some legacy code @amolenaar (#1200)
    • Invert association creation @amolenaar (#1202)
    • Ensure model consistency on save @amolenaar (#1194)
    • Core as a separate ModelingLanguage @amolenaar (#1181)

    ๐ŸŒ Translation

    • Spanish translations updates @weblate (#1292)
    • Spanish translation updates @weblate (#1288)
    • Finnish translation updates @weblate (#1287)
    • Hungarian translation updates @weblate (#1284)
    • Dutch and Hungarian translation updates @weblate (#1274)
    • Portuguese (Brazil) translation updates @weblate (#1269)
    • Updates to Brasilian translation @weblate (#1267)
    • Finnish translation update for Help in PropertyPage @weblate (#1257)
    • Hungarian and Galician translation updates @weblate (#1254)
    • Croatian translation updates @weblate (#1218)
    • Spanish, Croatian, and Finnish translation updates @weblate (#1205)
    • Update Espanian translations @weblate (#1196)
    • Chinese translation updates @weblate (#1187)
    • Add Chinese (Simplified) translation @weblate (#1182)
    • Updates to German and Hungarian translations @weblate (#1174)
    • Add German translation file @weblate (#1173)

    Thanks again to @Lutra-Fs, @amolenaar, @danyeaw, @frandieguez, @gbrlgian, @jischebeck, @jy1263, @mathiascode, @milotype, @oscfdezdz, @ovari, Cesar Iglesias, and Jiri Grรถnroos!! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.8.0-x86_64.AppImage(50.06 MB)
    gaphor-2.8.0-installer.exe(30.60 MB)
    gaphor-2.8.0-portable.exe(30.07 MB)
    Gaphor-2.8.0.dmg(45.83 MB)
  • 2.7.1(Dec 2, 2021)

    Changes

    ๐Ÿš€ Features

    • No GTK required anymore for generating docs @amolenaar (#1160)

    ๐Ÿงฐ Maintenance

    • Fix Lines Don't Disconnect When Moved (gaphor/[email protected])
    • Update Python to 3.10.0 @danyeaw (#1163)
    • Update gvsbuild and poetry version @danyeaw (#1164)

    ๐ŸŒ Translation

    • Spanish translation updates @weblate (#1165)

    Thanks again to @amolenaar, @danyeaw, @oscfdezdz! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.7.1-x86_64.AppImage(57.38 MB)
    gaphor-2.7.1-installer.exe(30.61 MB)
    gaphor-2.7.1-portable.exe(30.07 MB)
    Gaphor-2.7.1.dmg(45.68 MB)
  • 2.7.0(Nov 26, 2021)

    Changes

    ๐Ÿš€ Features

    • Use Jedi for autocomplete in the Python Console @amolenaar (#1153)
    • Add option to show underlying DecisionNode type @amolenaar (#1144)
    • Update documentation to use new Sphinx extension @amolenaar (#1143)
    • Sphinx directive for embedding Gaphor models into docs @amolenaar (#1134)
    • Allow messages to move freely on Lifeline and ExecutionSpec @amolenaar (#1121)
    • Add Reflexive Message item for Interactions @amolenaar (#1123)
    • Pop-up element name editor on creation of a new element @amolenaar (#1116)
    • InformationFlow for Connectors @amolenaar (#1103)

    ๐Ÿ› Bug Fixes

    • Swap relationship direction for Generalization, Dependency, Import, Include, and Extend @amolenaar (#1129)
    • Fix lifeline ordering when not all items are linked in a diagram @amolenaar (#1155)
    • Allow generalizations to be reused @amolenaar (#1149)
    • Fix Windows build by updating to Python 3.9.9 @danyeaw (#1142)
    • Allow auto-generated elements (Activity, State Machine, Interaction, Region) to be removed @amolenaar (#1118)
    • Emit events for Diagram.ownedPresentation and Presentation.diagram after element creation @amolenaar (#1088)

    ๐Ÿงฐ Maintenance

    • Add option to show underlying DecisionNode type @amolenaar (#1144)
    • Add documentation dependencies to pyproject.toml @amolenaar (#1138)
    • Move enumeration layout to UML.classes @amolenaar (#1140)
    • Rename packaging to _packaging @amolenaar (#1136)
    • Remove names for initial/final nodes @amolenaar (#1130)
    • Update to latest gvsbuild @danyeaw (#1120)
    • Update to PyInstaller 4.6 @danyeaw (#1109)
    • Add gtksourceview to Windows docs @danyeaw (#1108)
    • Fix Python 3.10 warnings @amolenaar (#1105)
    • Fix indention in Style Sheet docs @vanillajonathan (#1091)

    ๐ŸŒ Translation

    • Finnish translation updates @weblate (#1146)
    • Hungarian translation updates @weblate (#1133)
    • Hungarian translation updates @weblate (#1128)
    • Expand the number of strings translated @amolenaar (#1125)
    • Update Croatian translation @weblate (#1093)
    • Spanish, Japanese, Finnish, and Croatian translation updates @weblate (#1092)

    Thanks again to @amolenaar, @danyeaw, @fu7mu4, @milotype, @oscfdezdz, @ovari, @vanillajonathan, Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.7.0-x86_64.AppImage(56.29 MB)
    gaphor-2.7.0-installer.exe(30.57 MB)
    gaphor-2.7.0-portable.exe(30.04 MB)
    Gaphor-2.7.0.dmg(45.56 MB)
  • 2.6.5(Oct 19, 2021)

    ๐Ÿš€ Features

    • Update Style Sheet Editor to be a Code Editor @danyeaw (#1029)

    ๐Ÿ› Bug Fixes

    • Show relationships on top of other elements @amolenaar (#1084)

    ๐Ÿงฐ Maintenance

    • Remove unneeded Linux CI build dependencies @danyeaw (#1086)
    • Update PyGObject @danyeaw (#1018)
    • Upgrade Poetry to 1.1.11 @amolenaar (#1078)

    ๐ŸŒ Translation

    • Spanish and Japanese translation updates @weblate (#1074)
    • Japanese translation updates @weblate (#1085)
    • Update Hungarian translations @weblate (#1082)
    • Add initial Japanese translation @weblate (#1079)
    • Update strings to improve ability to translate @danyeaw (#1067)
    • Add Hungarian button tooltip translations @weblate (#1072)
    • Croatian and Hungarian translation updates @weblate (#1068)
    • Update Spanish translation @weblate (#1066)
    • Hungarian translation updates @weblate (#1065)

    Thanks again to @amolenaar, @danyeaw, @fu7mu4, @milotype, @oscfdezdz, @ovari, and Cesar Iglesias! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.6.5-x86_64.AppImage(54.81 MB)
    gaphor-2.6.5-installer.exe(29.31 MB)
    gaphor-2.6.5-portable.exe(28.78 MB)
    Gaphor-2.6.5.dmg(43.95 MB)
  • 2.6.4(Oct 4, 2021)

  • 2.6.3(Oct 3, 2021)

    Changes

    ๐Ÿ› Bug Fixes

    • Fix about dialog logo @amolenaar (#1042)

    ๐Ÿงฐ Maintenance

    • Remove importlib_metadata @amolenaar (#1052)
    • Simpler services @amolenaar (#1050)
    • Up typing compliance to 3.9, and remove typing_extensions @amolenaar (#1040)

    ๐ŸŒ Translation

    • Finnish translation updates @weblate (#1056)
    • Add translation of more elements @danyeaw and @amolenaar (#1049)

    Thanks again to @amolenaar, @ovari, and @danyeaw! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.6.3-x86_64.AppImage(54.23 MB)
    gaphor-2.6.3-installer.exe(28.77 MB)
    gaphor-2.6.3-portable.exe(28.26 MB)
    Gaphor-2.6.3.dmg(43.32 MB)
  • 2.6.2(Oct 2, 2021)

    Changes

    ๐Ÿ› Bug Fixes

    • Fix localization in UI files @amolenaar (#1031)
    • Update icons to render as paths @amolenaar (#1030)

    ๐ŸŒ Translation

    • Hungarian and Finnish translation updates @weblate (#1035)
    • Spanish, Portuguese (Br), and Hungarian Translation Updates @weblate (#1032)

    Thanks again to @JonnathanRiquelmo, @amolenaar, @danyeaw, @oscfdezdz, @ovari, and Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.6.2-x86_64.AppImage(54.26 MB)
    gaphor-2.6.2-installer.exe(28.79 MB)
    gaphor-2.6.2-portable.exe(28.28 MB)
    Gaphor-2.6.2.dmg(43.34 MB)
  • 2.6.1(Sep 25, 2021)

    Changes

    ๐Ÿš€ Features

    • Display guard conditions in square brackets @amolenaar (#990)
    • Use flat buttons in the header bar @amolenaar (#991)

    ๐Ÿ› Bug Fixes

    • Fix Gaphor always runs in English despite system language setting @amolenaar (#1025)
    • Fix parameter is incorrect error with ";;" in path @danyeaw (#1022)
    • Improve inline editor undo/redo behavior @amolenaar (#1016)
    • Fixed closing of about dialog @sz332 (#996)
    • Fix fork/join node incorrectly rotates @amolenaar
    • Fix wrong label is displayed when object node ordering is enabled @amolenaar
    • Fix drag and drop of elements does not work on diagrams @amolenaar

    ๐Ÿงฐ Maintenance

    • Add VSCode debug instructions for Windows @sz332 (#1010)
    • Rename usage of Partitions to Swimlanes @amolenaar (#1013)
    • Packaging folder is not a Python package @amolenaar (#992)

    ๐ŸŒ Translation

    • Update Dutch and Hungarian Translations @weblate (#1026)
    • Croatian translation updates @weblate (#988)

    Thanks again to @amolenaar, @danyeaw, @milotype, @ovari, and @sz332! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.6.1-x86_64.AppImage(54.26 MB)
    gaphor-2.6.1-installer.exe(28.79 MB)
    gaphor-2.6.1-portable.exe(28.28 MB)
    Gaphor-2.6.1.dmg(43.33 MB)
  • 2.6.0(Sep 14, 2021)

    Changes

    ๐Ÿš€ Features

    • Add information flows to UML model @amolenaar (#907)
    • Improve zoom and pan for mouse @amolenaar (#913)

    ๐Ÿ› Bug Fixes

    • Swap Generalization Arrow Directions @danyeaw (#935)
    • Fix TypeError for Protocols cannot be instantiated @danyeaw (#967)
    • Fix Doc Build Errors and Upgrade to MyST-Parser and tomli @danyeaw (#964)
    • Add extra rules to avoid cyclic references @amolenaar (#895)
    • Fix disappearing elements from tree view on Windows @amolenaar (#882)

    ๐Ÿงฐ Maintenance

    • Fix macOS Codesign and Refactor CI @danyeaw (#969)
    • Convert CI from mingw to gvsbuild @danyeaw (#912)
    • Rebuild translation portable objects @danyeaw (#925)
    • Fix typo in UML.gaphor @eltociear (#931)
    • Upgrade Windows Build Script from Bash to Python @danyeaw (#903)
    • Upgrade PyInstaller to Version 4.4 @danyeaw (#904)
    • Refactor class property pages in to multiple modules @danyeaw (#869)
    • Python 3.9 is now default in MSYS2 @danyeaw (#902)
    • Dependency updates @mrmonkington (#893)
    • Add Docs for Building GTK for Windows with gvsbuild @danyeaw (#885)
    • Developer documentation tweaks @mrmonkington (#892)
    • Fix Windows Dev Env Docs @danyeaw (#873)
    • Enable pyupgrade and use Python 3.9 in Windows @danyeaw (#875)

    ๐ŸŒ Translation

    • Add Galician translation @weblate (#979)
    • Add a new Korean translation @darkcircle (#959)
    • Update Hungarian, Finnish, & Spanish Translations @weblate (#958)
    • Update the README on How to Translate the Flatpak String @ovari (#950)
    • Translations from UI files @amolenaar (#948)
    • Add Finnish and update Spanish and Hungarian Translations @weblate (#944)
    • Add Hungarian Translation @weblate (#939)

    Thanks again to @amolenaar, @danyeaw, @darkcircle, @eltociear, @frandieguez, @mrmonkington, @oscfdezdz, @ovari, J. Lavoie, Jiri Grรถnroos! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.6.0-x86_64.AppImage(54.25 MB)
    gaphor-2.6.0-installer.exe(28.79 MB)
    gaphor-2.6.0-portable.exe(28.28 MB)
    Gaphor-2.6.0.dmg(43.43 MB)
  • 2.5.1(Jul 5, 2021)

  • 2.5.0(Jun 30, 2021)

    Changes

    ๐Ÿš€ Features

    • Feature/element notes @amolenaar (#863)
    • Add Initial Support for STPA @danyeaw (#781)
    • Allow diagrams under all elements @amolenaar (#825)

    ๐Ÿ› Bug Fixes

    • Fix delete and undo of a diagram @amolenaar (#827)
    • Rename C4ContainerDatabaseItem to C4DatabaseItem @amolenaar (#830)

    ๐Ÿงฐ Maintenance

    • Cleanup model loading @amolenaar (#860)
    • Diagram items in element factory @amolenaar (#851)
    • Organize element events @amolenaar (#844)
    • Link toolbox and diagrams @amolenaar (#836)

    Thanks again to @amolenaar, @danyeaw! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.5.0-x86_64.AppImage(54.26 MB)
    gaphor-2.5.0-installer.exe(28.62 MB)
    gaphor-2.5.0-portable.exe(28.35 MB)
    Gaphor-2.5.0.dmg(41.95 MB)
  • 2.4.2(May 23, 2021)

    Changes

    ๐Ÿ› Bug Fixes

    • Property page should only set navigability if both ends are connected @amolenaar (#820)

    ๐Ÿงฐ Maintenance

    • Sign only builds on the master branch @amolenaar (#826)
    • Improve drag and drop for TreeView @amolenaar (#812)
    • Add GTK4 build on macos @amolenaar (#808)
    • GTK 4 @amolenaar (#756)
    • Add tooltips for "A"/"S" in editor @amolenaar (#805)
    • Upload Linux assets during release @danyeaw (#787)

    Thanks again to @amolenaar, @danyeaw, @vanillajonathan! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    Gaphor-2.4.2-x86_64.AppImage(54.34 MB)
    gaphor-2.4.2-installer.exe(28.60 MB)
    gaphor-2.4.2-portable.exe(28.32 MB)
    Gaphor-2.4.2.dmg(41.93 MB)
  • 2.4.1(May 11, 2021)

  • 2.4.0(May 1, 2021)

    Changes

    ๐Ÿš€ Features

    • Add Support for DataType, ValueType, Primitive, and Enumeration @danyeaw (#724)
    • Focus already opened model @amolenaar (#711)
    • Add Support for Containment Relationship @danyeaw (#707)
    • Restore window state when diagram is loaded @amolenaar (#717)

    ๐Ÿงฐ Maintenance

    • Update Spanish translation @oscfdezdz (#767)
    • Upgrade PyInstaller to version 4.3 @danyeaw (#743)
    • Gtk4 toolbox @amolenaar (#741)
    • Add regression tests @amolenaar (#734)
    • Remove the New From Template option @amolenaar (#730)
    • Fix build fails when GitHub Actions secrets are not available @danyeaw (#719)

    Thanks again to @amolenaar, @danyeaw, @oscfdezdz! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    gaphor-2.4.0-installer.exe(28.53 MB)
    gaphor-2.4.0-portable.exe(28.26 MB)
    Gaphor-2.4.0.dmg(43.55 MB)
    Gaphor-2.4.0-x86_64.AppImage(54.24 MB)
  • 2.3.2(Mar 30, 2021)

  • 2.3.1(Mar 28, 2021)

Owner
Gaphor
Gaphor is the simple modeling tool
Gaphor
A simple XLSX/CSV reader - to dictionary converter

sheet2dict A simple XLSX/CSV reader - to dictionary converter Installing To install the package from pip, first run: python3 -m pip install --no-cache

Tomas Pytel 216 Nov 25, 2022
Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code.

drf-yasg - Yet another Swagger generator Generate real Swagger/OpenAPI 2.0 specifications from a Django Rest Framework API. Compatible with Django Res

Cristi Vรฎjdea 3k Dec 31, 2022
Use Brainf*ck with python!

Brainfudge Run Brainf*ck code with python! Classes Interpreter(array_len): encapsulate all functions into class __init__(self, array_len: int=30000) -

1 Dec 14, 2021
Data-Scrapping SEO - the project uses various data scrapping and Google autocompletes API tools to provide relevant points of different keywords so that search engines can be optimized

Data-Scrapping SEO - the project uses various data scrapping and Google autocompletes API tools to provide relevant points of different keywords so that search engines can be optimized; as this infor

Vibhav Kumar Dixit 2 Jul 18, 2022
This repository outlines deploying a local Kubeflow v1.3 instance on microk8s and deploying a simple MNIST classifier using KFServing.

Zero to Inference with Kubeflow Getting Started This repository houses all of the tools, utilities, and example pipeline implementations for exploring

Ed Henry 3 May 18, 2022
An introduction to hikari, complete with different examples for different command handlers.

An intro to hikari This repo provides some simple examples to get you started with hikari. Contained in this repo are bots designed with both the hika

Ethan Henderson 18 Nov 29, 2022
Python bindings to OpenSlide

OpenSlide Python OpenSlide Python is a Python interface to the OpenSlide library. OpenSlide is a C library that provides a simple interface for readin

OpenSlide 297 Dec 21, 2022
A Json Schema Generator

JSON Schema Generator Author : Eru Michael About A Json Schema Generator. This is a generic program that: Reads a JSON file similar to what's present

1 Nov 10, 2021
Portfolio project for Code Institute Full Stack software development course.

Comic Sales tracker This project is the third milestone project for the Code Institute Diploma in Full Stack Software Development. You can see the fin

1 Jan 10, 2022
Documentation of the QR code found on new Austrian ID cards.

Austrian ID Card QR Code This document aims to be a complete documentation of the format used in the QR area on the back of new Austrian ID cards (Per

Gabriel Huber 9 Dec 12, 2022
Pydocstringformatter - A tool to automatically format Python docstrings that tries to follow recommendations from PEP 8 and PEP 257.

Pydocstringformatter A tool to automatically format Python docstrings that tries to follow recommendations from PEP 8 and PEP 257. See What it does fo

Daniรซl van Noord 31 Dec 29, 2022
Fully reproducible, Dockerized, step-by-step, tutorial on how to mock a "real-time" Kafka data stream from a timestamped csv file. Detailed blog post published on Towards Data Science.

time-series-kafka-demo Mock stream producer for time series data using Kafka. I walk through this tutorial and others here on GitHub and on my Medium

Maria Patterson 26 Nov 15, 2022
Coursera learning course Python the basics. Programming exercises and tasks

HSE_Python_the_basics Welcome to BAsics programming Python! Youโ€™re joining thousands of learners currently enrolled in the course. I'm excited to have

PavelRyzhkov 0 Jan 05, 2022
Numpy's Sphinx extensions

numpydoc -- Numpy's Sphinx extensions This package provides the numpydoc Sphinx extension for handling docstrings formatted according to the NumPy doc

NumPy 234 Dec 26, 2022
Types that make coding in Python quick and safe.

Type[T] Types that make coding in Python quick and safe. Type[T] works best with Python 3.6 or later. Prior to 3.6, object types must use comment type

Contains 17 Aug 01, 2022
Obmovies - A short guide on setting up the system and environment dependencies required for ob's Movies database

Obmovies - A short guide on setting up the system and environment dependencies required for ob's Movies database

1 Jan 04, 2022
NoVmpy - NoVmpy with python

git clone -b dev-1 https://github.com/wallds/VTIL-Python.git cd VTIL-Python py s

263 Dec 23, 2022
Repository for tutorials, examples and starter scripts for using the MTU HPC cluster

MTU-HPC-Starter Repository for tutorials, examples and starter scripts for using the MTU HPC cluster Connecting to the MTU HPC cluster Within the coll

1 Jan 31, 2022
This programm checks your knowlege about the capital of Japan

Introduction This programm checks your knowlege about the capital of Japan. Now, what does it actually do? After you run the programm you get asked wh

1 Dec 16, 2021
My Sublime Text theme

rsms sublime text theme Install: cd path/to/your/sublime/packages git clone https://github.com/rsms/sublime-theme.git rsms-theme You'll also need the

Rasmus 166 Jan 04, 2023