Skip to content

Latest commit

 

History

History
34 lines (19 loc) · 6.48 KB

RELEASENOTES.md

File metadata and controls

34 lines (19 loc) · 6.48 KB

v1.0.0

Release date: February 1, 2023
Changes since: v0.9.4

Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0. This way, at the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

The journey was really long, full of challenges that almost made me give up everything, but with the support from lots of people around the world, here we're, launching the long-awaited stable version of pgModeler 1.0.0! Since the early days of this project, seventeen years ago, I was anxious about this moment. This tool is the result of a dream of creating something really useful for the open-source community that I admire so much. I can't express in words how proud and joyful I'm about my hard work and the thousands of people that helped me so far. Thank you wholeheartedly to each one that reserved a bit of their time to make a contribution to this project. Your inestimable help was extremely important to keep this project alive and I hope to keep receiving all support needed to take pgModeler to levels even higher in the future!

In resume, the development of pgModeler 1.0.0 took exactly, 398 days and 649 commits producing a total of 435 changes between new features, bug fixes, and improvements. In the UI, some parts were redesigned, new icons were created, and the long-requested dark theme support was added. In the code generation, the PostgreSQL 9.x support was dropped while PostgreSQL 15 was added. Also, the codebase was fully ported to Qt 6 and now pgModeler can take advantage of all improvements introduced by the framework. There were, of course, a bunch of bug fixes in practicaly all parts of the tool but the majority was applied to the reverse engineering and diff processes. Below, are some key changes that is worth to detail:

UI improvements: this was the main goal for pgModeler 1.0, and now it brings a responsive UI, which means, that it will adapt the widget sizes and icons according to the screen's resolution. Also, we now have support for color themes which can be toggled on-the-fly in the appearance settings. Still in the responsiveness subject and using the Qt 6 improved high DPI screens support, pgModeler allows the use of custom UI scale factors that adjust the entire user-interface rendering depending on the screen that the tool is running.

New CSV parser: the CSV parsing routine was rewritten based on RFC 4180 which describes the CSV file in detail. That makes CSV files loading in pgModeler a little bit faster as well as more reliable since it's now capable of parsing files generated by third-party software more easily, improving the interoperability between the tools, and, consequently, the users' productivity.

Improved design: in the design view, the magnifier tool received a dedicated action in the top actions bar which can be triggered with F9 when the zoom factor is less than 100%. The magnifier tool has been improved too and now allows better object interaction. Unlike previous versions, this tool now lets the user interact with multiple objects which helps to handle large models where the visualization is impaired and the magnifier tool comes as a good way to handle objects.

Another important enhancement in the design is that the columns/constraints propagation mechanism was completely rewritten which resulted in a noticeable performance gain and now solves an old problem of objects created by identifier relationships not being added or even disappearing in certain circumstances.

The model printing operation was also improved in such a way that is now possible to print models with a scale factor, this way, it's possible to print an entire model on a single page, something that was not possible previously.

Miscellaneous changes: the data dictionary now displays information related to indexes, triggers, and sequences used in the tables, making the generated file much more complete from the documental point of view.

Another improvement was the ability to generate split SQL code in the command line interface which allows generating the objects' SQL in separate files. Furthermore, it is now possible to add to the generated SQL files the code of objects that are dependencies or children of the original object.

New plug-in development interface: the pgModeler's plug-in interface was completely redesigned being now more organized allowing developers to create custom features more easily without necessarily changing the core code. As a proof of concept for the new plug-in interface, three new plug-ins were developed and they expand the overall productivity and reliability of the tool. They are exclusive features for the paid version of the tool and come as a reward for the recognition given by financial supporters all these years. Of course, plug-ins for the open-source version of the tool will be developed in the near future. For now, these are the available plug-ins:

  • Quick object edit plug-in: this plug-in allows one to search for the desired object and start editing it in the related dialog. This is a well-known feature on many IDEs and now arrives in pgModeler to improve the user experience. The quick edit can be triggered using Ctrl+1 on the design view.

  • Split database model file plug-in: this plug-in introduces a new file format to store database models called split database model (.sdbm). It was designed to improve the version control of model files by saving the XML code of the objects in individual files. This way, it is easier to track the changes made in each database object when the model is handled by different people in a team. In future improvements for this plug-in, a git integration will be added so the user doesn't need to use external tools to commit changes in the model.

  • SSH tunnel plug-in: this plug-in brings to pgModeler another long-requested feature, the SSH tunnel. This feature allows one to connect to a database server by encrypting the data transferred between the client and server using the OpenSSH application without the need to expose the PostgreSQL server to the internet or even use an SSL certificate. It is sufficient to have the ability to log in via SSH in the database server to use the tunnel.

Finally, for more details about all changes in the release, please, read the CHANGELOG.md file. For less technical details of the new features in pgModeler 1.0.0, please, visit our blog.