Skip to content

Commit f2cb3e4

Browse files
committed
Merge branch 'develop'
2 parents 293fe19 + ebcf360 commit f2cb3e4

118 files changed

Lines changed: 92452 additions & 12151 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.appveyor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Build SocNetV for Windows x86_64 using Qt/MSVC2019 platform
22
# https://socnetv.org
3-
# Last Update: Feb 2026
3+
# Last Update: Mar 2026
44
# Copyright (c) 2026 by Dimitris Kalamaras
55
#
66
# This script builds SocNetV Windows installers ONLY on tags i.e. 3.0 or 3.0-beta*
@@ -55,7 +55,7 @@ install:
5555
- cmd: echo %APPVEYOR_REPO_COMMIT:~0,7%
5656
- cmd: echo "Setting SocNetV current version..."
5757
# NOTE: This is changed by our update version bash script
58-
- cmd: set SOCNETV_VERSION=3.3.1
58+
- cmd: set SOCNETV_VERSION=3.4
5959
- cmd: echo %SOCNETV_VERSION%
6060
- cmd: echo "Setting build type"
6161
- cmd: set BUILD_TYPE=Release

.github/workflows/build-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88
env:
99
APP_NAME: "SocNetV"
1010
UNIXNAME: "socnetv"
11-
SOCNETV_VERSION: "3.3.1" # TODO - READ FROM FILE
12-
VERSION: "3.3" # WILL BE UPDATED DYNAMICALLY BELOW
11+
SOCNETV_VERSION: "3.4" # TODO - READ FROM FILE
12+
VERSION: "3.4" # Will be overwritten by workflow with the dynamically determined version
1313
QMAKE_PROJECT: "socnetv.pro"
1414
PUBLISHER: "Dimitris Kalamaras"
1515
QT_MODULES: "qtimageformats qt5compat qtcharts qtwebview"

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Build SocNetV images for Linux and macOS
22
# https://socnetv.org
3-
# Last Update: Feb 2026
3+
# Last Update: Mar 2026
44
# Copyright (c) 2026 by Dimitris Kalamaras
55
#
66
# This script builds SocNetV binaries ONLY when the commit message contains [travis]
@@ -14,7 +14,7 @@ language: cpp
1414

1515
env:
1616
global:
17-
- SOCNETV_VERSION=3.3.1
17+
- SOCNETV_VERSION=3.4
1818
- UPLOADTOOL_ISPRERELEASE=true
1919

2020
jobs:

CHANGELOG.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,71 @@
22

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

