Skip to content

Commit 4c23de9

Browse files
committed
build: automate version synchronization and bump to 3.2.0
- Bump application version to 3.2.0 in the VERSION file. - Implement automatic version synchronization in the Makefile to update: - OmniDB/OmniDB/custom_settings.py - deploy/app/index.html - deploy/linux/deploy.sh - Dockerfile - Enhance macOS metadata automation in the application bundle: - Synchronize CFBundleVersion and CFBundleShortVersionString. - Replace default NW.js/Chromium copyright with custom OmniDB credits. - Fix branding in localized InfoPlist.strings files across all .lproj folders. - Update build targets to include the version number in artifact filenames.
1 parent 9b642b0 commit 4c23de9

7 files changed

Lines changed: 153 additions & 64 deletions

File tree

CHANGELOG.md

Lines changed: 118 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,134 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
## [3.1.2] - 2024-??-??
6-
7-
### Security & Dependencies
8-
- Upgraded to Django 5+ (latest 6.0.x)
9-
- Upgraded Bootstrap to 4.6.2 (resolved multiple XSS vulnerabilities)
10-
- Upgraded ACE editor to 1.43.6 (fixed unsafe dynamic method access)
11-
- Upgraded Chart.js to 2.9.4 (resolved prototype pollution vulnerability)
12-
- Upgraded FontAwesome to 5.15.4 (latest bug fixes)
13-
- Upgraded Popper.js to 1.16.1
14-
- Upgraded social-auth-app-django to 5.8.0
15-
- Updated psycopg2-binary to 2.9.12
16-
- Updated social-auth-core to 4.8.7
17-
18-
### Build System
19-
- Fixed Python 3.14 syntax warnings (escape sequences)
20-
- Refactored Makefile for better cross-platform support
21-
22-
### Code Quality
23-
- Fixed test suite (75 tests passing)
24-
- Added missing utility functions to Spartacus.Utils
25-
- Fixed deprecated setDaemon() calls
26-
27-
### UI/UX
28-
- Added new sqlserver-dark theme for SQL Server editor
29-
- Changed default editor theme to sqlserver (light), with automatic dark variant support
5+
## [3.2.0] - 2026-05-08 – The Modernization & UX Update
6+
7+
This major release introduces a complete UI/UX overhaul with macOS-inspired styling, a migration to Bootstrap 5 and AG Grid, critical dependency upgrades (including Django 6 support), and significantly improved stability for macOS users.
8+
9+
### 🎨 UI/UX & Visual Styling
10+
- **macOS Aesthetic:** Introduced a cleaner look with softer button colors, rounded corners (8px), subtle shadows, and transparency/blur effects for modals and panels.
11+
- **Improved Workspace:** Added a vertical resizable splitter between the database tree and the editor for better layout control.
12+
- **Redesigned Interface:** Fully revamped icons and their placement in the menu.
13+
- **Native Look:** Enforced native OS appearance for text inputs and improved scrollbar styling (6px subtle bars).
14+
- **Dark Mode Excellence:** Comprehensive fixes for dark mode using consistent CSS variables, themed context menus, and improved focus visibility in grids.
15+
- **Dashboard & Dialogs:** Redesigned "About" dialog and refined the aesthetics of the monitoring dashboard.
16+
17+
### 📊 Data Grid & Editor
18+
- **AG Grid Migration:** Replaced the deprecated Handsontable with **AG Grid v28**.
19+
- **AgGridAdapter:** Created a custom adapter for backwards compatibility, including a new custom context menu.
20+
- **Enhanced Sorting:** Improved numeric detection and fixed sorting inversion logic.
21+
- **ACE Editor:** Upgraded to v1.37.3 with native light/dark theme support.
22+
- **Query Editor:** Added 12px padding for better readability.
23+
24+
### 🛠️ Technical Migration & Backend
25+
- **Bootstrap 5:** Migrated from v4 to **v5.3.3**, including a jQuery shim for modal compatibility and refactored grid/utility classes.
26+
- **Django 6 Support:** Upgraded Django from 4.2 to **6.0.4**.
27+
- **Session Handling:** Added a custom `PickleSerializer` to maintain compatibility with non-JSON serializable session data in newer Django versions.
28+
- **Python 3.14 Compatibility:** Fixed various `SyntaxWarnings` related to invalid escape sequences.
29+
- **Dependency Updates:** Updated `psycopg2-binary`, `social-auth-app-django`, and `pgspecial` for better stability.
30+
31+
### 🍎 macOS Improvements
32+
- **Native Fixes:** Resolved PostgreSQL connection issues specifically occurring in bundled macOS applications.
33+
- **Security:** Properly signed macOS server native libraries.
34+
- **Bundle Stability:** Fixed app launcher environment and library rpaths for the Electron/packaged build.
35+
36+
### 📚 Documentation & Maintenance
37+
- **Performance:** Converted over 200 documentation images to **WebP**, reducing asset size by ~35%.
38+
- **CI/CD:** Added GitHub Actions workflows for automated testing, linting, and PyInstaller build checks.
39+
- **Testing:** Implemented a comprehensive test suite covering models, views, and utilities (75 tests total).
40+
- **Project Cleanup:** Removed obsolete tests, Vagrant configurations, and unused hardcoded OAuth credentials.
41+
- **SEO & AI:** Added `llms.txt` and `llms-full.txt` for better indexing and LLM-assisted development.
42+
43+
44+
## [3.1.2] - 2026-01-30 – Security & Improvements Release
45+
46+
This release focuses heavily on **security updates** for several frontend dependencies, enhanced editor theming, documentation relocation and mobile improvements, plus various build and code quality fixes.
47+
48+
### 🔒 Security & Dependencies
49+
- Upgraded **Bootstrap** to 4.6.2 (addresses multiple XSS vulnerabilities)
50+
- Upgraded **ACE editor** to 1.43.6 (fixes unsafe dynamic method access)
51+
- Upgraded **Chart.js** to 2.9.4 (resolves prototype pollution vulnerability – CVE-2020-7746)
52+
- Upgraded **FontAwesome** to 5.15.4 (latest bug fixes & improvements)
53+
- Upgraded **Popper.js** to 1.16.1 (better compatibility with updated Bootstrap)
54+
- Upgraded font **Roboto** to v3.015 (improved variable font support + bug fixes)
55+
- Upgraded font **Roboto Mono** to v3.001 (variable font support + better rendering)
56+
57+
### 🎨 UI/UX & Editor
58+
- Added new **sqlserver-dark** theme for SQL Server syntax highlighting
59+
- Changed default editor theme to **sqlserver** (light), with automatic dark variant support
60+
- Removed unminified `bootstrap.css` from static files (project cleanup)
61+
62+
### 📚 Documentation
63+
- Moved documentation to new domain **omnidb.net**
64+
- Added/enhanced landing page and overall content
3065
- Improved mobile responsive navigation
66+
- Separated JavaScript logic for better maintainability
67+
- Updated download URL
3168

