Allison Karlitskaya (109):
testlib: tweak label calculation for pixel tests
testlib: change approach for --sit and log captures
testlib: add a pytest compatibility hack
testlib: kill global machine when not in use
testlib: change approach for --sit and log captures, take two
.flake8: limit to rules not covered by ruff
test/static-code: stop calling it pyvulture
test/static-code: enable mypy
test: Add another another expected restart message
ruff: enable PIE rules, apply some auto-fixups
bridge: try harder to ensure Endpoints exited
test/static-code: add partial mypy --strict mode
protocol: add better typing hints
transports: fixes for mypy --strict
ruff: move linter settings to [lint] section
test/static-code: quiet superfluous ruff messages
test/static-code: add support for typescript
pkg/lib: rename hooks.js to hooks.ts
test: lcov: add coverage for ts/x files
base1: add cockpit.assert()
pyproject: enable 'preview' ruff rules
test/static-code: drop flake8
test: support typescript on qunit tests
base1: drop cockpit.get_byteunits() API
test: add f`` tagged template string helper
cockpit.js: add new number formatting API style
test: port test-format to typescript
test/static-code: speed up JSON validation
pywrap: simplify bots python path
tools: rename vulture(- → )suppressions
tap-cdp: fix a case of module shadowing
test/common/init.py: drop this file
testlib: drop todoPybridge decorator
various: many typing-related fixups
test/static-code: copy mypy setup from bots/
pkg/lib: change API of upload helper to Blob
testlib: fix Pillow type annotations
pkg/lib: port form-helper component to typescript
cockpit.js: make access to Gid field conditional
pkg/lib: allow null messages on form-helper component
pkg/lib: port context-menu component to Typescript
typescript: enable --exactOptionalPropertyTypes
test/static-code: make mypy deps configurable
pkg/lib: make the upload-helper WebKit-compatible
pkg/lib: add 'fsinfo' client library
pkg/lib: fix context menu component popdown
pkg/lib: Port various components to TypeScript
cockpit.d.ts: advertise cockpit.transport
pkg/lib: port WithDialogs/useDialogs to TypeScript
pkg/lib: add Dialogs.run()
pkg/lib: remove wasOutside check from context menu
cockpit.js: move is_negative() closer to its one user
cockpit.js: split helper functions to new file
pkg/lib/_internal/common.js: remove some old compat code
pkg/lib/_internal/common.js: simplify iterate_data()
pkg/lib: rename common.js → common.ts
pkg/lib/_internal/common.ts: add some utility types
cockpit.js: split event_mixin to a separate file
cockpit.js: depend on window.location.origin
cockpit.js: make url_root a constant
cockpit.js: split location helpers to their own file
pkg/lib: move location.js → location.ts
cockpit.js: split ParentWebSocket into its own file
cockpit.js: combine many transport-related globals
cockpit.js: remove an unused variable
cockpit.js: split base64 helpers to their own file
cockpit.js: split Transport code into its own file
cockpit.js: avoid calling cockpit.defer()
cockpit.js: split Deferred out to a separate file
cockpit.js: split Channel into its own file
cockpit.js: move a function closer to its one user
cockpit.js: tweak "factory" setup.
fsinfo: use new Channel directly
cockpit.d.ts: fix some cockpit.file() annotations
test/static-code: tweak Typescript config again
pkg/lib: clean up node imports
pkg/lib: add reference from cockpit.d.ts to cockpit.js
.eslintrc.json: setup some TypeScript rules
pkg/lib: move event/fsinfo/_internal into cockpit/
pkg/lib: transport: simplify binary frame pasting
pkg/lib: un-"export" Transport API
pkg/lib: transport: Convert function to a class
pkg/lib: use EventEmitter on Transport API
pkg/lib: use arrows in Transport.constructor()
pkg/lib: drop self in Transport.constructor
pkg/lib: convert Transport.constructor locals to privates
pkg/lib: move methods out of Transport.constructor
pkg/lib: avoid arguments in transport.js
pkg/lib: simplify WebSocket setup code
pkg/lib: convert ParentWebSocket to class
pkg/lib: port ParentWebSocket to TypeScript
pkg/lib: remove public_transport hook
pkg/lib: eliminate "out" filtering
pkg/lib: eliminate parse_channel in transport.js
pkg/lib: simplify incoming filter logic
pkg/lib: step up type checking in Transport
pkg/lib: convert transport_globals to a class
pkg/lib: port Transport to TypeScript
pkg/lib: add new public "Channel" API
webdriver_bidi: very minor cleanups
webdriver: improve cleanup of reader task
webdriver: make the logging interface more complicated
test_browser: move from CDP to Webdriver BiDi
test/common: drop cdp vestiges
test/common: fix TEST_SHOW_BROWSER=0
webdriver_bidi: get rid of context manager nominal typing
test_browser: collect coverage for qunit tests
cockpit.js: fix cockpit.file().replace('')
qunit: add support for precise coverage reporting
Bernhard M. Wiedemann (1):
build: Stop storing mtime of css
Garrett LeSage (5):
pf: Fix alignment of radios and checks
pf: Fix split button double spacing issue
pf: Fix double-spacing issue for other dropdowns as well
pf: Fix menu items cropping their content
css: Shuffle some code around to make SASS happy
Jan Ščotka (1):
test: packagelib - robustify disabling of services
Jelle van der Waa (96):
test: unbreak the post-commit hook
test: apply boolean positional value function call rule
pkg: correctly call onChange handler
test: sanitize window.location.hash in pixel tests
test: don't use mutables as default arguments
test: prefer list comprehensions over map
selinux: lib: isReadOnly is deprecated for TextArea
lib: update isHoverable to isClickable
ws: test: fix shellcheck's double quote array/re-splitting errors
test: use standard compatible selectors
lib: PF5 now uses the pf5 class names for tabs
test: fix selectors for
wrapping
test: handle Anaconda's master branch for coverage
tools: don't parse --force as valid SHA
Only use Sizzle when required
test: rename parallel/serial tests to (non)destructive tests
test: exclude pkg/lib coverage when the project is not Cockpit itself
test: do not compare types but use isinstance
test: show a known naughty as a failure
test: add avc type=1405
lib: add missing "failed" proptype for Modifications
lib: ansible propType is required for Modifications components
lib: make modifications components functional
lib: move SELinux specific message to selinux page
ruff: Enable UP032 f-string rule
shell: python: load translations via manifest.js
lib: handle subdir being undefined for cockpit projects
lib: make Ansible role the first tab
Update to PatternFly 5.1
testlib: fix some of our testlib typing
test: Fix unintentional ignoring of console errors
test: apply eslint to .js files as well
lib: provide an optional error callback for validation
lib: allow Modifications component to be re-used
test: re-use admin ssh key setup across machines
test: allow add_machine/start_machine_troubleshoot to be re-usable
storaged: add btrfs volume integration
test: add storage test helper for disabled dropdown actions
test: add allow_download helper for Browser class
btrfs: Allow formatting of a single btrfs device volume
test: add device is in use test for formatting btrfs
pkg: make contextmenu component standalone & re-usable
lib: update patternfly url to the current version
lib: drop webpack support in cockpit-po-plugin
test: also strip the / from log.html
lib: remove PatternFly workaround for DataList's
test: allow direct rendering to body warnings
lib: drop unused titleSize from EmptyStatePanel
lib: correct EmptyState propTypes
test: drop unsafe inline warnings
test: switch rtl in set_layout as well
lib: port deprecated Dropdown menu's with a KebabToggle
lib: support setting an id for the toggle button
test: don't wait_visible when we click
lib: keep validationFailed in sync with the list state
test: move select_pf5 from cockpit-files to Cockpit
lib: all browsers now support visibilitychange
lib: useLoggedInUser for obtaining user information
lib: port cockpit.user to use standard promises
shell: lib: handle cockpit.user() failures
lib: the channel superuser option takes "try" or "require"
lib: introduce an upload() helper for fsreplace1
lib: type all format related functions
lib: add typing for dbus related variant and bytearray functions
lib: superuser option is a string not a bool
lib: initial typing for cockpit.spawn
lib: allow awaiting Dialogs.show()
test: disable popup blocking for Cockpit-files
lib: cockpit.spawn.input() also accepts null | undefined
lib: deps are optional for useInit
test: systemctl stop user@*.service now also kills the root session
test: don't fail tests on DNF5
lib: add cockpit.hidden to cockpit typescript defs
lib: add gid field to UserInfo
lib: import Flex from the Flex directory
lib: follow patternfly issue redirect
node_modules: switch from deep_equal to dequal
test: don't type check pkg/lib outside of cockpit
Use fsinfo for cockpit.file.watch()
test: introduce run-tests --amplify for debugging
lib: FormGroup has no validated field
lib: allow configuring the action variant of an EmptyStatePanel
lib: type cockpit.logout
lib: make loading explicitly default false in EmptyStatePanel
lib: isInline, type and isLiveRegion are wrongly typed
package.json: replace single lodash user to a simple string replace
pkg: fix typos found by codespell
test: support Arch Linux's chromium binary name in BiDi
test: fix enabling low-level protocol debugging comment
test: bidi: log unpacking raw result before the actual unpacking
lib: drop override for wrongly colored select in dark theme
lib: drop pf-v5-u-font-weight-light declaration
lib: cockpit: log channel instead of control
cockpit: Implement PCP metrics channel in the Python bridge
lib: drop nested table PatternFly workaround
test: drop cockpit-pcp journal whitelist
Katerina Koukiou (7):
lib: patternfly now defines gold color in dark mode
lib: override default spaving from lg to md
testlib: when provisioning VMs allow to keep the original machine_class
tests: don't crash if no users exist when cleaning up login sessions
cdp: remove disable-gpu flag from headless Chrome
lib: anounce modals being opened and closed
lib: table: when using colSpan > 1 adjust the indexes when calculating data labels
MahmoudHamdy02 (2):
move parsers.js to pkg/lib, adjust import path in users.js
change file name to pam_user_parser to be more specific
Marius Vollmer (46):
test: Allow 20 different pixels
test: Don't be PatternFly version specific in become_superuser et al
test: Let "pixel-tests fetch" iterate over all scenarios
test: Remove lcov/ before collecting coverage data
test: Don't crash in coverage post-processing
test: Use sparse files to back loopback devices
test: Check that dropdown options are enabled
storage: Allow adding cache to encrypted pools
test: More careful mocking
test: Wait for tooltips after scrolling stuff into view
test: Wait after layout change for some metrics pixels
test: More general retrying for Storage content tabs
test: Remove obsolete skipMobile decorator
test: Also retry opening of storage content tabs
test: Retry dropdown menu in storage tests
storage: Support LVM2 RAID configurations
test: Console printing improvements
storage: Disable "Apply" in Teardown dialogs after error
lib: Debounce password quality checking during typing
storage: Redesign
test: Mock pixels after waiting for animations etc
test: Write attachments to unique filenames
storage: Fix listing of btrfs subvols in fstab
storage: Allow truncation of ID column
test: Allow empty coverage info for the diff
test: Make our loopback device partitionable
test: Don't create a empty pacman repo
test: Disable debugging with Arch makepkg
lib: Avoid infinite layout measurements in plots
test: Also allow modern "mount" error message
lib: Close Dropdown after selection instead of toggling it
pkg/lib: Give empty "Th" elements a aria-label attribute
test: Handle "\n" specially with set_input_text and input_text
lib: Add onlyDirectories option to FileAutoComplete
shell: Enable host switcher also on Fedora 40
hosts: Use a cockpit.conf option to disable the host switcher
build: Switch to @xterm/xterm and @xterm/addon-canvas
test: Ensure /var/cache/libdnf5 exists before cleaning it
storage: Never install packages on-demand in Anaconda mode
storage: Expose Stratis virtual filesystem sizes
lib: Add path functions
lib: Rename "path" to "cockpit-path"
test: Prepare for Shell rewrite
Revert "lib: Port cockpit-components-file-autocomplete.jsx to fsinfo"
lib: Pass along errors when starting systemd units
lib: Also apply scrolling fixes to grouped Select components
Martin Pitt (198):
Revert "testlib: change approach for --sit and log captures"
test: Don't unmount restored directories lazily
test: Restart libvirtd between tests
test: Fix sit regression with --machine
test: Fix implicit Optional annotation
test: Bump wait_for_iface() timeout
test: Fix --sit with existing machines
systemd: Fix journalctl follow invocation race
test: Drop redundant set -e calls
test: Fix fuser invocation in directory cleanup
all: Convert old jQuery promise API
test: Use next() instead of [0]
lib: Drop ancient ParentWebSocket fallback
Revert "cockpit.js: Support different URL root for the websocket"
shell: Move "Web Console" doc link into manifest
test: Adjust selectors for typeahead input
lib: Fix toolbar alignment
pf: Fix horizontal radio buttons for current PF5
Revert "lib: Fix toolbar alignment"
test: Ignore "invalid non-UTF8 @data passed" message
test: Don't encrypt/move the EFI partition in encrypt_root
test: Provision more RAM for global machines to fit LUKS tests
test: Reset packagekit.service in between tests
test: Clean up MachineCase.restore_file()
test: Drop obsolete fallback for old shells
test: Fix TypeError in tracing mode
package.json: Update to gettext-parser 7
test: Fix restore_dir() unit restart race
test: Accept destroyed execution context when clicking logout
lib: Document and properly initialize packagekit missing_ids
apps: Warn if appstream data package is missing
test: Replace .format() with f-strings
users: Avoid duplicate React component key
lib: Modifications failed property is not required
shell: Add dummy jump prop to host selector's CockpitNav
packagekit: Quiesce common tracer browser errors
lib: Fix Dialog error prop type
test: Stop ignoring proptype warnings
test: Drop global ignoring of two expected browser error messages
shell: Fix cockpit.Machines.Update() error handling
testlib: Drop remaining global ignores of messages from our pages
test: Drop obsolete null props ignore
shell: Drop leftover property
Add context to all console.error() calls
test: Print objects in console API calls
test: Ignore kpatch check error about repomd.xml
lib: Support non-string ModalError.dialogErrorDetail
lib: Fix ListingTable nesting for non-expandable rows
test: Fail on React DOM nesting errors
lib: Drop unknown noVerticalAlign property from HelpIcon
test: Run mypy on Python scripts
test: Ignore "PackageKit crashed" browser errors for kpatch
test: Ignore PCP name lookup failure after disk removal
lib: Add debug logging for cockpit.spawn() arguments
test: Drop Firefox CDP timeout hack
test: Wait for a page load in Browser.open()
test: Ignore occasional old tracer error on RHEL 8
test: Relax kpatch console error pattern
test: Apply currently set wait timeout to waitPageLoad()
test: Retry git fetch in git-utils.sh
lib: Add error message when showing multiple Dialogs
test: Allow PCP expected messages for "direct" source as well
test: Kill processes that keep scsi_debug mounts busy
test: Relax RHEL 8 expected tracer failure
lib: Fix race condition in "double dialog" error check
test: Ignore all tracer crashes on RHEL 8
testlib: Force page loading with Chromium 119
test: Increase encrypted root partition size
test: Disable busy swap on scsi_debug
test: Drop remaining vestiges of yum
test: Adjust method name in #18355 message ignoring
Fix flake8 whitespace in f-strings
test: Factorize getting PF value
test: Drop "Task was destroyed but it is pending" ignored traceback
test: Restore netplan configuration/state in NetworkCase
lib: Small useFile cleanups
test: Drop logind user ID cache
lib: Make date-fns/locale import compatible with 3.0
test: Factorize and robustify VG cleanup
lib: Ensure HTML translatable strings don't have surrounding whitespace
test: Robustify and simplify CDP frame → exec context tracking
testlib: Fix script pre-load race condition on Firefox
test: Ignore about: frames in Firefox frame tracking
lib: Rename DynamicListForm.jsx to cockpit-components-dynamic-list.jsx
lib: Clean up state copies in DynamicListForm
lib: Fix DynamicListForm state confusion on removals
lib: Drop obsolete PatternFly checkbox/radio override
build: Move stylelint to test/static-code
CSS: stylelint fixes
guide: stylelint fixes
lib: Fix ESLint error in DynamicListForm
test: Fix eslint invocation in static-code
build: Drop ESLint from esbuild
pf5: Don't hide long dialog titles
test: Drop obsolete expected "Returning error-response" message
test: Drop check_axe()
test: Show systemd-cgls on session cleanup failure
test: Clean up "closing" sessions before polling them
test: Convert .format() to f-strings
test: Adjust encrypt_root() for separate /var mount
test: Use proper ssh service unit on Debian/Ubuntu
lib: Add optional external open state to KebabDropdown
test: Fix race condition with waiting for page load
test: Make encrypt_root()'s old root fs destruction less aggressive
base1: Fix format_bytes() kB unit
base1: Fix formatbytes() B unit
test: Drop obsolete compat test cases for RHEL/CentOS 7
test: Fix unexpected "truncated data in external channel" messages
storaged: Use kernelopt.sh to set rd.neednet=1
lib: Fix shellcheck complaint about test -o
test: Fix handling of "closing" sessions in TestSession.testBasic
test: Drop CentOS 8 special cases
test: Terminate sessions before restoring files/directories
test: Drop redundant dnf-automatic cleanup in check-packagekit
test: Adjust dnf5 condition for fedora-rawhide
test: Fix DNF5 automatic timer name
test: Split "dnf" PackageCase backend into dnf4/5
packagekit: Support dnf5-plugin-automatic
test: Drop skipDistroPackage decorator
lib: Generalize manifest config reading
Replace cockpit.utf8{de,en}coder with standard JS API
base1: Drop cockpit.utf8_{de,en}coder()
lib: Accept false values in manifest configuration
lib: Fix ShutdownModal error type on shutdown errors
test: Introduce testlib API for pressing/releasing a single key
test: Add "repeat" argument to Browser.key()
test: Port non-text Browser.key_press() to Browser.key()
test: Drop Browser.key_press(), replace with Browser.input_text()
test: Ignore lastlog 2 PAM module message
test: Drop is_pybridge()
cockpit.js: Fix exception reporting for cockpit.http() errors
all: Drop UTF-8 argument from .decode()/.encode()
Revert "test: Ignore "invalid non-UTF8 @data passed" message"
pkg: Drop extension in timeformat imports
lib: Type-annotate timeformat
lib: Fix timeformat.parseShortDate()
test: Tolerate absent /home
test: Fix type of MachineCase.machine_class
lib: Always use ISO format for date picker manual input
lib: Drop timeformat.{dateShortFormat,parseShortDate}()
Revert "test: packagelib - robustify disabling of services"
lib: Reimplement timeformat.distanceToNow() with standard browser API
package.json: Drop date-fns
cockpit.js: Add fsinfo fallback to fswatch1
lib: Fix server time
lib: Add cockpit.script() type annotations
lib: Fix and extend channel option types
lib: Declare cockpit.translate()
lib: Fix {Channel,Spawn}.close() annotation
lib: Fix race condition in credentials.js
lib: Drop two_pass argument from credentials methods
lib: credentials.js code cleanups
test: Allow other "external channel failed" errors on restarts
test: Add MachineCase.login_and_go() password argument
lib: Convert cockpit-components-inline-notification to TypeScript and functional
test: Move add_machine() and start_machine_troubleshoot() from MachineCase to Browser
test: Drop obsolete expected tracer crash in RHEL 8
test: Generalize tracer failure message on logout
test: Clean up Browser.select_PF[45]()
test: Avoid :contains() in testlib.py
lib, doc: Annotate Firefox specific CSS rules
test: Re-relax the {become,drop}_superuser() checks
test/static-code: Ignore pkg/lib for non-Cockpit projects
test: Ignore machine.image_file type check failure
lib: Provide reduced SSH host dialogs API as library
shell: Deprecate host switcher in current OS releases
test: Put test-functions.js helpers on window object
test: Robustify Browser.assert_no_oops
test: Make ignore_ssl_certificate_errors() implicit
test: Fix error reporting in ph_select()
test: Drop redundant _wait_present() calls
test: Port from CDP to BiDi browser automation
test: Eliminiate Browser.inject_js()
test: Introduce context manager for temporarily switching browser context
test: Drop Firefox CDP support
test: Make Browser.switch_to_frames() work from frames
test: Fix Browser.wait_js_cond() failures with custom error descriptions
lib: Fix race condition in Terminal size calculation
test: Fix --trace logging for CDP commands
test: Use non-deprecated CDP setDownloadBehavior() method
all: Move gnu.org/license URLs to https://
test: Drop rhel4edge special cases
test: Re-teach Browser.input_text() about \n
test: Don't change context in WebdriverBidi.restore_context()
test: Use real mouse events in tests on Firefox
lib: Fix cockpit.file().modify() annotation
test: Implement "contextmenu" mouse event for BiDi
test: Copy ubuntu-stable special cases as ubuntu-2404
test: Temporarily make self.multihost_enabled dynamic for ubuntu-stable
lib: Update old systemd bug reference
webdriver_bidi: Recursively unpack raw values
ws: Use cockpit-beiboot for direct remote connections
lib: Port cockpit-components-file-autocomplete.jsx to fsinfo
systemd: Hide "limited access mode" banner without superuser bridges
test: Drop obsolete todoPybridgeRHEL8
test: Fix cockpit/ws ostree_image special cases
test: Skip host switching tests with beiboot mode
users: Get lastlog2 info through SQLite
Matej Marusak (1):
cockpit.js: Add debugging marking for translated strings
Miika Alikirri (1):
test: Use root as a superuser on SUSE images
Simon Kobyda (16):
lib: Add DynamicListForm to /pkg/lib
lib: add showClose as Dialog's prop
lib: Implement missing .pf-v5-u-font-weight-light
lib: Fix a dropdown being hidden by a card
lib: Don't show icon unless 'icon' prop is passed
test: Remove unecessary escaping in link-patterns
test: Add VM's XML and VM's log into link-patterns
lib: Add validation to DynamicListForm component
test: Follow ASCII chart instead of browser's keycodes
lib: Fix DynamicListForm's 'Maximum update depth exceeded' flake
lib: Update RedHatMono weight properties
lib: Add show/hide feature to password input field
lib: Change width of password progress
lib: Add minimum progress value
lib: Show message next to password progress bar
kdump: 'Test configuration' should use danger variant button
Sludge (1):
packagekit: Update CVE link to go to the new site
Subho (1):
terminal: fix unable to use scrollbar
Tomas Matus (1):
test: allow journal message to a known pybridge error
dependabot[bot] (3):
Bump sass from 1.69.4 to 1.69.5
Bump the react group across 1 directory with 4 updates
Bump glob from 7.2.3 to 11.0.0
Allison Karlitskaya (109): testlib: tweak label calculation for pixel tests testlib: change approach for --sit and log captures testlib: add a pytest compatibility hack testlib: kill global machine when not in use testlib: change approach for --sit and log captures, take two .flake8: limit to rules not covered by ruff test/static-code: stop calling it pyvulture test/static-code: enable mypy test: Add another another expected restart message ruff: enable PIE rules, apply some auto-fixups bridge: try harder to ensure Endpoints exited test/static-code: add partial mypy --strict mode protocol: add better typing hints transports: fixes for mypy --strict ruff: move linter settings to [lint] section test/static-code: quiet superfluous ruff messages test/static-code: add support for typescript pkg/lib: rename hooks.js to hooks.ts test: lcov: add coverage for ts/x files base1: add cockpit.assert() pyproject: enable 'preview' ruff rules test/static-code: drop flake8 test: support typescript on qunit tests base1: drop cockpit.get_byteunits() API test: add f`` tagged template string helper cockpit.js: add new number formatting API style test: port test-format to typescript test/static-code: speed up JSON validation pywrap: simplify bots python path tools: rename vulture(- → )suppressions tap-cdp: fix a case of module shadowing test/common/init.py: drop this file testlib: drop todoPybridge decorator various: many typing-related fixups test/static-code: copy mypy setup from bots/ pkg/lib: change API of upload helper to Blob testlib: fix Pillow type annotations pkg/lib: port form-helper component to typescript cockpit.js: make access to Gid field conditional pkg/lib: allow null messages on form-helper component pkg/lib: port context-menu component to Typescript typescript: enable --exactOptionalPropertyTypes test/static-code: make mypy deps configurable pkg/lib: make the upload-helper WebKit-compatible pkg/lib: add 'fsinfo' client library pkg/lib: fix context menu component popdown pkg/lib: Port various components to TypeScript cockpit.d.ts: advertise cockpit.transport pkg/lib: port WithDialogs/useDialogs to TypeScript pkg/lib: add
Dialogs.run()
pkg/lib: remove wasOutside check from context menu cockpit.js: move is_negative() closer to its one user cockpit.js: split helper functions to new file pkg/lib/_internal/common.js: remove some old compat code pkg/lib/_internal/common.js: simplify iterate_data() pkg/lib: rename common.js → common.ts pkg/lib/_internal/common.ts: add some utility types cockpit.js: split event_mixin to a separate file cockpit.js: depend onwindow.location.origin
cockpit.js: make url_root a constant cockpit.js: split location helpers to their own file pkg/lib: move location.js → location.ts cockpit.js: split ParentWebSocket into its own file cockpit.js: combine many transport-related globals cockpit.js: remove an unused variable cockpit.js: split base64 helpers to their own file cockpit.js: split Transport code into its own file cockpit.js: avoid calling cockpit.defer() cockpit.js: split Deferred out to a separate file cockpit.js: split Channel into its own file cockpit.js: move a function closer to its one user cockpit.js: tweak "factory" setup. fsinfo: usenew Channel
directly cockpit.d.ts: fix somecockpit.file()
annotations test/static-code: tweak Typescript config again pkg/lib: clean up node imports pkg/lib: add reference from cockpit.d.ts to cockpit.js .eslintrc.json: setup some TypeScript rules pkg/lib: move event/fsinfo/_internal into cockpit/ pkg/lib: transport: simplify binary frame pasting pkg/lib: un-"export" Transport API pkg/lib: transport: Convert function to a class pkg/lib: use EventEmitter on Transport API pkg/lib: use arrows in Transport.constructor() pkg/lib: dropself
in Transport.constructor pkg/lib: convert Transport.constructor locals to privates pkg/lib: move methods out of Transport.constructor pkg/lib: avoidarguments
in transport.js pkg/lib: simplify WebSocket setup code pkg/lib: convert ParentWebSocket to class pkg/lib: port ParentWebSocket to TypeScript pkg/lib: remove public_transport hook pkg/lib: eliminate "out" filtering pkg/lib: eliminate parse_channel in transport.js pkg/lib: simplify incoming filter logic pkg/lib: step up type checking in Transport pkg/lib: convert transport_globals to a class pkg/lib: port Transport to TypeScript pkg/lib: add new public "Channel" API webdriver_bidi: very minor cleanups webdriver: improve cleanup of reader task webdriver: make the logging interface more complicated test_browser: move from CDP to Webdriver BiDi test/common: drop cdp vestiges test/common: fix TEST_SHOW_BROWSER=0 webdriver_bidi: get rid of context manager nominal typing test_browser: collect coverage for qunit tests cockpit.js: fix cockpit.file().replace('') qunit: add support for precise coverage reportingBernhard M. Wiedemann (1): build: Stop storing mtime of css
Garrett LeSage (5): pf: Fix alignment of radios and checks pf: Fix split button double spacing issue pf: Fix double-spacing issue for other dropdowns as well pf: Fix menu items cropping their content css: Shuffle some code around to make SASS happy
GitHub Workflow (1): package.json: Update @patternfly/patternfly, @patternfly/react-core, @patternfly/react-icons, @patternfly/react-styles, @patternfly/react-table, @patternfly/react-tokens
Jan Ščotka (1): test: packagelib - robustify disabling of services
Jelle van der Waa (96): test: unbreak the post-commit hook test: apply boolean positional value function call rule pkg: correctly call onChange handler test: sanitize window.location.hash in pixel tests test: don't use mutables as default arguments test: prefer list comprehensions over map selinux: lib: isReadOnly is deprecated for TextArea lib: update isHoverable to isClickable ws: test: fix shellcheck's double quote array/re-splitting errors test: use standard compatible selectors lib: PF5 now uses the pf5 class names for tabs test: fix selectors for
pkg/lib
coverage when the project is not Cockpit itself test: do not compare types but use isinstance test: show a known naughty as a failure test: add avc type=1405 lib: add missing "failed" proptype for Modifications lib: ansible propType is required for Modifications components lib: make modifications components functional lib: move SELinux specific message to selinux page ruff: Enable UP032 f-string rule shell: python: load translations via manifest.js lib: handlesubdir
being undefined for cockpit projects lib: make Ansible role the first tab Update to PatternFly 5.1 testlib: fix some of our testlib typing test: Fix unintentional ignoring of console errors test: apply eslint to .js files as well lib: provide an optional error callback for validation lib: allow Modifications component to be re-used test: re-use admin ssh key setup across machines test: allow add_machine/start_machine_troubleshoot to be re-usable storaged: add btrfs volume integration test: add storage test helper for disabled dropdown actions test: add allow_download helper for Browser class btrfs: Allow formatting of a single btrfs device volume test: add device is in use test for formatting btrfs pkg: make contextmenu component standalone & re-usable lib: update patternfly url to the current version lib: drop webpack support in cockpit-po-plugin test: also strip the / from log.html lib: remove PatternFly workaround for DataList's test: allow direct rendering to body warnings lib: drop unused titleSize from EmptyStatePanel lib: correct EmptyState propTypes test: drop unsafe inline warnings test: switch rtl in set_layout as well lib: port deprecated Dropdown menu's with a KebabToggle lib: support setting an id for the toggle button test: don't wait_visible when we click lib: keep validationFailed in sync with the list state test: move select_pf5 from cockpit-files to Cockpit lib: all browsers now support visibilitychange lib: useLoggedInUser for obtaining user information lib: port cockpit.user to use standard promises shell: lib: handle cockpit.user() failures lib: the channel superuser option takes "try" or "require" lib: introduce an upload() helper for fsreplace1 lib: type all format related functions lib: add typing for dbus related variant and bytearray functions lib: superuser option is a string not a bool lib: initial typing for cockpit.spawn lib: allow awaiting Dialogs.show() test: disable popup blocking for Cockpit-files lib: cockpit.spawn.input() also accepts null | undefined lib: deps are optional for useInit test: systemctl stop user@*.service now also kills the root session test: don't fail tests on DNF5 lib: add cockpit.hidden to cockpit typescript defs lib: add gid field to UserInfo lib: import Flex from the Flex directory lib: follow patternfly issue redirect node_modules: switch from deep_equal to dequal test: don't type check pkg/lib outside of cockpit Use fsinfo for cockpit.file.watch() test: introducerun-tests --amplify
for debugging lib: FormGroup has novalidated
field lib: allow configuring the action variant of an EmptyStatePanel lib: type cockpit.logout lib: make loading explicitly default false in EmptyStatePanel lib: isInline, type and isLiveRegion are wrongly typed package.json: replace single lodash user to a simple string replace pkg: fix typos found by codespell test: support Arch Linux's chromium binary name in BiDi test: fix enabling low-level protocol debugging comment test: bidi: log unpacking raw result before the actual unpacking lib: drop override for wrongly colored select in dark theme lib: drop pf-v5-u-font-weight-light declaration lib: cockpit: log channel instead of control cockpit: Implement PCP metrics channel in the Python bridge lib: drop nested table PatternFly workaround test: drop cockpit-pcp journal whitelistKaterina Koukiou (7): lib: patternfly now defines gold color in dark mode lib: override default spaving from lg to md testlib: when provisioning VMs allow to keep the original machine_class tests: don't crash if no users exist when cleaning up login sessions cdp: remove disable-gpu flag from headless Chrome lib: anounce modals being opened and closed lib: table: when using colSpan > 1 adjust the indexes when calculating data labels
Mahmoud Hamdy (2): lib: Pre-select autocomplete file when passing file path lib: Add Dialog.isActive property
MahmoudHamdy02 (2): move parsers.js to pkg/lib, adjust import path in users.js change file name to pam_user_parser to be more specific
Marius Vollmer (46): test: Allow 20 different pixels test: Don't be PatternFly version specific in become_superuser et al test: Let "pixel-tests fetch" iterate over all scenarios test: Remove lcov/ before collecting coverage data test: Don't crash in coverage post-processing test: Use sparse files to back loopback devices test: Check that dropdown options are enabled storage: Allow adding cache to encrypted pools test: More careful mocking test: Wait for tooltips after scrolling stuff into view test: Wait after layout change for some metrics pixels test: More general retrying for Storage content tabs test: Remove obsolete skipMobile decorator test: Also retry opening of storage content tabs test: Retry dropdown menu in storage tests storage: Support LVM2 RAID configurations test: Console printing improvements storage: Disable "Apply" in Teardown dialogs after error lib: Debounce password quality checking during typing storage: Redesign test: Mock pixels after waiting for animations etc test: Write attachments to unique filenames storage: Fix listing of btrfs subvols in fstab storage: Allow truncation of ID column test: Allow empty coverage info for the diff test: Make our loopback device partitionable test: Don't create a empty pacman repo test: Disable debugging with Arch makepkg lib: Avoid infinite layout measurements in plots test: Also allow modern "mount" error message lib: Close Dropdown after selection instead of toggling it pkg/lib: Give empty "Th" elements a aria-label attribute test: Handle "\n" specially with set_input_text and input_text lib: Add onlyDirectories option to FileAutoComplete shell: Enable host switcher also on Fedora 40 hosts: Use a cockpit.conf option to disable the host switcher build: Switch to @xterm/xterm and @xterm/addon-canvas test: Ensure /var/cache/libdnf5 exists before cleaning it storage: Never install packages on-demand in Anaconda mode storage: Expose Stratis virtual filesystem sizes lib: Add path functions lib: Rename "path" to "cockpit-path" test: Prepare for Shell rewrite Revert "lib: Port cockpit-components-file-autocomplete.jsx to fsinfo" lib: Pass along errors when starting systemd units lib: Also apply scrolling fixes to grouped Select components
Martin Pitt (198): Revert "testlib: change approach for --sit and log captures" test: Don't unmount restored directories lazily test: Restart libvirtd between tests test: Fix sit regression with --machine test: Fix implicit Optional annotation test: Bump wait_for_iface() timeout test: Fix --sit with existing machines systemd: Fix journalctl follow invocation race test: Drop redundant value
test: Drop "Task was destroyed but it is pending" ignored traceback
test: Restore netplan configuration/state in NetworkCase
lib: Small useFile cleanups
test: Drop logind user ID cache
lib: Make date-fns/locale import compatible with 3.0
test: Factorize and robustify VG cleanup
lib: Ensure HTML translatable strings don't have surrounding whitespace
test: Robustify and simplify CDP frame → exec context tracking
testlib: Fix script pre-load race condition on Firefox
test: Ignore about: frames in Firefox frame tracking
lib: Rename DynamicListForm.jsx to cockpit-components-dynamic-list.jsx
lib: Clean up state copies in DynamicListForm
lib: Fix DynamicListForm state confusion on removals
lib: Drop obsolete PatternFly checkbox/radio override
build: Move stylelint to test/static-code
CSS: stylelint fixes
guide: stylelint fixes
lib: Fix ESLint error in DynamicListForm
test: Fix eslint invocation in static-code
build: Drop ESLint from esbuild
pf5: Don't hide long dialog titles
test: Drop obsolete expected "Returning error-response" message
test: Drop check_axe()
test: Show
set -e
calls test: Fix fuser invocation in directory cleanup all: Convert old jQuery promise API test: Use next() instead of [0] lib: Drop ancient ParentWebSocket fallback Revert "cockpit.js: Support different URL root for the websocket" shell: Move "Web Console" doc link into manifest test: Adjust selectors for typeahead input lib: Fix toolbar alignment pf: Fix horizontal radio buttons for current PF5 Revert "lib: Fix toolbar alignment" test: Ignore "invalid non-UTF8 @data passed" message test: Don't encrypt/move the EFI partition in encrypt_root test: Provision more RAM for global machines to fit LUKS tests test: Reset packagekit.service in between tests test: Clean up MachineCase.restore_file() test: Drop obsolete fallback for old shells test: Fix TypeError in tracing mode package.json: Update to gettext-parser 7 test: Fix restore_dir() unit restart race test: Accept destroyed execution context when clicking logout lib: Document and properly initialize packagekit missing_ids apps: Warn if appstream data package is missing test: Replace .format() with f-strings users: Avoid duplicate React component key lib: Modifications failed property is not required shell: Add dummy jump prop to host selector's CockpitNav packagekit: Quiesce common tracer browser errors lib: Fix Dialog error prop type test: Stop ignoring proptype warnings test: Drop global ignoring of two expected browser error messages shell: Fix cockpit.Machines.Update() error handling testlib: Drop remaining global ignores of messages from our pages test: Drop obsolete null props ignore shell: Drop leftover property Add context to all console.error() calls test: Print objects in console API calls test: Ignore kpatch check error about repomd.xml lib: Support non-string ModalError.dialogErrorDetail lib: Fix ListingTable nesting for non-expandable rows test: Fail on React DOM nesting errors lib: Drop unknown noVerticalAlign property from HelpIcon test: Run mypy on Python scripts test: Ignore "PackageKit crashed" browser errors for kpatch test: Ignore PCP name lookup failure after disk removal lib: Add debug logging for cockpit.spawn() arguments test: Drop Firefox CDP timeout hack test: Wait for a page load in Browser.open() test: Ignore occasional old tracer error on RHEL 8 test: Relax kpatch console error pattern test: Apply currently set wait timeout to waitPageLoad() test: Retrygit fetch
in git-utils.sh lib: Add error message when showing multiple Dialogs test: Allow PCP expected messages for "direct" source as well test: Kill processes that keep scsi_debug mounts busy test: Relax RHEL 8 expected tracer failure lib: Fix race condition in "double dialog" error check test: Ignore all tracer crashes on RHEL 8 testlib: Force page loading with Chromium 119 test: Increase encrypted root partition size test: Disable busy swap on scsi_debug test: Drop remaining vestiges of yum test: Adjust method name in #18355 message ignoring Fix flake8 whitespace in f-strings test: Factorize getting PFsystemd-cgls
on session cleanup failure test: Clean up "closing" sessions before polling them test: Convert .format() to f-strings test: Adjust encrypt_root() for separate /var mount test: Use proper ssh service unit on Debian/Ubuntu lib: Add optional external open state to KebabDropdown test: Fix race condition with waiting for page load test: Make encrypt_root()'s old root fs destruction less aggressive base1: Fix format_bytes() kB unit base1: Fix formatbytes() B unit test: Drop obsolete compat test cases for RHEL/CentOS 7 test: Fix unexpected "truncated data in external channel" messages storaged: Use kernelopt.sh to set rd.neednet=1 lib: Fix shellcheck complaint abouttest -o
test: Fix handling of "closing" sessions in TestSession.testBasic test: Drop CentOS 8 special cases test: Terminate sessions before restoring files/directories test: Drop redundant dnf-automatic cleanup in check-packagekit test: Adjust dnf5 condition for fedora-rawhide test: Fix DNF5 automatic timer name test: Split "dnf" PackageCase backend into dnf4/5 packagekit: Support dnf5-plugin-automatic test: Drop skipDistroPackage decorator lib: Generalize manifest config reading Replace cockpit.utf8{de,en}coder with standard JS API base1: Drop cockpit.utf8_{de,en}coder() lib: Acceptfalse
values in manifest configuration lib: Fix ShutdownModal error type onshutdown
errors test: Introduce testlib API for pressing/releasing a single key test: Add "repeat" argument to Browser.key() test: Port non-text Browser.key_press() to Browser.key() test: Drop Browser.key_press(), replace with Browser.input_text() test: Ignore lastlog 2 PAM module message test: Drop is_pybridge() cockpit.js: Fix exception reporting for cockpit.http() errors all: Drop UTF-8 argument from .decode()/.encode() Revert "test: Ignore "invalid non-UTF8 @data passed" message" pkg: Drop extension in timeformat imports lib: Type-annotate timeformat lib: Fix timeformat.parseShortDate() test: Tolerate absent /home test: Fix type of MachineCase.machine_class lib: Always use ISO format for date picker manual input lib: Drop timeformat.{dateShortFormat,parseShortDate}() Revert "test: packagelib - robustify disabling of services" lib: Reimplement timeformat.distanceToNow() with standard browser API package.json: Drop date-fns cockpit.js: Add fsinfo fallback to fswatch1 lib: Fix server time lib: Add cockpit.script() type annotations lib: Fix and extend channel option types lib: Declare cockpit.translate() lib: Fix {Channel,Spawn}.close() annotation lib: Fix race condition in credentials.js lib: Droptwo_pass
argument from credentials methods lib: credentials.js code cleanups test: Allow other "external channel failed" errors on restarts test: Add MachineCase.login_and_go()password
argument lib: Convert cockpit-components-inline-notification to TypeScript and functional test: Move add_machine() and start_machine_troubleshoot() from MachineCase to Browser test: Drop obsolete expected tracer crash in RHEL 8 test: Generalize tracer failure message on logout test: Clean up Browser.select_PF[45]() test: Avoid :contains() in testlib.py lib, doc: Annotate Firefox specific CSS rules test: Re-relax the{become,drop}_superuser()
checks test/static-code: Ignore pkg/lib for non-Cockpit projects test: Ignoremachine.image_file
type check failure lib: Provide reduced SSH host dialogs API as library shell: Deprecate host switcher in current OS releases test: Put test-functions.js helpers on window object test: Robustify Browser.assert_no_oops test: Make ignore_ssl_certificate_errors() implicit test: Fix error reporting in ph_select() test: Drop redundant _wait_present() calls test: Port from CDP to BiDi browser automation test: Eliminiate Browser.inject_js() test: Introduce context manager for temporarily switching browser context test: Drop Firefox CDP support test: Make Browser.switch_to_frames() work from frames test: Fix Browser.wait_js_cond() failures with custom error descriptions lib: Fix race condition in Terminal size calculation test: Fix --trace logging for CDP commands test: Use non-deprecated CDP setDownloadBehavior() method all: Move gnu.org/license URLs to https:// test: Drop rhel4edge special cases test: Re-teach Browser.input_text() about \n test: Don't change context in WebdriverBidi.restore_context() test: Use real mouse events in tests on Firefox lib: Fix cockpit.file().modify() annotation test: Implement "contextmenu" mouse event for BiDi test: Copy ubuntu-stable special cases as ubuntu-2404 test: Temporarily make self.multihost_enabled dynamic for ubuntu-stable lib: Update old systemd bug reference webdriver_bidi: Recursively unpack raw values ws: Use cockpit-beiboot for direct remote connections lib: Port cockpit-components-file-autocomplete.jsx to fsinfo systemd: Hide "limited access mode" banner without superuser bridges test: Drop obsolete todoPybridgeRHEL8 test: Fix cockpit/ws ostree_image special cases test: Skip host switching tests with beiboot mode users: Get lastlog2 info through SQLiteMatej Marusak (1): cockpit.js: Add debugging marking for translated strings
Miika Alikirri (1): test: Use root as a superuser on SUSE images
Simon Kobyda (16): lib: Add DynamicListForm to /pkg/lib lib: add showClose as Dialog's prop lib: Implement missing .pf-v5-u-font-weight-light lib: Fix a dropdown being hidden by a card lib: Don't show icon unless 'icon' prop is passed test: Remove unecessary escaping in link-patterns test: Add VM's XML and VM's log into link-patterns lib: Add validation to DynamicListForm component test: Follow ASCII chart instead of browser's keycodes lib: Fix DynamicListForm's 'Maximum update depth exceeded' flake lib: Update RedHatMono weight properties lib: Add show/hide feature to password input field lib: Change width of password progress lib: Add minimum progress value lib: Show message next to password progress bar kdump: 'Test configuration' should use danger variant button
Sludge (1): packagekit: Update CVE link to go to the new site
Subho (1): terminal: fix unable to use scrollbar
Tomas Matus (1): test: allow journal message to a known pybridge error
dependabot[bot] (3): Bump sass from 1.69.4 to 1.69.5 Bump the react group across 1 directory with 4 updates Bump glob from 7.2.3 to 11.0.0
jscotka (1): test: Enforce successful loopback cleanup
leomoty (2): Cleanup for table clickable rows pf5: Specify form select colors
mukesh kumar (1): all: Replace onKeyPress with onKeyDown
omarY23 (1): Remove copied checkmark when switching SELinux modifications tab
tomasmatus (2): lib/plot: port Dropdown to PF5 testlib: add F2 key
wl-thaumatec (1): lib: Add '/lib' to /get-timesync-backend root directories list
Run & review this pull request in StackBlitz Codeflow.