5+
## [3.4] – March 2026
6+
7+
### New Features
8+
- Two-mode sociomatrix import: correctly handles bipartite networks in parser (#15).
9+
- Faithful Eades (1984) Spring Embedder implementation (#207).
10+
- New `layoutRandomInMemory()` replaces `layoutRandom()` in force-directed pipelines (#206).
11+
12+
### Bug Fixes
13+
- Progress dialog / Cancel (#52): comprehensive fix across all computation paths:
14+
- Wired Cancel into centrality, prestige, reachability, walks, matrix, report, layout, clique, and subgraph computations.
15+
- Fixed cancel-then-retry regression (reset canceled flag + invalidate distance cache).
16+
- Fixed stacked progress dialogs in multi-phase computations (KK layout, matrix functions).
17+
- All `write*` report functions converted to `bool` return; MW slots guarded on cancel.
18+
- All random network generators (`Erdos-Renyi`, `Small-World`, `Scale-Free`, `Regular`, `Lattice`, `Ring-Lattice`) fixed: bool return, cancel guards, progress max corrections.
19+
- Layouts:
20+
- Fixed division-by-zero, NaN/Inf and logic errors in Kamada-Kawai layout (#198).
21+
- Fixed FR simmering temperature derivation from canvas width (#199).
22+
- Batched `setNodePos` emissions in all force-directed layouts (#205, #206).
23+
- Centrality:
24+
- Fixed eigenvector centrality isolate reset and N==0 handling (#202).
25+
- Fixed Information Centrality isolate handling and degenerate cases (#201).
26+
- Fixed wrong vertex checked for `isIsolated` in `createMatrixAdjacencyInverse()` (#190).
27+
- Fixed clustering coefficient computation for directed networks (#58).
28+
- Fixed wrong weighted flag when switching relations (#82).
29+
- Parsers / IO:
30+
- Fixed Pajek `*Matrix` header parsing for relation labels (#188).
31+
- Fixed Pajek multirelational export as `*Matrix` blocks (#184).
32+
- Fixed quoted relation name normalization in Pajek headers (#185).
33+
- Fixed inline GML node/edge block parsing (#186).
34+
- Fixed arc doubling when loading undirected DOT graphs (#187).
35+
- Fixed platform-dependent `weighted=true` from uninitialized `initEdgeWeight` in DOT parser (#189).
36+
- Fixed `Graph::setDirected()` logic bugs.
37+
- Fixed lattice network edge deduplication and progress tracking.
38+
- Fixed version comparison in update-check (component-wise instead of integer).
39+
- Fixed `#133` (see commit).
40+
41+
### Refactoring (WS4 – IO/Parser)
42+
- Completed WS4: IO/Parser refactor into focused modules:
43+
- Extracted edgelist, adjacency, UCINET DL, DOT, GML, Pajek, GraphML parsers into separate files.
44+
- Introduced `IGraphParseSink` explicit mutation surface and `GraphParseSinkGraph` bridge.
45+
- Switched GUI and headless load paths to sink-backed parser mutations.
46+
- Removed legacy `Parser→Graph` signal wiring.
47+
- `Parser::load` and adjacency parser use `ParseConfig`.
48+
49+
### Toolchain / Testing
50+
- New `socnetv-cli` schema v5 `io_roundtrip` kernel for IO/parser regression protection.
51+
- Added IO roundtrip timing regression to benchmarks.
52+
- Expanded golden comparison suite with many new IO roundtrip cases and small deterministic test networks.
53+
- Added `run_io_roundtrip_shipped_datasets.sh` and `run_golden_io_roundtrip.sh` scripts.
54+
- Added UCINET FT5 io_roundtrip golden baselines.
55+
- Fixed `run_golden_compares.sh` argument parsing.
56+
- Fixed headless parser lifetime and signal race condition.
57+
58+
### i18n
59+
- Added `update_translations.sh` script; updated translation files.
60+
61+
### Build / Packaging
62+
- Debian packaging: switched to CMake build, series-aware Qt6 deps, added OpenGL/Vulkan/XKB build deps.
63+
- CMake: `.qm` files now generated via `qt_add_lrelease`.
64+
- Fixed Windows linker `/VERSION` for PE header.
65+
- Help menu now links to `socnetv.org/manual/`.
66+
67+
- Many bugfixes, see: [GitHub Issues](https://github.com/socnetv/app/issues?q=is%3Aissue%20state%3Aclosed%20milestone%3A3.4).
68+
69+
570
## [3.3] – February 2026
671

772
- Major internal refactor: `Graph` is now a façade/coordinator; functionality has been split into focused `src/graph/*` modules.

CMakeLists.txt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#
33
# CMakeLists.txt - Build configuration for SocNetV (Social Network Visualizer)
44
#
5+
# Last Update: Mar 2026
6+
#
57
# This file defines the build system for SocNetV, an open-source social network
68
# analysis and visualization application built with Qt6. It is designed to support
79
# cross-platform builds on Linux, macOS, and Windows. Below is an overview of its
@@ -53,7 +55,7 @@ set(APP_NAME SocNetV)
5355
set(APP_NAME_LOWER socnetv)
5456

5557
project(SocNetV
56-
VERSION 3.3.1
58+
VERSION 3.4
5759
DESCRIPTION "SocNetV: Open-source social network analysis application based on Qt."
5860
HOMEPAGE_URL "https://socnetv.org"
5961
LANGUAGES CXX
@@ -109,6 +111,7 @@ set(GRAPH_SOURCES
109111
src/graph/storage/graph_vertices.cpp
110112
src/graph/storage/graph_edges.cpp
111113
src/graph/io/graph_io.cpp
114+
src/graph/io/graph_parse_sink_graph.cpp
112115
src/graph/relations/graph_relations.cpp
113116
src/graph/filters/graph_edge_filters.cpp
114117
src/graph/filters/graph_node_filters.cpp
@@ -136,18 +139,30 @@ set(GRAPH_SOURCES
136139
src/graph/similarity/graph_similarity_matrices.cpp
137140
src/graph/reporting/graph_reports.cpp
138141
src/graph/reporting/graph_reports_settings.cpp
139-
142+
)
140143

144+
145+
set(PARSER_SOURCES
146+
src/parser.cpp
147+
src/parser/parser_common.cpp
148+
src/parser/parser_graphml.cpp
149+
src/parser/parser_edgelist.cpp
150+
src/parser/parser_adjacency.cpp
151+
src/parser/parser_dl.cpp
152+
src/parser/parser_dot.cpp
153+
src/parser/parser_gml.cpp
154+
src/parser/parser_pajek.cpp
141155
)
142156

143157
set(CLI_SOURCES
144158
src/tools/socnetv_cli.cpp
145159
src/tools/cli/cli_common.cpp
160+
src/tools/headless_graph_loader.cpp
146161
src/tools/cli/kernels/kernel_distance_v1.cpp
147162
src/tools/cli/kernels/kernel_reachability_v2.cpp
148163
src/tools/cli/kernels/kernel_walks_v3.cpp
149164
src/tools/cli/kernels/kernel_prominence_v4.cpp
150-
src/tools/headless_graph_loader.cpp
165+
src/tools/cli/kernels/kernel_io_roundtrip_v5.cpp
151166
)
152167

153168

@@ -182,9 +197,9 @@ set(SOURCES
182197
src/texteditor.cpp
183198
${ENGINE_SOURCES}
184199
${GRAPH_SOURCES}
200+
${PARSER_SOURCES}
185201
src/graphvertex.cpp
186202
src/matrix.cpp
187-
src/parser.cpp
188203
src/webcrawler.cpp
189204
src/chart.cpp
190205
src/graphicswidget.cpp
@@ -467,9 +482,9 @@ if(BUILD_CLI)
467482
${CLI_SOURCES}
468483
${ENGINE_SOURCES}
469484
${GRAPH_SOURCES}
485+
${PARSER_SOURCES}
470486
src/graphvertex.cpp
471487
src/matrix.cpp
472-
src/parser.cpp
473488
src/webcrawler.cpp
474489
)
475490

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
socnetv (3.4-1) unstable; urgency=medium
2+
3+
* New upstream release.
4+
5+
-- Dimitris V. Kalamaras <dimitris.kalamaras@gmail.com> Tue, 10 Mar 2026 23:29:51 +0200
6+
17
socnetv (3.3.1-1) unstable; urgency=medium
28

39
* Upstream release 3.3.1

debian/rules

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
override_dh_auto_configure:
77
dh_auto_configure -- \
88
-DCMAKE_BUILD_TYPE=Release \
9-
-DCMAKE_INSTALL_PREFIX=/usr
9+
-DCMAKE_INSTALL_PREFIX=/usr \
10+
-DBUILD_CLI=OFF

0 commit comments

Comments
 (0)