32-
## [3.1.1] - 2024-02-15
69+
### 🛠️ Build & Development
70+
- Refactored **Makefile** for improved cross-platform support and build reliability
71+
- Added `chromium-args` to `package.json` (ensures panels and data persist correctly in SQLite for packaged/Electron builds)
3372

34-
### Core & Dependencies
35-
- Upgraded to Django 4.2.27 (Security & Stability)
36-
- Added compatibility for PostgreSQL 17+ (Fixed checkpoint monitoring)
37-
- Pinned social-auth-app-django to 5.4.1 for compatibility
73+
### 🌐 Website & Other
74+
- Updated OmniDB website link to **HTTPS**
75+
- Removed obsolete sponsor information
76+
- Added **FUNDING.yml** file
3877

39-
### UI/UX
40-
- Fixed CSS padding to correctly center the "tab" button
78+
### 🧹 Code Quality & Maintenance
79+
- Replaced hardcoded asset versioning with dynamic variable
80+
- Improved code formatting and added missing copyright notices
4181

42-
### Documentation
43-
- Modernized CSS with support for mobile devices and dark mode
4482

45-
### Build System
46-
- Updated Makefile to automatically install dependencies
83+
## [3.1.1] - 2026-01-22 – Maintenance & Compatibility Release
4784

