Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package termscp for openSUSE:Factory checked 
in at 2026-05-06 19:20:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/termscp (Old)
 and      /work/SRC/openSUSE:Factory/.termscp.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "termscp"

Wed May  6 19:20:09 2026 rev:7 rq:1351196 version:1.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/termscp/termscp.changes  2025-12-22 
22:51:58.479784530 +0100
+++ /work/SRC/openSUSE:Factory/.termscp.new.30200/termscp.changes       
2026-05-06 19:24:22.493115105 +0200
@@ -1,0 +2,231 @@
+Mon Apr 20 17:30:15 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.0.0:
+  * Added
+    - rework TransferProgress to track bytes with lazy estimation
+    - replace dual progress bar components with single TransferProgressBar
+    - simplify progress bar layout to single component
+    - update progress bar display for new unified data model
+    - update transfer loop to use unified TransferProgress
+    - consolidate theme progress bar fields into single transfer_progress_bar
+  * CI
+    - Codeberg mirroring
+    - run test workflows once
+    - check fmt with nightly toolchain
+    - add linux and windows aarch64 build targets
+  * Changed
+    - FileTransferActivity pane-agnostic dispatch (#386)
+      Comprehensive design for incremental refactoring of the
+      13k-line FileTransferActivity god-struct using a unified Pane
+      abstraction.  Detailed step-by-step plan covering 6 phases:
+      split monoliths, error handling, Pane struct, action dedup,
+      session split, view reorg.  Extract 26 popup components from
+      the monolithic 1,868-line popups.rs into 20 individual files
+      under popups/. Each file contains one or two related
+      components with their own imports. The popups.rs module file
+      now contains only module declarations and re-exports.
+      Replace 8 panic!() calls with error!() logging and early
+      returns/fallthrough.  These panics documented invariants
+      (e.g. "this tab can't do X") but would crash the app if
+      somehow triggered. Error logging is safer and more resilient.
+      Replace raw FileExplorer fields in Browser with Pane structs
+      that bundle the explorer and connected state. Move
+      host_bridge_connected and remote_connected from
+      FileTransferActivity into the panes. Add navigation API
+      (fs_pane, opposite_pane, is_find_tab) for future unification
+      tasks.  Rename private get_selected_file to
+      get_selected_file_by_id and add three new unified methods
+      (get_selected_entries, get_selected_file, is_selected_one)
+      that dispatch based on self.browser.tab(). Old per-tab
+      methods are kept for now until their callers are migrated in
+      subsequent tasks.  Collapse local/remote action method pairs
+      (mkdir, delete, symlink, chmod, rename, copy) into unified
+      methods that branch internally on is_local_tab(). This halves
+      the number of action methods and simplifies the update.rs
+      dispatch logic. Also unifies ShowFileInfoPopup and
+      ShowChmodPopup dispatching to use get_selected_entries().
+      Move host_bridge and client filesystem fields from
+      FileTransferActivity into the Pane struct, enabling
+      tab-agnostic dispatch via fs_pane()/ fs_pane_mut(). This
+      eliminates most is_local_tab() branching across 15+ action
+      files.
+      Key changes:
+      - Add fs: Box<dyn HostBridge> to Pane, remove from
+        FileTransferActivity
+      - Replace per-side method pairs with unified pane-dispatched
+        methods
+      - Unify navigation (changedir, reload, scan, file_exists,
+        has_file_changed)
+      - Replace 147-line popup if/else chain with data-driven
+        priority table
+      - Replace assert!/panic!/unreachable! with proper error
+        handling
+      - Fix typo "filetransfer_activiy" across ~29 files
+      - Add unit tests for Pane
+
+      Net result: -473 lines, single code path for most file
+      operations.
+
+    - replace lazy_static with std::sync::LazyLock
+    - migrate from mod.rs to named module files
+    - split parser internals into focused modules
+    - split auth form components by protocol
+    - split auth update handlers by context
+    - split auth view helpers by responsibility
+  * Documentation
+    - date
+    - add core module and API documentation
+    - document core host and ssh modules
+    - document parser and file transfer params
+    - complete remaining core module docs
+    - document ssh key storage API
+  * Fixed
+    - replace panics reachable from user input with proper error
+      handling
+    - replace assert! calls in UI activities with graceful error
+      handling
+    - correct typos in BadSytax and theme_provider log messages
+    - replace magic-crypt with aes-gcm for bookmark encryption
+      - magic-crypt has known vulnerabilities. Replace it with
+        aes-gcm for new
+      - encryption (authenticated, with random nonces) while
+        keeping a legacy
+      - AES-128-CBC decryption path to transparently handle
+        existing bookmarks.
+    - replace recursive byte-counting with entry-based transfer
+      progress (#395)
+        - fix: replace recursive byte-counting with entry-based transfer 
progress
+        Replace the expensive recursive get_total_transfer_size
+        pre-calculation with a lightweight entry-based counter
+        (TransferProgress) for the overall progress bar. This
+        avoids deep list_dir traversals before transfers begin,
+        which could cause FTP idle-timeout disconnections on large
+        directory trees.
+        The per-file byte-level progress bar (ProgressStates)
+        remains unchanged. Bytes are still tracked via
+        TransferStates::add_bytes for notification threshold logic.
+    - return after empty terminal prompt
+    - resolve . and .. in terminal cd and prevent panic in path
+      elide
+        absolutize now lexically normalizes paths so cd ..
+        navigates to the parent directory instead of appending ..
+        literally. Also guard against file_name() returning None in
+        fmt_path_elide_ex, which caused a panic on paths containing
+        unresolved .. components.
+    - pass full command string to exec, not just the first word
+        The Exec arm of Command::from_str only captured the first
+        whitespace-delimited token, silently dropping all
+        arguments.  Now passes the entire input string so e.g. ls
+        -la /tmp works.
+    - sync browsing when entering a directory from filtered/fuzzy
+      view stabilize core error handling
+      - Remove production panic and unwrap paths from core modules.
+      - Propagate bookmark encryption failures, harden file watcher
+        and temp mapped file handling, and clean up dead code in
+        shared utilities.
+    - normalize localhost relative path checks
+    - use time-based redraw interval instead of progress-delta
+      threshold
+      The old 1% progress threshold caused the UI to appear frozen
+      on large files (e.g. 1GB) because many read/write iterations
+      passed between redraws. Switching to a 100ms time-based
+      interval ensures consistent UI responsiveness regardless of
+      file size.
+    - render progress bar immediately after mounting
+      Call self.view() right after mount_progress_bar() at all 6
+      call sites so the bar is visible on screen before the
+      transfer loop begins.
+    - filter self-references and dot entries from remote directory
+      listings
+      Some non-compliant FTP servers (e.g. LiteSpeed) include a
+      self-reference to the listed directory in the LIST response,
+      causing the current folder to appear as a duplicate entry in
+      the explorer.
+  * Miscellaneous
+    - Use apt to install termscp on debian base to prevent broken
+      deps
+    - Copilot is so dumb
+    - Install with apt if installed
+    - WTF CTRL SAVE DOESNT FUCKING WORK
+    - funding
+    - add centralized lint configuration to Cargo.toml
+    - 1.0.0 version into manifests
+    - format toml
+    - add fmt+clippy convention to CLAUDE.md and apply nightly fmt
+    - enable safe clippy pedantic lints
+  * Performance
+    - use sort_by_cached_key to avoid repeated lowercase
+      allocations in file sorting
+  * Testing
+    - add parser and bookmark regression coverage
+    - extend config and explorer regression coverage
+    - extend system regression coverage
+  * Build
+    - removed hostname, use whoami instead
+      - whoami provides hostname function, so we don't need the
+        hostname dependency, since whoami is also being used for
+        getting the username
+    - replaced libssh with russh for remotefs-ssh
+    - replace version-compare crate with semver
+    - remotefs-ssh 0.8.1
+    - remotefs-ssh 0.8.2
+      - this version removes any usage of sh commands from the sftp
+        backend and only uses pure protocol functions
+    - migrate to tui-realm 4.0
+      - Upgrade tuirealm (3.x -> 4.0.0), tui-realm-stdlib (3 -> 4),
+        tui-term (0.2 -> 0.3). Apply all breaking changes from the
+        4.0 migration guide across the termscp UI.
+        Key changes:
+        - Root-level re-exports removed; imports moved to
+          module-qualified paths (tuirealm::application,
+          ::component, ::event, ::props, ::state, ::subscription,
+          ::listener, ::ratatui). Same for stdlib component types
+          (tui_realm_stdlib::components::*).
+        - MockComponent trait renamed to Component; old Component
+          trait renamed to AppComponent. #[derive(MockComponent)]
+          is now #[derive(Component)]. Component::on now takes
+          &Event<_>.
+        - TextSpan replaced with SpanStatic/LineStatic/TextStatic
+          (ratatui-based); tuple (String, Alignment) titles
+          replaced with the new Title builder; Alignment split into
+        - HorizontalAlignment/VerticalAlignment; stdlib components
+          use .alignment_horizontal instead of .alignment.
+        - State::One/PropPayload::One -> Single. CmdResult::None ->
+          NoChange. Props::get_or removed; Props::get now returns a
+          borrowed Option<&AttrValue> (call sites switched to
+          .and_then(AttrValue::as_*)). Component::query returns
+          Option<QueryResult<'a>>.
+        - Attribute::HighlightedColor -> HighlightStyle (a full
+          Style).  .highlighted_* helpers renamed to .highlight_*.
+        - PollStrategy::UpTo(n) now requires a Duration; tick
+          timeout moved from EventListenerCfg::poll_timeout into
+          PollStrategy.
+        - TerminalBridge removed; Context now holds
+          CrosstermTerminalAdapter directly and enables raw mode +
+          alternate screen explicitly. The TerminalAdapter trait is
+          imported where its methods are used.
+        - Update trait removed; activity update methods are plain
+          inherent functions.
+        - ProgressBar replaced by stdlib Gauge. Paragraph .wrap
+          renamed to .wrap_trim; .text now takes an Into<Text>.
+          Stdlib List row items are now individual lines (Vec<Span>
+          per row) rather than a Table of spans; custom
+          FileList/Log convert between the two models.
+        - Radio builders drop .foreground(color) so unselected
+          items render with the terminal default foreground, and
+          set
+          highlight_style(Style::default().fg(color).add_modifier(REVERSED))
+          so the selected entry is visibly highlighted only with
+          the theme color.
+        - Custom FileList keeps the selected row highlighted with
+          the full highlight style when focused and falls back to a
+          foreground-only style when unfocused.
+        - Theme loading is now backwards compatible: Theme uses a
+          custom Deserialize through an intermediate ThemeFile with
+          optional fields, so missing keys, unknown values or
+          legacy aliases (transfer_progress_bar_full/_partial) fall
+          back to defaults on a per-field basis instead of failing
+          the whole load.
+    - upgrade remotefs-ssh to 0.8.3
+
+-------------------------------------------------------------------

Old:
----
  termscp-0.19.1.obscpio

New:
----
  termscp-1.0.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ termscp.spec ++++++
--- /var/tmp/diff_new_pack.DRaKTk/_old  2026-05-06 19:24:24.325190683 +0200
+++ /var/tmp/diff_new_pack.DRaKTk/_new  2026-05-06 19:24:24.329190848 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package termscp
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           termscp
-Version:        0.19.1
+Version:        1.0.0
 Release:        0
 Summary:        Feature rich terminal UI file transfer and explorer
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.DRaKTk/_old  2026-05-06 19:24:24.381192993 +0200
+++ /var/tmp/diff_new_pack.DRaKTk/_new  2026-05-06 19:24:24.385193158 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/veeso/termscp</param>
     <param name="scm">git</param>
     <param name="package-meta">yes</param>
-    <param name="revision">v0.19.1</param>
+    <param name="revision">v1.0.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>
@@ -11,7 +11,7 @@
   <service name="set_version" mode="manual">
   </service>
   <service name="cargo_vendor" mode="manual">
-    <param name="update">true</param>
+    <param name="update">false</param>
     <param name="srcdir">termscp</param>
   </service>
   <!-- services below are running at buildtime -->

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.DRaKTk/_old  2026-05-06 19:24:24.417194478 +0200
+++ /var/tmp/diff_new_pack.DRaKTk/_new  2026-05-06 19:24:24.421194643 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/veeso/termscp</param>
-              <param 
name="changesrevision">b04976bde38a8b39cb2f38a468cc5c6618699402</param></service></servicedata>
+              <param 
name="changesrevision">0ad18ea5e780883d8fa0d5a904a3984c37c0c6a9</param></service></servicedata>
 (No newline at EOF)
 

++++++ termscp-0.19.1.obscpio -> termscp-1.0.0.obscpio ++++++
++++ 47021 lines of diff (skipped)

++++++ termscp.obsinfo ++++++
--- /var/tmp/diff_new_pack.DRaKTk/_old  2026-05-06 19:24:26.249270055 +0200
+++ /var/tmp/diff_new_pack.DRaKTk/_new  2026-05-06 19:24:26.269270880 +0200
@@ -1,5 +1,5 @@
 name: termscp
-version: 0.19.1
-mtime: 1766244830
-commit: b04976bde38a8b39cb2f38a468cc5c6618699402
+version: 1.0.0
+mtime: 1776543940
+commit: 0ad18ea5e780883d8fa0d5a904a3984c37c0c6a9
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/termscp/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.termscp.new.30200/vendor.tar.zst differ: char 7, 
line 1

Reply via email to