Changelog#
Changelog#
All notable changes to SYMFLUENCE are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]#
Added#
The SYMFLUENCE agent interface (
symfluence agent): hands off to an installed coding-agent CLI (Claude Code, Codex, Gemini, …) primed as the SYMFLUENCE agent through four provider-agnostic layers, each wired through whatever mechanism the CLI declares in the launcher registry: (1) the packaged skills; (2) an identity block with live project context (detected configs, domain directories) and operating house rules, delivered via the CLI’s system-prompt flag or theAGENTS.mdpreamble; (3) a dependency-free MCP server (symfluence agent mcp); (4) packaged specialist subagents (calibration-debugger,platform-scout).Agent modes (
symfluence agent model/symfluence agent code): two first-class session modes, each a frozenModeProfile(agent/modes.py) that shapes priming end to end. Modelling primes the operational skills (explore-platform,run-workflow-locally,debug-calibration), both subagents, modelling house rules (never edit platform source; drive everything through the workflow/MCP tools; report in hydrological terms), and a headless tool allowlist for the native chat. Coding keeps the full skill set and the host CLI’s own permissions. Baresymfluence agentopens the TUI agent screen;agent doctordiagnoses the setup per mode (with--json);agent mcp --modeserves one mode’s tool profile; skills materialize per-mode and copy whole skill directories.MCP background jobs and platform-inspection tools: the agent MCP server exposes 15 tools.
start_workflow_job/get_job_status/cancel_job/list_jobsrun workflow executions as detached background jobs (a stdlib wrapper records the exit code durably; records and logs live in the agent cache; cancellation signals the process group), so a chat session can start an hours-long calibration without blocking the MCP connection.read_run_log,list_domains,calibration_status,get_results_summary,get_plot_paths, andcompare_experimentsanswer the modelling questions (log tails, domain inventory, calibration progress, headline KGE/NSE metrics, figures, cross-experiment ranking) by reading thedomain_*tree directly with stdlib CSV parsing.update_configis the one writer: a line-preserving edit of the user’s experiment YAML that must pass typedSymfluenceConfigvalidation and backs the original up first.Agent home screen with a suspend round-trip: a minimal Agent home in the TUI (mode
7) — two mode cards (Model / Code) over two dim context lines (detected config with a cycle key, runtime readiness); diagnostics behind addetails modal. Starting a coding session round-trips: the TUI suspends, the primed coding-agent CLI runs full-screen in the same terminal, and the home screen returns when it exits. Terminals that cannot suspend fall back to the classicAgentHandoffexec after the TUI exits (--direct, a one-shot prompt, no TTY, or a missing TUI extra hand off immediately).Native modelling chat:
symfluence agent modelin the TUI opens a SYMFLUENCE-native chat screen driving headless Claude Code over its stream-JSON protocol — one bounded subprocess per turn, resumed via Claude Code’s own session store (agent/headless.py: tolerant NDJSON parser → typed events; session ids persisted per project+mode). Assistant prose streams into the conversation; tool invocations render as compact expandable cards (never raw JSON); a run sidebar polls the domain tree and background-job records independently of the agent, so an hours-long calibration keeps ticking on screen.escinterrupts a turn,ctrl+eexports the conversation as Markdown, and each turn’s footer shows duration, cost, and the running session total. Codex/Gemini (or a failed stream) fall back to the suspend round-trip with modelling priming. Stdlib-only driver; no new dependencies.Interactive permission approvals in the modelling chat: tools outside the modelling allowlist route through a hidden
approve_actionpermission-prompt bridge (agent/approvals.py) — the MCP server blocks, the chat pops an allow/deny modal, and no reply is a denial. Outside the chat the same tools stay hard-denied. ADR-0004 rewritten for the current architecture (human-in-the-loop at the layer that executes actions).MESH multi-GRU preprocessing fixes and elevation-band precip correction: GRU-dependent hydrology parameters (ZSNL/ZPLS/ZPLG/…) expand to one value per GRU so multi-GRU domains initialize; new forcing keys
MESH_PRECIP_LAPSE_RATE(orographic gradient for elevation-banded forcing) andMESH_PRECIP_MULTIPLIER(uniform gauge-undercatch correction), both defaulting to no-op;SKIP_WARM_STARTdocumented as defaulting to true so calibrations are reproducible regardless of machine history.
Changed#
Logging-protocol overhaul (ADR-0005 enforcement, from an audit of the paper-run log corpus where WARNING+ERROR lines outnumbered INFO 1.85:1):
One shared protocol module (
core/logging_utils.py): canonical file format (~46% smaller lines:TIME LEVEL [logger] message, filenamesymfluence_{domain}_{experiment_id}_{ts}.log),log_oncede-duplicated emission, a single third-party suppression table, and oneget_worker_loggerbootstrap replacing four bespoke worker setups.Milestone-level INFO everywhere: per-item/per-chunk loops now emit one summary line with per-item detail at DEBUG (an ERA5 96-chunk resume drops from ~190 INFO lines to 3); hot-loop conditions that produced tens of thousands of repeated WARNING/ERROR lines emit once and demote to DEBUG; external-model stdout goes to sidecar files referenced by one log line.
Comparable calibration progress: every optimizer emits the fixed schema
{ALG} {i}/{max} {unit} ({pct}%) | Best | Improved | Crashes | Elapsedwith explicit units (evals/gens/epochs/loops) and[P##]worker tags; GLUE and NSGA-II now stream progress.Honest run reporting:
✗ Failedcompletions on failed steps, failure-aware workflow end block,run_summary.jsonschema v2 with error/warning totals counted from actual log records, per-step status+duration aligned with the run manifest.Global
--quiet/-qflag (console WARNING+; file log unaffected);--debugunchanged and dominant.setup_loggingis idempotent per (domain, experiment id) — re-use no longer re-opens a new log file per facade construction.
Agent verb consolidation:
agent launchis deprecated (alias foragent code, to be removed after one release); the already-deprecatedagent start/agent runand theagent list/agent skillsverbs are removed (agent doctorcovers the last two).
Fixed#
Stale plugins no longer vanish silently: a plugin whose
register()fails on SYMFLUENCE API drift (e.g. importing a removed alias) now logs a WARNING naming the incompatible package instead of disappearing from the registry at DEBUG level; a worker-contract test sweep (AST-resolved method calls on every in-repo worker class) guards against the API-drift class of calibration-voiding AttributeErrors observed in the paper-run logs.Review follow-ups to the agent interface and CLI option handling (#300, #299):
--dry-run binary <tool>now previews instead of executing; global option normalization no longer steals host-CLI flags from agent-session pass-through (structure-aware boundary at REMAINDER subcommands, option names derived from a single spec); the MCP server survives non-object JSON-RPC input and bounds subprocess output via a temp file; the agent screen forwards--pass-through args and validates the preselected runtime; priming failures degrade with visible warnings and the launch card only claims layers that actually activated (a SYMFLUENCE-generatedAGENTS.mdis refreshed, a user-authored one is reported as blocking injection); frontmatter parsing consolidated intoresources.parse_frontmatter.
[0.9.2] - 2026-07-07#
Archival release accompanying the SYMFLUENCE paper series (“Out-standing in Every Field”, “The Registry as Social Contract”, “From Configuration to Prediction”; Eythorsson et al., 2026, Water Resources Research, submitted). First release archived on Zenodo via the GitHub integration.
Added#
Citation metadata:
CITATION.cff(GitHub “Cite this repository”) and.zenodo.json(Zenodo deposit metadata) with the full author list and ORCIDs (#269).Guard test validating every shipped paper calibration config against the strict config schema.
Changed#
Paper supplementary configs trimmed to the final manuscript (#268): removed the four cut experiments (decision ensemble, sensitivity analysis, large-sample and large-domain Iceland calibration), reduced the forcing ensemble to the four reported products (ERA5, RDRS, AORC, CONUS404), and kept only the 130 fixed-seed (42) calibration combinations the paper reports; all READMEs updated to the manuscript’s section and figure numbering.
Fixed#
Shipped calibration configs for the five JAX-native models (HBV, HEC-HMS, SAC-SMA, TOPMODEL, Xinanjiang) failed strict validation due to stale keys from older plugin schemas (
initial_params; HBV alsosmoothing,smoothing_factor) and could not be loaded; the stale keys are removed (85 configs).Paper-config seed guard repointed after the #268 trim removed the config it loaded (#270).
[0.9.1] - 2026-06-14#
Note: Versions 0.8.0–0.9.0 were tagged and published without CHANGELOG entries. This section documents the changes since the v0.9.0 release; the 0.8.x/0.9.0 history is not reconstructed here.
Added#
Canonical forcing contract (CFIF): a single canonical forcing reader keyed to CF standard names (CFIF) that model preprocessors consume through one path, with automatic resampling of the source to each model’s cadence. Adopted by SWAT, Wflow, IGNACIO, LISFLOOD, CWatM, PCR-GLOBWB, RHESSys, CLM-ParFlow, and mHM.
Model-ready data store for attributes and observations: new attributes reader plus observation/streamflow loaders that source from the model-ready store. SUMMA soil/land class and HYPE GeoData (soil/land/elevation) now read from the store;
StreamflowMetricsand the remaining calibration loaders are routed through it.Windows binary builds for many models — WATFLOOD (bundled Waterloo CHARM prebuilt), ParFlow, CLM-ParFlow, PRMS, VIC, PIHM, mHM, WRF-Hydro, and glacier — via MinGW/MSYS2 POSIX shims and CMake/NetCDF wiring.
WATFLOOD: full Unix and Windows source builds; CHARM runs on the datastore; parallel-calibration plumbing.
GSFLOW: datastore-driven inputs and a distributed-groundwater option.
mHM: CARRA forcing support and distributed-morphology (MPR) mode.
WATFLOOD and GSFLOW standalone postprocessors registered.
Changed#
Agent interface simplified to a launcher.
symfluence agent launchnow hands off to an installed coding-agent CLI (Claude Code, Codex, Gemini, …), primed with the SYMFLUENCE skills, instead of running a bespoke in-house LLM agent. It detects the CLI onPATHand uses whichever API key is set (ANTHROPIC_API_KEY/OPENAI_API_KEY/GEMINI_API_KEY); override withSYMFLUENCE_AGENT_CLI, skip skill materialization withSYMFLUENCE_NO_SKILLS. The skills now ship inside the package. (net ~ −7,000 LOC)Config schema canonicalization (toward 1.0): promoted data-handler, HYPE/NGEN/FUSE/GR/mizuRoute/path, multi-gauge, optimizer/evaluator, and parameter-bounds flat keys to typed Pydantic fields;
RECOGNIZED_FLAT_KEYSis now closed; thestateanddata_assimilationsections are wired into the flat-key transform; IGNACIO/GNN/LSTM schemas reconciled with the registered ones. Strict config-key validation is enforced and dogfooded on shipped configs.Documentation: root
ARCHITECTURE.mdat-a-glance, an ADR practice with the initial ADR set, and a threat model (docs/security.md).Evaluation: unified catchment-area resolution between trial and final-eval metrics (resolves the FUSE final-eval KGE divergence).
Performance: RTI review item 20 hot-spots — rasterio hoist, Julian-date vectorization, coastal-partition rewrite — plus a CLI performance gate.
Core layering restored: no
core→ upper-layer imports (RTI item 19).
Fixed#
Data acquisition: MERIT-Basins region table and dead-host download; Daymet gridded OPeNDAP route (descending y, DAP2); HRRR LCC-grid windowing; CERRA longwave variable name; NEX-GDDP-CMIP6 synthetic-airpres survival and hardening; DEM merge pixel-grid snap; MSWEP remote path and default version; SMHI skip-if-raw-exists guard; EM-Earth S3 handler (403 visibility, credentials, month window); WSC GeoMet paging corruption and NLDAS-2 v2.0 variable names; USGS NWIS gauge-local → UTC timestamps; GRACE atomic
.partdownloads.HYPE: clone over
https://with retry, replacing the deprecatedgit://SourceForge transport that intermittently broke nightly and release builds.CLM build: NetCDF library symlinks for PIO (Debian multiarch), git
safe.directoryre-assert after HOME change,mpi-serialpin, and PerlXML::LibXMLinstall.Hardcoded
*3600hourly-conversion bugs in the Wflow and IGNACIO forcing paths.Windows builds: WATFLOOD DLL staging, PIHM
timegmguard, ParFlowmkdir/path compatibility, PRMS NetCDF path quoting andgnu17, VIC version macros, mHM NetCDF detection, and WRF-Hydro checkout.Glacier: earthaccess auth for NSIDC, RGI region-name transform, and coldstart fixes.
PRMS: resilience-handler tracebacks (
exc_info=True) and HRU parameters driven from the datastore.SWAT preprocessor registered via
core.registries.Rto avoid a circular import.
Removed#
Deprecated
register*decorator registry API — registration is now R-facade only. (breaking)Deprecated
*Postprocessorspelling aliases — use*PostProcessor. (breaking; external plugins must update)HYDROGEOSPHERE model stub. (breaking)
The CalMIP example stub.
DPE (differentiable PE) and other dead/external config keys; shipped configs curated accordingly.
The bespoke in-house LLM agent (
symfluence.agentinternals) and the optional[llm]/openaidependency — replaced by the launcher above.symfluence agent start/runare deprecated aliases forlaunch. (breaking: the agent now requires an external coding-agent CLI)
CI / Release#
release-binaries: build MODFLOW 6 from source on Linux, build ngen on Linux/macOS, skip CLM on Windows (ESMF/CIME on MinGW unsupported), close presence-check holes and surface failed optional builds, and don’t clobber the latest release on a taglessworkflow_dispatch.Strict config-key validation dogfooded on shipped configs (kept out of the lint job, which has no
symfluenceinstall).Require the
PostProcessor-spelling plugin releases.
[0.7.1] - 2026-03-01#
Fixed#
HPC file-locking workaround: Added tempfile fallback (attempt 4) to ERA5 NetCDF writer for parallel filesystems (Lustre/GPFS/BeeGFS) where HDF5
fcntl()locking fails even withHDF5_USE_FILE_LOCKING=FALSE. Writes to$TMPDIRfirst, then moves the file to the target path.mizuRoute Makefile build: Collapse multi-line
LIBNETCDFbefore appending RPATH flags to avoid breaking backslash continuation (caused “missing separator” errors on CI).ngen linker (expat): Detect system UDUNITS2 via
pkg-config/ldconfig(not just explicit env var) so-lexpatis added for XML symbol resolution.Wflow calibration: Fix snow parameters, routing, and unit conversion issues. Add Oudin PET, log-transform bounds, and sub-daily resampling support.
FUSE preprocessing: Make streamflow observations optional.
MPI launcher: Add fallback when preferred launcher fails; prefer
mpirunoversrunfor launcher detection.
Added#
SPDX license headers on all source files.
Coverage tracking in cross-platform CI workflow.
Unit tests for NGEN, JFUSE, HYPE model runners and configs.
Unit tests for core modules (file_utils, validation, path_resolver).
Unit tests for
_safe_to_netcdffallback chain.WATFLOOD: Expand calibration to 16 parameters with tests.
Bow River preset and default
DEM_SOURCEto Copernicus.Config-hash stage invalidation for workflow orchestrator.
[0.7.0] - 2026-02-10#
Note: This release jumps from the last tagged release v0.5.2 directly to v0.7.0. Versions 0.5.3–0.6.0 were development milestones on the
developbranch and were never tagged or published tomain. Their changes are included in this release and documented below in the [0.6.0] and [0.5.x] sections for historical reference.
Breaking Change: This release refactors the CLI to a subcommand architecture. All existing CLI commands will need to be updated.
Added#
New CLI Commands
symfluence gui launch- Panel-based web GUI for workflow managementsymfluence data download|list|info- Standalone dataset acquisition without a full project--shapefileoption forsymfluence data downloadto derive bounding box from a shapefile
Documentation Improvements
New CFuse model guide (experimental differentiable PyTorch-based FUSE)
New JFuse model guide (experimental JAX-based FUSE with gradient support)
New WM-Fire model guide (wildfire spread simulation with RHESSys)
Comprehensive CLI reference documentation with all commands and options
Expanded configuration parameter reference
Fixed Python API examples in calibration documentation
New testing guide for contributors with pytest patterns and CI integration
Added agent-assisted contribution workflow documentation
Agent Improvements
Enhanced
show_staged_changeswith diff statistics and file summaryImproved
generate_pr_descriptionwith auto-detection of modified filesBetter PR descriptions with context-specific sections and testing checklists
Added documentation for fuzzy matching threshold parameter
HBV Module Refactoring
New
losses.pymodule with differentiable NSE/KGE loss functions and gradient utilitiesNew
parameters.pymodule with parameter bounds, defaults, and scaling utilitiesLazy imports in
__init__.pyfor optional JAX dependencyReduced
model.pyby ~650 lines through modularization
HBV Parameter Regionalization
Neural transfer functions for spatially-varying parameter estimation
Support for catchment attribute-based parameter prediction
HBV Calibration Improvements
Hydrograph signature metrics for multi-objective calibration
Enhanced optimizer with adaptive learning rates
New modular command structure in
src/symfluence/cli/:argument_parser.py- Main parser with subcommand structurevalidators.py- Validation utilitiescommands/directory with category-specific handlers
Changed#
Complete CLI Refactor
Replaced flat flag-based interface with modern two-level subcommand architecture
New structure:
symfluence <category> <action>instead ofsymfluence --flag9 command categories: workflow, project, binary, config, job, example, agent, gui, data
Eliminated complex mode detection logic
Archived old
cli_argument_manager.pyfor reference
New CLI Structure
# Workflow commands symfluence workflow run [--config CONFIG] symfluence workflow step STEP_NAME symfluence workflow list-steps symfluence workflow status # Project commands symfluence project init [PRESET] symfluence project pour-point LAT/LON --domain-name NAME --definition METHOD symfluence project list-presets # Binary/tool commands symfluence binary install [TOOL...] symfluence binary validate symfluence binary doctor # Configuration commands symfluence config validate symfluence config validate-env symfluence config list-templates # Job commands symfluence job submit [WORKFLOW_CMD] [SLURM_OPTIONS] # Example commands symfluence example launch EXAMPLE_ID symfluence example list # Agent commands symfluence agent start symfluence agent run PROMPT # GUI commands symfluence gui launch # Data commands symfluence data download DATASET --bbox W S E N symfluence data list symfluence data info DATASET
HBV Sub-Daily Parameter Scaling
Implemented exact exponential scaling for recession coefficients (K0, K1, K2)
Formula:
k_sub = 1 - (1 - k_daily)^(dt/24)replaces linear approximationEliminates ~5-13% error in recession behavior at sub-daily timesteps
Flux rate parameters (CFMAX, PERC) continue to use linear scaling
Added
FLUX_RATE_PARAMSandRECESSION_PARAMSconstants
MESH Preprocessing Consolidation
Moved configuration defaults to dedicated
config_defaults.pyStreamlined
config_generator.pyandmeshflow_manager.pyExpanded
parameter_fixer.pywith robust parameter handlingUpdated NALCMS to CLASS land cover mapping (wetland, snow/ice corrections)
Added unit conversion utilities for forcing data
Improved logging (replaced debug prints with proper logger calls)
FLUXCOM ET Acquisition Rework
Replaced stub ICOS downloader with fully functional
_download_from_icos()using ICOS Carbon Portal metadata APISmart variable matching (exact name, then substring, then fallback)
Automatic unit conversion (W/m2, mm/hr, mm/day)
Nearest-neighbor fallback for basins smaller than the grid cell
MODIS ET Acquisition Improvements
Spatial subsetting via sinusoidal projection for large tiles with small domains
Improved special-value masking (all MODIS QC codes, not just fill value)
SDS name matching now tries exact match before substring search
Reporting Module Cleanup
Simplified plotter implementations
Improved shapefile handling
Example Notebooks — Typed Config Migration
Migrated notebooks 02a–03b from legacy
yaml.safe_load+ flat dict pattern toSymfluenceConfig.from_minimal()typed config APIAll 9 example notebooks (01a–04b) now use the same typed, validated, frozen config pattern
Removed MAF-specific language from all example notebooks; acquisition comments now reference
DATA_ACCESS: 'cloud'or'maf'config settingFixed pre-existing bugs: 02a
NameErroron config access, 03bcf.managerswrong variable name, 03b config overwrite bug, 03b outdated CLI syntax
Fixed#
MESH lumped mode routing: switched from
run_deftonoroutemode to correctly preserve lower-zone baseflow (wf_lzs);run_defin MESH 1.5.6 bypassesSTGGWstorage, causing zero baseflowTraceback handling in MESH postprocessor
Added missing
pydanticruntime dependency topyproject.tomlFixed invalid escape sequences in
__init__.pywarning filters for Python 3.12+ compatibilityCI pipeline now correctly fails on unit/integration test regressions (removed
|| truefrom pytest invocations)
Documentation#
Added comprehensive sub-daily simulation section to HBV model guide
Documented parameter scaling approaches (exact vs linear)
Added validation methodology for sub-daily implementations
Migration Guide#
Old Command (v0.6.x) |
New Command (v0.7.0) |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Benefits of new CLI:
Clearer command organization and discoverability
Better help messages (
symfluence workflow --helpshows workflow-specific options)Easier to extend with new commands
Industry-standard pattern (like git, docker, kubectl)
[0.6.0] - 2025-12-29#
Added#
Calibration Observation Data Utilities
download_smhi_discharge.py- Download discharge data from Swedish Meteorological Instituteprepare_streamflow_for_calibration.py- Convert discharge CSV to calibration formatsetup_calibration.py- Automated calibration setup with parameter boundsCalibration demo tests for Elliðaár (Iceland) and Fyris (Sweden) basins
CARRA/CERRA Data Processing Improvements
Fixed CARRA longitude normalization in spatial subsetting
FORCING_TIME_STEP_SIZEconfiguration support (10800s for CERRA)FORCING_SHAPE_ID_NAMEconfiguration support with default ‘ID’
Changed#
CLI orchestrator integration completed with full workflow execution support
Version bump to 0.6.0 across all version references
Removed#
Deprecated CONFLUENCE backward compatibility
Removed
CONFLUENCE.pywrapper fileRemoved
./confluenceshell scriptRemoved
CONFLUENCE_DATA_DIRandCONFLUENCE_CODE_DIRconfiguration supportAll documentation now uses SYMFLUENCE exclusively
Fixed#
CARRA spatial subsetting for small basin extents
EASYMORE remapping failures for CARRA datasets
[0.5.11] - 2025-12-15#
Changed#
Enhanced ngen outlet detection
Cleaned up technical debt
Fixed#
Mypy type errors in config property inheritance
Completed typed config migration for base classes
Improved#
Centralized evaluation metric logic
Improved linting and added ruff tests to pyproject.toml
[0.5.3] - 2025-11-15#
Added#
Support for cloud acquisition of:
Copernicus DEM
MODIS land cover
Global USDA-NRCS soil texture class map
Forcing datasets: ERA5, NEX-GDDP, CONUS404, AORC
Agnostic pipeline for cloud-based ERA5 matched workflows
Full cloud-integrated workflow tested with ERA5
Made MPI worker log generation optional
Initial t-route support (in progress)
[0.5.2] - 2025-11-12#
Major: Formal Initial Release with End-to-End CI Validation#
This release marks the first fully reproducible SYMFLUENCE workflow with continuous integration.
Added#
End-to-End CI Pipeline (Example Notebook 2a Equivalent) Integrated a comprehensive GitHub Actions workflow that builds, validates, and runs SYMFLUENCE automatically on every commit to
main.Compiles all hydrologic model dependencies (TauDEM, mizuRoute, FUSE, NGEN).
Validates MPI, NetCDF, GDAL, and HDF5 environments.
Executes key steps (
setup_project,create_pour_point,define_domain,discretize_domain,model_agnostic_preprocessing,run_model,calibrate_model,run_benchmarking).Confirms reproducible outputs under
SYMFLUENCE_DATA_DIR/domain_Bow_at_Banff.Runs both wrapper (
./symfluence) and direct Python entrypoints equivalently.
Changed#
Updated
external_tools_config.pyto include automatic path resolution for TauDEM binaries (e.g.,moveoutletstostrms → moveoutletstostreams).Expanded logging and run summaries for CI visibility.
Protected
mainbranch to require successful CI validation before merge.
Notes#
This release formalizes SYMFLUENCE’s reproducibility framework, guaranteeing that all supported workflows can be rebuilt and validated automatically on clean systems.
[0.5.0] - 2025-01-09#
Major: CONFLUENCE → SYMFLUENCE Rebranding#
This is the rebranding release. The project is now SYMFLUENCE (SYnergistic Modelling Framework for Linking and Unifying Earth-system Nexii for Computational Exploration).
Added#
Complete rebranding to SYMFLUENCE
New domain: symfluence.org
PyPI package:
pip install symfluenceBackward compatibility for all CONFLUENCE names (with deprecation warnings)
Changed#
Main script:
CONFLUENCE.py→symfluence.pyShell command:
./confluence→./symfluenceConfig parameters:
CONFLUENCE_*→SYMFLUENCE_*Repository:
DarriEy/CONFLUENCE→symfluence-org/SYMFLUENCE
Deprecated#
All CONFLUENCE naming (removed in v0.6.0)
Links#
Documentation: symfluence.readthedocs.io