48-
## [3.1.0] - 2023-10-15
85+
This is a smaller follow-up release to 3.1.0, focusing on security updates, PostgreSQL 17 support, documentation improvements and build process convenience.
4986

50-
### UI/UX
51-
- Consolidated light/dark theme logic to respect OS preferences automatically
52-
- Removed manual theme selection from settings
53-
- Improved appearance and responsiveness on MacOS
87+
### 🔒 Core & Dependencies
88+
* Upgraded to **Django 4.2.27** (security & stability patches)
89+
* Added compatibility with **PostgreSQL 17+** (fixed checkpoint monitoring)
90+
* Pinned `social-auth-app-django` to **5.4.1** (restores working OAuth flows)
5491

55-
### Build System
56-
- Added MacOS Silicon build support
57-
- Consolidated build output directory structure
92+
### 🎨 UI/UX Fixes
93+
* Fixed CSS padding – **tab button** is now properly centered
5894

59-
### Documentation
60-
- Added comprehensive HTML documentation
95+
### 📚 Documentation
96+
* Modernized CSS
97+
* Responsive design & good mobile readability
98+
* Full dark mode support (syncs with system preference)
99+
100+
### 🛠️ Build System
101+
* Updated Makefile – **automatically installs dependencies**
102+
(`pip install -r requirements.txt` is now called from make targets)
103+
104+
105+
## [3.1.0] - 2026-01-16 - Apple Silicon Support, Auto-Theming & Enhanced macOS Build
106+
107+
This release marks a significant update to version 3.1.0, introducing native Apple Silicon support, automatic theme switching, comprehensive documentation, and a completely overhauled build system for macOS.
108+
109+
### 🎨 UI/UX Improvements
110+
* **Automatic Theme Switching:** Removed the manual theme selector. The application now automatically adapts to the OS system theme (Light/Dark mode).
111+
* **Responsive Design:** Improved responsiveness and integration, specifically optimized for macOS environments.
112+
* **Layout Refactoring:** Refactored layout panels for a cleaner interface.
113+
114+
### 🍎 macOS & Build System Overhaul
115+
* **Native Apple Silicon Support:** The build is now based on NW.js `v0.107.0` (arm64), ensuring native performance on M1/M2/M3 chips.
116+
* **Refactored Makefile:**
117+
* **Zero-Config Build:** Automatically downloads and caches NW.js dependencies (no manual setup required).
118+
* **Branding:** Fixed application identity. The app now properly displays as **OmniDB** (instead of "nwjs") in the menu bar and uses the correct icon.
119+
* **Bundle ID:** Set unique Bundle Identifier (`cz.80.omnidb`) to resolve keychain conflicts.
120+
* **Ad-Hoc Signing:** Implemented ad-hoc signing and quarantine removal to fix persistent "Safe Storage" permission prompts.
121+
* **Distribution:** Added `make dist` target to automatically package the app into a ZIP file.
122+
123+
### 📚 Documentation
124+
* **New HTML Documentation:** Added a comprehensive suite of HTML documentation.
125+
* **Updated Guides:** Installation and feature guides have been updated to reflect v3.1.0 changes.
126+
127+
### 🔧 Under the Hood
128+
* **Dependencies Updated:**
129+
* jQuery upgraded to `3.7.1`.
130+
* Chart.js upgraded to `2.7.3`.
131+
* **Code Quality:** General code cleanup and formatting across backend and frontend.
61132

62-
### Libraries
63-
- Updated jQuery to 3.7.1
64-
- Updated Chart.js to 2.7.3
65133

66134
## [3.0.3] - 2023-05-10
67135

@@ -89,4 +157,4 @@ All notable changes to this project will be documented in this file.
89157
- Switched from Websocket to Long Polling
90158
- Better connection pooling
91159
- NW.js instead of Electron
92-
- Enhanced shortcuts per OS
160+
- Enhanced shortcuts per OS

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM python:latest
22

33
LABEL maintainer="OmniDB team"
44

5-
ARG OMNIDB_VERSION=3.1.2
5+
ARG OMNIDB_VERSION=3.2.0
66

77
SHELL ["/bin/bash", "-c"]
88

Makefile

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ SERVER_DIR = OmniDB
77
BUNDLE_ID = net.omnidb
88
APP_DISPLAY_NAME = OmniDB
99
NWJS_VERSION = v0.111.0
10+
VERSION := $(shell cat VERSION | tr -d '\n')
1011

1112
# --- Platform Defaults (can be overridden by targets) ---
1213
NWJS_ARCH = osx-arm64
@@ -29,7 +30,7 @@ NWJS_ZIP = ${NWJS_FILENAME}${NWJS_EXT}
2930
NWJS_URL = https://dl.nwjs.io/${NWJS_VERSION}/${NWJS_ZIP}
3031

3132
# --- Phony Targets ---
32-
.PHONY: help all clean clean-deps install-deps \
33+
.PHONY: help all clean clean-deps install-deps _sync_version \
3334
build-mac-arm64 build-mac-intel build-linux build-win \
3435
_prepare_dirs _download_nwjs _build_server _bundle_mac _bundle_linux _bundle_win
3536

@@ -99,8 +100,17 @@ build-win:
99100

100101
# --- Internal Build Steps ---
101102

103+
# 0. Sync version from VERSION file
104+
_sync_version:
105+
@echo "Syncing version $(VERSION) to all files..."
106+
$(SED_CMD) "s/OMNIDB_VERSION = 'OmniDB .*'/OMNIDB_VERSION = 'OmniDB $(VERSION)'/g" $(SERVER_DIR)/OmniDB/custom_settings.py
107+
$(SED_CMD) "s/OMNIDB_SHORT_VERSION = '.*'/OMNIDB_SHORT_VERSION = '$(VERSION)'/g" $(SERVER_DIR)/OmniDB/custom_settings.py
108+
$(SED_CMD) "s/<small>v.*<\/small>/<small>v$(VERSION)<\/small>/g" deploy/app/index.html
109+
$(SED_CMD) 's/VERSION=".*"/VERSION="$(VERSION)"/g' deploy/linux/deploy.sh
110+
$(SED_CMD) 's/ARG OMNIDB_VERSION=.*/ARG OMNIDB_VERSION=$(VERSION)/g' Dockerfile
111+
102112
# 1. Common preparation
103-
_prepare_dirs:
113+
_prepare_dirs: _sync_version
104114
@echo "Cleaning previous builds..."
105115
rm -rf $(BUILD_DIR) $(WORK_DIR)
106116
rm -rf $(SERVER_DIR)/build $(SERVER_DIR)/dist
@@ -148,6 +158,16 @@ _build_mac: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
148158
$(SED_CMD) 's/nwjs/$(APP_DISPLAY_NAME)/g' "$(APP_CONTENT)/Info.plist"
149159
mv "$(APP_MACOS)/nwjs" "$(APP_MACOS)/$(APP_DISPLAY_NAME)"
150160

161+
@echo "Updating macOS metadata..."
162+
plutil -replace CFBundleShortVersionString -string "$(VERSION)" "$(APP_CONTENT)/Info.plist"
163+
plutil -replace CFBundleVersion -string "$(VERSION)" "$(APP_CONTENT)/Info.plist"
164+
plutil -replace NSHumanReadableCopyright -string "$$(printf "Portions Copyright (c) 2015-2026, The OmniDB Team\nPortions Copyright (c) 2017-2026, 2ndQuadrant Limited\nPortions Copyright (c) 2025-2026, Zbyněk Vanžura")" "$(APP_CONTENT)/Info.plist"
165+
166+
@echo "Updating localized metadata..."
167+
find "$(BUILD_DIR)/$(APP_NAME).app" -name "InfoPlist.strings" -exec plutil -convert xml1 {} \;
168+
find "$(BUILD_DIR)/$(APP_NAME).app" -name "InfoPlist.strings" -exec plutil -replace NSHumanReadableCopyright -string "$$(printf "Portions Copyright (c) 2015-2026, The OmniDB Team\nPortions Copyright (c) 2017-2026, 2ndQuadrant Limited\nPortions Copyright (c) 2025-2026, Zbyněk Vanžura")" {} \;
169+
find "$(BUILD_DIR)/$(APP_NAME).app" -name "InfoPlist.strings" -exec plutil -replace CFBundleGetInfoString -string "OmniDB $(VERSION), Portions Copyright (c) 2015-2026" {} \;
170+
151171
@echo "Copying web app..."
152172
rm -rf $(APP_RESOURCES)/app.nw/*
153173
mkdir -p $(APP_RESOURCES)/app.nw
@@ -172,8 +192,8 @@ _build_mac: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
172192

173193
@echo "Packaging Mac Dist..."
174194
mkdir -p $(BUILD_DIR)/dist
175-
cd $(BUILD_DIR) && zip -ry dist/OmniDB-macOS-$(NWJS_ARCH).zip $(APP_NAME).app
176-
@echo "Done: $(BUILD_DIR)/dist/OmniDB-macOS-$(NWJS_ARCH).zip"
195+
cd $(BUILD_DIR) && zip -ry dist/OmniDB-$(VERSION)-macOS-$(NWJS_ARCH).zip $(APP_NAME).app
196+
@echo "Done: $(BUILD_DIR)/dist/OmniDB-$(VERSION)-macOS-$(NWJS_ARCH).zip"
177197

178198
# --- LINUX BUILD LOGIC ---
179199
_build_linux: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
@@ -198,8 +218,8 @@ _build_linux: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
198218

199219
@echo "Packaging Linux Dist..."
200220
mkdir -p $(BUILD_DIR)/dist
201-
cd $(BUILD_DIR) && tar -czf dist/OmniDB-linux-x64.tar.gz $(APP_NAME)-linux
202-
@echo "Done: $(BUILD_DIR)/dist/OmniDB-linux-x64.tar.gz"
221+
cd $(BUILD_DIR) && tar -czf dist/OmniDB-$(VERSION)-linux-x64.tar.gz $(APP_NAME)-linux
222+
@echo "Done: $(BUILD_DIR)/dist/OmniDB-$(VERSION)-linux-x64.tar.gz"
203223

204224
# --- WINDOWS BUILD LOGIC ---
205225
_build_win: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
@@ -225,5 +245,5 @@ _build_win: _prepare_dirs $(DEPS_DIR)/$(NWJS_ZIP)
225245

226246
@echo "Packaging Windows Dist..."
227247
mkdir -p $(BUILD_DIR)/dist
228-
cd $(BUILD_DIR) && zip -r dist/OmniDB-win-x64.zip $(APP_NAME)-win
229-
@echo "Done: $(BUILD_DIR)/dist/OmniDB-win-x64.zip"
248+
cd $(BUILD_DIR) && zip -r dist/OmniDB-$(VERSION)-win-x64.zip $(APP_NAME)-win
249+
@echo "Done: $(BUILD_DIR)/dist/OmniDB-$(VERSION)-win-x64.zip"

OmniDB/OmniDB/custom_settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import os
22

33
# OmniDB settings
4-
OMNIDB_VERSION = 'OmniDB 3.1.2'
5-
OMNIDB_SHORT_VERSION = '3.1.2'
4+
OMNIDB_VERSION = 'OmniDB 3.2.0'
5+
OMNIDB_SHORT_VERSION = '3.2.0'
66
DEV_MODE = True
77
DESKTOP_MODE = False
88
APP_TOKEN = None

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.2.0

deploy/app/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@
447447
</g>
448448
</svg>
449449
<div class="omnidb__login__version">
450-
<small>v3.1.2</small>
450+
<small>v3.2.0</small>
451451
</div>
452452
</div>
453453

deploy/linux/deploy.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

3-
docker run -e VERSION="3.1.2" -v $PWD:/tmp --rm omnidb/tarbuild
4-
docker run -e VERSION="3.1.2" -v $PWD:/tmp --rm omnidb/pkgbuild
3+
docker run -e VERSION="3.2.0" -v $PWD:/tmp --rm omnidb/tarbuild
4+
docker run -e VERSION="3.2.0" -v $PWD:/tmp --rm omnidb/pkgbuild
55

66
sudo chown $USER:$USER *.tar.gz
77
sudo chown $USER:$USER *.deb

0 commit comments

Comments
 (0)